xml (EXtensible Markup Language)可扩展标记语言
- 第一行必须是xml声明:<?xml version="1.0" encoding="UTF-8"?> 例:hr.xml
- 对于特殊字符的处理:
1.使用实体引用
2.使用CDATA标签
CDATA 是不应该由 XML 解析器解析的文本数据
CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束
- xml语义约束
1.DTD (Document Type Definition:文档类型定义) .dtd 例:hr.dtd
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hr SYSTEM "hr.dtd"> <!--引入dtd文件--> <!-- 人力资源管理系统 --> <hr> <employee no="3301"> <name>李铁柱</name> <age>37</age> <salary>3600</salary> <department> <dname>人事部</dname> <address>XX大厦-B105</address> </department> </employee> <employee no="3302"> <name>林海</name> <age>50</age> <salary>7000</salary> <department> <dname>财务部</dname> <address>XX大厦-B106</address> </department> </employee> </hr>
<?xml version="1.0" encoding="UTF-8"?>
<!-- (employee):只允许出现1个employee节点
(employee+):至少出现1个employee节点
(employee*):允许出现0到n个employee节点
(employee?):最多出现1个employee节点
-->
<!ELEMENT hr (employee+)>
<!-- employee节点下必须包含四个节点,且按顺序出现 -->
<!ELEMENT employee (name,age,salary,department)>
<!ATTLIST employee no CDATA "">
<!-- PCDATA代表文本元素,定义name标签体为纯文本,department则不能这么写 -->
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT salary (#PCDATA)>
<!ELEMENT department (dname,address)>
<!ELEMENT dname (#PCDATA)>
<!ELEMENT address (#PCDATA)>
2.XML Schema 目前使用更多 .xsd 例:hr.xsd
<?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema"> <element name="hr"> <!-- complexType标签含义是复杂节点,包含子节点时必须使用这个标签 --> <complexType> <sequence>
<!-- 最少出现1个employee节点,最多出现9999个-->
<element name="employee" minOccurs="1" maxOccurs="9999"> <complexType> <sequence> <element name="name" type="string"></element> <element name="age"> <simpleType> <restriction base="integer"> <minInclusive value="18"></minInclusive> <maxInclusive value="60"></maxInclusive> </restriction> </simpleType> </element> <element name="salary" type="integer"></element> <element name="department"> <complexType> <sequence> <element name="dname" type="string"></element> <element name="address" type="string"></element> </sequence> </complexType> </element> </sequence> <attribute name="no" type="string" use="required"></attribute> </complexType> </element> </sequence> </complexType> </element> </schema>
<hr xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="hr.xsd">
后篇:JAVA操作XML文档
学习自:https://class.imooc.com/course/714