이 글에서는 XML 입문 학습의 기본 지식인 XML의 DTD 문서 유형 정의를 주로 소개합니다. 필요한 친구들은
흔히 DTD라고 알려진 XML 문서 유형 정의를 참고하면 됩니다. a XML 언어가 사용되는 방식을 정확하게 설명합니다. DTD는 적절한 XML 언어의 구문 규칙에 대해 XML 문서의 어휘 및 구조의 유효성을 확인합니다.
XML DTD는 문서 내부에서 지정하거나 별도의 문서에 저장하여 별도로 연결할 수 있습니다.
구문
DTD의 기본 구문은 다음과 같습니다.
<!DOCTYPE element DTD identifier [ declaration1 declaration2 ........ ]>
위 구문에서:
DTD < ;!DOCTYPE 구분 기호로 시작됩니다.
요소는 지정된 루트 요소에서 문서 구문 분석을 시작하도록 파서에게 지시하는 데 사용됩니다.
DTD 식별자는 문서 유형 정의에 사용되는 식별자로 시스템의 파일을 가리키는 경로일 수도 있고 인터넷의 파일에 연결되는 URL일 수도 있습니다. DTD가 외부 경로를 가리키는 경우 이를 외부 하위 집합이라고 합니다. _[] 내부에는 내부 하위 집합이라고 하는 선택적 엔터티 선언 목록이 있습니다.
내부 DTD
XML 문서 내에서 요소가 선언되면 해당 DTD를 내부 DTD라고 합니다. 이를 내부 DTD로 사용하려면 XML 선언의 독립형 속성을 yes로 설정해야 합니다. 이는 청구된 저작물이 외부 소스와 독립적임을 의미합니다.
구문
내부 DTD 구문은 다음과 같습니다.
<!DOCTYPE root-element [element-declarations]>
여기서 root-element는 루트의 이름입니다. 요소, 요소 선언은 우리가 선언하는 요소를 나타냅니다.
예
다음은 내부 DTD의 간단한 예입니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <!DOCTYPE address [ <!ELEMENT address (name,company,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT company (#PCDATA)> <!ELEMENT phone (#PCDATA)> ]> <address> <name>Tanmay Patil</name> <company>TutorialsPoint</company> <phone>(011) 123-4567</phone> </address>
위 코드를 살펴보겠습니다. :
선언 시작 - 다음 문으로 XML 선언을 시작합니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
DTD - XML 헤더 바로 다음에는 _Document Type Declaration_이 다음과 같으며 종종 참조됩니다. to as DOCTYPE:
10321e1ab6e0f797cd352a7d8f57e279는 element_name_을 "#PCDATA" 유형으로 정의합니다. 여기서 #PCDATA는 구문 분석 가능한 텍스트 데이터를 의미합니다.
선언 끝 - 마지막으로 대괄호와 꺾쇠괄호(]>)를 사용하여 DTD의 선언 부분을 닫습니다. 이는 유효한 종료 정의이며 바로 뒤에 XML 문서 콘텐츠가 옵니다.
규칙
문서 유형 선언은 문서의 시작 부분에 나타나야 하며(XML 헤더가 있는 첫 번째에만) 문서의 다른 어느 곳에도 나타날 수 없습니다. .
DOCTYPE 선언과 유사하게 요소 선언은 느낌표로 시작해야 합니다.
문서 유형 선언의 이름은 루트 요소의 유형과 일치해야 합니다.
외부 DTD
외부 DTD에서 요소는 XML 문서 외부에서 선언됩니다. 유효한 .dtd 파일 또는 유효한 URL일 수 있는 시스템 속성을 지정하여 액세스합니다. 외부 DTD임을 나타내려면 XML 선언의 독립형 속성을 no로 설정해야 합니다. 이는 해당 명령문에 외부 소스의 정보가 포함되어 있음을 의미합니다.
구문
다음은 외부 DTD의 구문입니다.
<!DOCTYPE root-element SYSTEM "file-name">
여기서 file-name은 확장자가 .dtd인 파일입니다.
예
다음 예는 외부 DTD의 사용을 보여줍니다.
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <!DOCTYPE address SYSTEM "address.dtd"> <address> <name>Tanmay Patil</name> <company>TutorialsPoint</company> <phone>(011) 123-4567</phone> </address> DTD 文件 address.dtd 的内容如下所示: <!ELEMENT address (name,company,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT company (#PCDATA)> <!ELEMENT phone (#PCDATA)>
Type
시스템 식별자나 공개 식별자를 사용하여 외부 DTD를 참조할 수 있습니다.
시스템 식별자
시스템 식별자를 사용하면 DTD 선언이 포함된 외부 파일의 위치를 지정할 수 있습니다. 구문은 다음과 같습니다.
<!DOCTYPE name SYSTEM "address.dtd" [...]>
보시다시피 여기에는 SYSTEM 키워드와 문서 위치를 가리키는 URI 참조가 포함되어 있습니다.
공개 식별자
공개 식별자는 DTD 리소스를 찾는 메커니즘을 제공합니다.
<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">
보시다시피, PUBLIC 키워드로 시작하고 그 뒤에 특수 식별자가 옵니다. 공용 식별자는 디렉터리의 항목을 식별하는 데 사용됩니다. 공개 식별자는 모든 형식을 따를 수 있지만 일반적으로 사용되는 형식은 FPI(정식 공개 식별자)입니다.
요소 선언
dtd에서 요소 선언(xml에서 요소가 적법하려면 dtd에서 선언해야 함)
구문:< ;! ELEMENT 요소 이름 카테고리>c8df2723083d8471c1917a6ce7ddc345이 두 가지 방법
0d36aa5b113f2e7202e679379350be8c
예:
<!ELEMENT br EMPTY>
그런 다음 xml은 다음과 같이 작성할 수 있습니다.
<br/>
注意点
在dtd中
所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成:
元素
属性
实体
PCDATA
CDATA
下面是一些注意点:
(1)实体是用来定义普通文本的变量。实体引用是对实体的引用。
大多数同学都了解这个 HTML 实体引用:" "。这个“无折行空格”实体在 HTML 中被用于在某个文档中插入一个额外的空格。
当文档被 XML 解析器解析时,实体就会被展开。
(2) PCDATA
PCDATA 的意思是被解析的字符数据(parsed character data)。
可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本。
PCDATA 是会被解析器解析的文本。这些文本将被解析器解析成实体以及标记。
文本中的标签会被当作标记来处理,而实体会被展开。
不过,被解析的字符数据不应当包含任何 &、d9cc50603bc7f01c48909aac2ab47bd6 字符;需要使用 &、< 以及 > 实体来分别替换它们。
(3)CDATA
CDATA 的意思是字符数据(character data)。
CDATA 是不会被解析器解析的文本。在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开。
위 내용은 XML의 DTD 문서 유형 정의에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!