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