문서 유형 정의(Document Type Definition)은 프로그램 간 데이터 교환을 위해 설정된 태그에 대한 문법 규칙 집합입니다. 이는 Standard Generalized Markup Language (SGML) 및 Extensible Markup Language (XML) 버전 1.0의 일부이며 아래에 문서화되어 있습니다. 일종의 DTD 구문 규칙은 형식이 이 규칙을 준수하는지 확인합니다. 문서 유형 정의를 사용하여 표준 범용 마크업 언어 및 확장 가능 마크업 언어 문서 형식의 적법성을 보장할 수도 있습니다. 문서를 문서 유형 정의 파일과 비교하여 문서가 사양을 준수하는지, 요소와 태그가 올바르게 사용되는지 확인할 수 있습니다. . 파일 인스턴스는 애플리케이션에 데이터 교환 형식을 제공합니다.
PS: 간단히 말해서, DTD는 XML을 제한하는 데 사용됩니다. 특정 사양에서 사용할 수 있도록 DTD 기술 외에 Schema 기술도 있습니다. 제한된 XML 문서에도 사용됩니다.
참고 문서: DTD http://www.php.cn/
참고 문서: 스키마 http://www.php.cn/
PS: DTD에 의해 제한됨, XML은 DTD의 제약에 따라 사용자 정의할 수 있지만 DTD에는 단점이 있습니다. 데이터에 대한 수치 제한과 같은 범위 제한을 부과할 수 없습니다.
내부DTD문서
루트 요소 [정의 콘텐츠]>
외부DTD문서
루트 요소 SYSTEM "DTD 파일 경로">
내부 및 외부 DTD문서 조합
루트 요소 SYSTEM "DTD파일 경로" [
정의 내용
]>
참고:
1, 정의 키워드는 대문자로 시작해야 합니다. 예: 문서 유형, 요소, ATTLIST.
2,
참조된 파일이 로컬인 경우 다음 방법을 사용합니다.
문서 루트 노드 SYSTEM "DTD파일 URL">
예: bookshelf SYSTEM "book .dtd”>
참조된 파일이 공용 파일인 경우 다음 방법이 사용됩니다.
문서 루트 노드 PUBLIC "DTD이름" "DTD 파일의 URL">
예: "-//Sun Microsystems, Inc.//DTD Web 애플리케이션 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
설명:
ELEMENT: 키워드 (대문자이어야 합니다).
NAME: 요소 이름입니다.
CONTENT: 네 가지 요소 유형이 있으며 모두 대문자로 시작해야 합니다.
1, EMPTY - 이 요소는 하위 요소와 텍스트를 포함할 수 없으나 속성(빈 요소)은 가질 수 있습니다.
2, ANY - 이 요소는 DTD의 모든 항목을 포함할 수 있습니다. 🎜 >
3, #PCDATA에 정의된 요소 콘텐츠 - 모든 문자 데이터를 포함할 수 있지만 그럴 수는 없습니다. 모든 하위 요소 포함
4, 기타 유형 (조합) 은 하위 요소, 하위 요소와 수정자의 조합, 기본 요소, 하위 요소와 수정자의 조합일 수 있습니다.
사례: 학급 (학생+,저자)>학생(이름,나이,소개)>< ;!ELEMENT저자 (#PCDATA)>
이름 (#PCDATA)>연령(#PCDATA)>소개 (#PCDATA)> 수식어기호
|
목적 |
예 |
설명예 |
( ) |
은 요소를 그룹화하는 데 사용됩니다. | 진용 |
| 량위성),(왕숴 |우지에)두 그룹으로 나누어 |
| |
(남자| 여자) |
은 남자나 여자가 반드시 등장해야 한다는 뜻으로, 하나만 선택할 수 있습니다 |
+ |
|
(1 또는 여러 번) |
(멤버+ ) |
은 멤버를 의미합니다. 반드시 나타나야 하며, 여러 명의 구성원이 나타날 수 있습니다. 구성원 |
* |
0 여러번) |
(취미* ) |
취미는 0번에서 여러 번 나타날 수 있습니다 |
? |
(0 ~ | 1 회) (신인? ) |
신인은 할 수 있다 등장 여부는 최대 1번만 등장할 수 있습니다. >객체는 지정된 순서대로 나타나야 합니다 |
(watermelon, 사과 |
바나나) | 는 수박,사과,바나나 순으로 나오라는 뜻이고, 이 순서로 등장합니다 |
요소 이름 속성 이름 유형 속성 특성 속성 이름 유형 속성 특성...... > 설명: ATTLIST: 속성 목록, ( 대문자로 표기해야 합니다). 요소 이름: 해당 요소의 이름입니다. 속성: 여러 속성이 있을 수 있으며 형식은 이름 유형 속성 특성 유형:
PS: 주로 사용되는 것은 CDATA(문자형 ), 열거 ( 열거 형식은 (값1|입니다. 값2|값3...)), ID(ID 은 반복될 수 없으며 ), IDREF(는 다른 ID를 나타냄)로 시작할 수 없습니다. 값), IDREFS(는 여러 ID 공백으로 구분된 값 ) 속성 특성은 다음과 같습니다. 사례: rreee XML에서 일반적으로 사용되며, 매개변수 엔터티는 DTD. 기본 구문 엔티티 이름 "엔티티 콘텐츠" > // 참조 엔터티 엔티티 이름 "엔티티 콘텐츠" > // 매개변수 엔터티설명:1 , 참조 엔터티는DTD에서 참조할 수 있습니다. 🎜 >XML 파일인 경우 &엔티티 이름;을 사용하여 엔터티 콘텐츠를 사용합니다. 2. 내 컴퓨터 때문인지는 모르겠지만 외부 DTD에서는 사용할 수 없습니다. 사용하려면 참조 엔터티 정의를 DTD 내부에서 사용할 수 있습니다. 3, 매개변수 엔터티는 DTD에서 사용되며, %엔티티 이름; 사용 4、可以将那些重复使用的值定义成实体,这样能减少代码的冗余度。 5、在外部DTD中,引用实体最好放在DTD底部,参数实体最好放在DTD顶部。 案例: 综合案例1: XML3.dtd XML3.xml 综合案例2: XML4.dtd XML4.xml 以上就是DTD详解的内容,更多相关内容请关注PHP中文网(www.php.cn)! |