XML元素限定



XML元素限定的意义:XML 用于数据交换,而标签又是可以任意定义的,为了让 XML 的编写者和使用者之间能正确交流----->需要对标签等约定.在 XML 中有两种约定方法 dtd 格式和 xsd 格式

DTD格式

  • 介绍:DTD 是 Document Type Definition 的简写,规定好文档内容如何书写:那个元素是根,有那些子元素,元素有那些属性等。如果编写者和阅读者实现约定好,那么他们就能沟通
  • 定义
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT person (name,pwd,age,birthday) >
<!ELEMENT name (#PCDATA)>
<!ELEMENT pwd ANY>
<!ELEMENT age ANY>
<!ELEMENT birthday ANY>
<!ATTLIST person id CDATA #REQUIRED>
  • 使用
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE person PUBLIC "http://www.xcu.edu.cn/person.dtd" "person.dtd" >
<person id="22">
 <name>2>3</name>
 <pwd/>
 <age/>
 <birthday/>
</person>

XSD格式

  • 介绍:XSD 是 XML 格式对文档结构进行说明,对 DTD 进行了增强,例如添加数据类型支持。
           XSD 的语法可以参考 https://www.w3school.com.cn/schema/schema_intro.asp。
                 我们学习的目标是能读懂它即可。
  • 定义
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/person"
  xmlns:tns="http://www.example.org/person" elementFormDefault="qualified">
    <element name="person">
      <complexType>
        <sequence> 
          <element name="name" type="string"></element>
          <element name="pwd" type="string"></element>
          <element name="age" type="integer"></element>
          <element name="birthday" type="date"></element>
        </sequence>
        <attribute name="id" type="integer" use="required"></attribute>
      </complexType>
  </element>
</schema>
  •  使用
<?xml version="1.0" encoding="UTF-8"?>
<person id="100" xmlns="http://www.example.org/person"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/person person.xsd ">
 <name>name</name>
 <pwd>pwd</pwd>
 <age>0</age>
 <birthday>2001-01-01</birthday>
</person>


原文地址:https://www.cnblogs.com/yuanshuai1026/p/11584967.html