add DTD && XML Schema

This commit is contained in:
many2many 2024-10-13 11:55:11 +08:00
parent 745b875b51
commit 41b99e55bc

View File

@ -394,6 +394,52 @@ async function example() {
- **注释**: XML文档可以包含注释注释不会被解析器处理。 - **注释**: XML文档可以包含注释注释不会被解析器处理。
- **处理指令**: 用于向解析器提供额外的指令。 - **处理指令**: 用于向解析器提供额外的指令。
DTD 是一种较早的 XML 验证语言,最初设计用于 SGML标准通用标记语言。它使用简单的语法来定义元素、属性和实体的合法组合。
示例:
```dtd
<!DOCTYPE person [
<!ELEMENT person (name, age, address)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT address (street, city, state, zip)>
<!ELEMENT street (#PCDATA)>
<!ELEMENT city (#PCDATA)>
<!ELEMENT state (#PCDATA)>
<!ELEMENT zip (#PCDATA)>
]>
```
XML Schema 是一种更现代、更强大的 XML 验证语言。它基于 W3C 推荐标准,并提供了一系列比 DTD 更高级的功能。
示例:
```xml
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="person">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="age" type="xsd:int"/>
<xsd:element name="address">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="state" type="xsd:string"/>
<xsd:element name="zip" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
```
DTD 和 XML Schema 都是用于验证 XML 文档的语言但它们在功能、语法和使用方面存在差异。DTD 较简单且向后兼容,而 XML Schema 更强大、可读且严格
#### 3.4.3 XML的语法 #### 3.4.3 XML的语法
- **文档声明**: XML文档必须以文档声明开始。 - **文档声明**: XML文档必须以文档声明开始。
```xml ```xml