DTD 및 XML 스키마와의 XML 파일 연관

XML 파일이 DTD 또는 XML 스키마와 연관되는 경우 해당 DTD 또는 XML 스키마에 포함된 구조 규칙을 따릅니다. 올바른 XML 파일이 되려면 문서는 DTD 또는 XML 스키마가 필요하며 DTD 또는 XML 스키마의 모든 선언을 준수해야 합니다.

XML 파일과 DTD 또는 XML 스키마를 연관시키는 방법으로는 다음과 같은 두 가지가 있습니다.

  1. 직접 연관 - XML 파일의 문서 유형 선언에 DTD의 이름(예: <!DOCTYPE root-element SYSTEM " dtdfile.dtd" >. 여기서, dtdfile.dtd는 DTD 파일의 이름)이 포함되어 있거나 XML 파일 루트 요소의 schemaLocation 속성에 XML 스키마의 경로(예: <xsi:schemaLocation="http://www.ibm.com schema.xsd">. 여기서, schema.xsd는 XML 스키마의 이름)가 포함되어 있습니다.
  2. XML 카탈로그 항목 - DTD 및 XML 스키마 파일을 XML 카탈로그에 등록하고 해당 파일을 해당 Key와 연관시킬 수 있습니다. 그런 다음 DTD 또는 XML 스키마 파일을 직접 참조하는 대신 XML 파일에서 DTD 또는 XML 스키마 파일 Key를 참조할 수 있습니다. XML 카탈로그 항목은 두 파트로 나뉩니다. 먼저 키 파트는 DTD 또는 XML 스키마를 나타내며 URI에는 DTD 또는 XML 스키마 위치에 대한 정보가 포함됩니다.

연관 작용

XML 파일과 DTD 연관
XML 파일이 DTD와 연관되는 경우, 다음과 같은 DOCTYPE 태그가 XML 파일에 포함됩니다.
<!DOCTYPE root-name PUBLIC "InvoiceId" "C:\mydtds\Invoice.dtd">

InvoiceId는 DTD 파일의 공용 ID입니다. 이 ID는 XML 파일과 DTD 파일을 연관시키는 데 사용됩니다. 이 경우 DTD 파일은 Invoice.dtd입니다. 공용 ID InvoiceId가 Invoice.dtd에 대한 XML 카탈로그 항목의 Key와 일치하는 경우, XML 카탈로그 항목의 URI(Invoice.dtd 위치에 대한 정보 포함)를 사용하여 DTD를 찾습니다. 일치하지 않는 경우, DTD의 파일 시스템 위치를 직접 참조하는 DOCTYPE의 시스템 ID("C:\mydtds\Invoice.dtd")를 사용하여 DTD를 찾습니다.

참고: 시스템 ID를 XML 카탈로그 항목의 키로 사용할 수도 있습니다. 시스템 ID를 키로 사용하는 경우, 다음과 같은 DOCTYPE 태그가 XML 파일에 포함됩니다.

<!DOCTYPE Root-name SYSTEM "MyDTD.dtd"> 

여기서, MyDTD.dtd는 XML 카탈로그 항목의 키에 해당하는 시스템 ID입니다.

XML 파일과 XML 스키마 연관

XML 파일과 XML 스키마가 연관되는 경우, 하나 이상의 스키마 위치 속성이 XML 파일에 포함됩니다. schemaLocation의 정보는 XML 프로세서에 대한 "힌트"로 제공됩니다. 다음 예제는 schemaLocation 속성을 보여줍니다.

예 1
<purchaseOrder xmlns="http://www.ibm.com"
xsi:schemaLocation="http://www.ibm.com C:\myschemas\PurchaseOrder.xsd">
<shipTo country="US">
...
예 2
<purchaseOrder xmlns="http://www.ibm.com"
xsi:schemaLocation="http://www.ibm.com PO.xsd">
<shipTo country="US">
....

예제 1의 경우, schemaLocation '힌트'('C:\myschemas\PurchaseOrder.xsd')는 XML 스키마의 파일 시스템 위치 또는 URI를 직접 참조합니다. 이 경우, 스키마 파일은 XML 프로세서가 직접 찾습니다.

예제 2의 경우, schemaLocation '힌트'('PO.xsd')는 XML 카탈로그 항목을 참조합니다. PO.xsd는 PurchaseOrder.xsd에 대한 XML 카탈로그 항목의 Key와 일치하므로 XML 카탈로그 항목(PurchaseOrder.xsd 위치에 대한 정보 포함)의 URI는 XML 스키마를 찾는 데 사용됩니다.

두 예제 모두 xsi:schemaLocation 태그의 http://www.ibm.com은 XML 스키마의 이름 공간을 식별하는 URI입니다.

또한 XML 카탈로그 항목에 대한 키로 이름 공간을 사용할 수 있습니다. 이름 공간을 키로 사용하는 경우 다음과 같은 schemaLocation 태그가 XML 파일에 포함됩니다.
<purchaseOrder xmlns:="www.ibm.com"
xsi:schemaLocation="http://www.ibm.com po/xsd/PurchaseOrder.xsd ">

schemaLocation 속성은 스키마의 실체 위치와 키를 모두 가리킵니다.

DTD 또는 XML 스키마는 원격 서버에 상주합니다.

유효성 검증 및 컨텐츠 지원과 같은 XML 편집기의 몇몇 기능을 수행하려면 DTD 또는 XML 스키마를 사용할 수 있어야 합니다. 제품 문서는 DTD 또는 XML 스키마가 로컬 시스템에 상주하는 경우에 대한 사용법 정보를 제공합니다. 그러나 많은 경우 DTD 또는 XML 스키마는 다음과 같이 원격 서버에 상주할 수 있습니다.

<!DOCTYPE Catalog PUBLIC "abc/Catalog" "http://xyz.abc.org/dtds/catalog.dtd">

DTD 또는 XML 스키마는 원격 서버에서 검색할 수 있으므로 일반적으로 이 경우 문제점이 없습니다. 그러나 방화벽을 사용하고 SOCKSified 시스템이 없는 경우 Workbench는 현재 DTD 또는 XML 스키마를 검색하기 위해 SOCKS 서버를 지정할 수 있는 방법을 제공하지 않습니다. 시스템에 SOCKS를 지정할 수 없는 경우 이 문제점의 해결 방법은 DTD 또는 XML 스키마 사본을 검색하고(예: 웹 브라우저 사용) 해당 사본을 로컬 시스템에 저장하는 것입니다. 그런 다음 XML 파일과 동일한 프로젝트에 로컬 사본을 두거나 XML 카탈로그를 사용하여 공용 ID와 DTD의 로컬 위치를 연관시킬 수 있습니다.

참고: XML 파일이 네트워크의 XML 스키마 또는 DTD와 연관되고 네트워크와 연결되지 않은 시스템에서 작업을 수행하는 경우, 컨텐츠 지원을 사용하거나 XML 파일의 유효성을 검증하려면 앞에서 설명한 단계를 수행해야 합니다.

XML 카탈로그 항목 연관의 이점

XML 파일과 XML 스키마 또는 DTD 파일과의 직접 연관을 작성하는 경우, 해당 스키마 또는 DTD의 위치를 변경할 때마다 모든 참조 XML 파일을 추적하여 DTD 또는 스키마의 새 위치로 갱신해야 합니다. 그러나 XML 파일과 XML 스키마 또는 DTD 키를 연관시키는 경우, 스키마 또는 DTD의 위치를 변경할 때 각 개별 XML 파일 대신 XML 카탈로그 항목만 갱신하면 됩니다.

예를 들어, DTD "Building.dtd"가 다섯 개의 XML 파일(Office.xml, House.xml, Apartment.xml, Bank.xml 및 PostOffice.xml)과 연관되는 경우, DTD 파일 Building.dtd를 새 위치로 이동합니다. Building.dtd와 모든 XML 파일이 직접 연관되는 경우, Building.dtd의 새 위치를 반영하여 각 XML 파일의 <DOCTTYPE> 선언을 갱신해야 합니다. 그러나 XML 카탈로그 연관이 있고 모든 XML 파일이 Building.dtd의 키만 참조하는 경우, URI만 갱신하면 모든 XML 파일이 Building.dtd의 새 위치를 가리킵니다.

XML 카탈로그의 항목 갱신

XML 카탈로그에서 항목을 갱신한 후에는 XML 편집기 보기를 새로 고쳐야 새 정보를 사용할 수 있습니다. 이 작업을 수행하려면 종속성 다시 로드 도구 모음 단추 이 그래픽은 종속성 다시 로드 도구 모음 단추입니다.를 클릭하십시오. 현재 XML 카탈로그 설정을 사용하여 보기가 갱신됩니다. 갱신된 XML 카탈로그 항목을 참조하는 XML 파일이 열려 있는 경우 XML 편집기 보기를 새로 고치면 됩니다.

자세한 정보는 관련 타스크를 참조하십시오.

(c) Copyright 2001, World Wide Web Consortium (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University).

관련 개념
XML 편집기
관련 태스크
DTD 및 XML 스키마 제한조건 편집
DOCTYPE 선언 편집
XML 카탈로그에 항목 추가
DTD 및 스키마의 변경사항으로 XML 파일 갱신
이름 공간 정보 편집
XML 처리 지시사항 편집
디자인 보기에서 편집
소스 보기에서 편집