DTD XML
- Poprzednia strona Walidator XML
- Następna strona Szema XML
语法正确的 XML 文档被称为“格式良好”。
根据 DTD 验证的 XML 文档,既是“格式良好”的,又是“有效”的。
什么是 DTD?
DTD 代表文档类型定义(Document Type Definition)。
DTD 定义 XML 文档的结构,以及合法的元素和属性。
有效的 XML 文档
“有效”的 XML 文档既是“格式良好”的,同时也要符合 DTD 的规则:
<?xml version="1.0" encoding="UTF-8"?> !DOCTYPE note SYSTEM "Note.dtd"> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
上面的 DOCTYPE 声明包含对 DTD 文件的引用。下面展示并解释了 DTD 文件的内容。
DTD XML
DTD 的目的是定义 XML 文档的结构,以及合法的元素和属性:
Note.dtd:
!DOCTYPE note [ !ELEMENT note (to,from,heading,body) <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]>
Poniżej znajduje się wyjaśnienie powyższego DTD:
!DOCTYPE note - Definiuje, że korzeniem dokumentu jest element note !ELEMENT note - Definiuje, że element note musi zawierać następujące elementy: "to, from, heading, body" !ELEMENT to - Definiuje element to jako typ "#PCDATA" !ELEMENT from - Definiuje element from jako typ "#PCDATA" !ELEMENT heading - Definiuje element heading jako typ "#PCDATA" !ELEMENT body - Definiuje element body jako typ "#PCDATA"
Wskazówka:#PCDATA oznacza dane znakowe, które można przetworzyć (parseable character data).
Deklaracja entyt przy użyciu DTD
Deklaracja DOCTYPE może być również używana do zdefiniowania specjalnych znaków lub ciągów znaków używanych w dokumencie:
Przykład
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE note [ <!ENTITY nbsp "ꀤot;> <!ENTITY writer "Writer: Bill Gates."> <!ENTITY copyright "Copyright: CodeW3C.com."> ]> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> <footer>&writer; ©right;</footer> </note>
Wskazówka:Entety składają się z trzech części: zaczynają się od znaku & (ampersand), następnie nazwa entyty, kończą się średnikiem (;).
Kiedy używać DTD?
DTD pozwala na uzgodnienie standardów wymiany danych przez niezależne grupy.
Używając DTD, możesz sprawdzić, czy dane otrzymane z zewnątrz są poprawne.
Możesz również używać DTD do walidacji swoich danych.
Jeśli chcesz się nauczyć DTD, przeczytaj nasz Tutorial DTD.
Kiedy nie używać DTD?
DTD nie jest obowiązkowe dla XML.
Jeśli testujesz XML lub używasz bardzo małych plików XML, tworzenie DTD może być marnowaniem czasu.
Jeśli rozwijasz aplikację, zaczekaj z dodawaniem DTD, aż规范 stabilizuje się. W przeciwnym razie, twoje oprogramowanie może przestać działać z powodu błędów walidacji.
- Poprzednia strona Walidator XML
- Następna strona Szema XML