2014-05-22 6 views
1

내 DTD (인라인으로 정의)에 버전 (1.0 또는 2.0 등)을 지정하려고합니다. 제 의도는 찾고있는 것과 버전이 다른 경우 파서 프로그램이 XML 문서를 정상적으로 거부하도록하는 것입니다.XML DTD의 버전을 지정하는 방법은 무엇입니까?

+0

좋아요. 아니면 구현에 문제가 있습니까? 일부 언어에서는 다음과 같이 가정합니다. – Will

+0

예. 내 XML 문서에서 DTD를 정의하고있다. 하지만 DTD에서 상수와 같은 것을 어떻게 지정합니까? 요소 나 속성을 사용하여 수행 할 수 있습니까? XML/DTD에 익숙하지 않고 도움이 필요합니다. – gunner4evr

답변

1

파일 이름에 버전 정보를 추가 할 수 있습니다. 예 : 파일 시스템 또는 URL에서로드하는 경우 myapp_1_2.dtd입니다. 이름을 구문 분석하고 버전을 얻을 수 있습니다.

시나리오에서 작동하지 않는 경우 버전 정보가 포함될 수있는 Formal Public Identifier을 사용할 수 있습니다. 그것을 사용하려면 XML Catalog을 설정해야합니다.

카탈로그는 FPI를 DTD에 매핑하는 XML 파일입니다. 이미 환경이나 서버에있을 수도 있으므로 편집하고 각 DTD에 대한 새로운 항목을 추가하기 만하면됩니다. 그렇지 않은 경우 응용 프로그램에 카탈로그 파일과 카탈로그 확인 프로그램을 작성한 다음 파서에 등록해야 할 수 있습니다. 이와

<!DOCTYPE catalog 
    PUBLIC "-//OASIS/DTD Entity Resolution XML Catalog V1.0//EN" 
    "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"> 
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> 

    <group prefer="public" xml:base="file:///server/apps/dtds/" > 3 
    <public publicId="-//MY GROUP//DTD MY APP V1.2//EN" uri="myapp_1_2.dtd"/> 
    <system systemId="..." uri="..."/> 
    ... 
    </group> 
</catalog> 

는 설정이 <!DOCTYPE root PUBLIC="-//MY GROUP//DTD MY APP V1.2//EN" />를 통해 DTD를 선택할 수 있습니다

카탈로그 파일이 형식을 가지고있다.

확인자를 설정하는 방법에 대한 몇 가지 시작점이 있고을 참조하고 다른 출처의 "XML 카탈로그"를 검색하십시오.

다음을 참조하십시오. Formal Public Identifiers and Catalogs

+0

감사합니다 helderdarocha! 나는 그것을 확실히 밖으로 시도 할 것이다! – gunner4evr