XML简介

122 阅读2分钟

XML

  • XML的全称是Extensible Markup Language,可扩展标记语言
  • 编写XML就是编写标签,扩展名.xml
  • XML有着良好的人机可读性

用途

  • java程序的配置描述文件
<config>
    <application-name>X电商平台</application-name>
    <host-ip>192.168.132.65</host-ip>
    <page-size>10</page-size>
</config>

文档结构

  • 第一行必须是XML声明
  • 有且只有一个根标签
  • XML标签的书写规则

XML声明

  • XML声明说明XML文档的基本信息,包括版本号与字符集,写在XML第一行
<?XML version="1.0" encoding="UTF-8"?>
//version代表版本号,endoding表示字符集设置

XML根标签

  • 每个XML文档必须拥有“根标签”
  • 标签是有上下级关系的,上级为“父标签”,下级为“子标签”
  • 标签也常被称为“节点”
<?XML version="1.0" encoding="UTF-8"?>
<employee>
    <name>张三</name>
    <age>18</age>
</employee>

XML标签书写规则

合法的标签名

  • 标签名要有意义
  • 建议使用英文小写字母,单词之间使用“-”分隔
  • 建议多级标签之间不要存在重名情况

适当的注释与缩进

  • 适当注释和缩进可以让XML文档更易阅读

合理使用属性

  • 属性用来描述标签不可或缺的信息
<shop-cart>
    <item sn="101" category="电器">
        <name>空调</name>
        <price>1000</price>
        <num>1</num>
    </item>
</shop-cart>

特殊字符与CDATA标签

标签中出现‘<’等类似字符会破坏文档结构

  • 解决方案1:使用实体引用
实体引用对应符号说明
<<小于
>大于
&&和号
''单引号
\quot;"双引号
  • 解决方案2:使用CDATA标签处理特殊字符
<exam>
    <question>><![CDATA[1+4<3是否正确?]]></question>
</exam>

有序的子元素

  • 在XML多层嵌套的子元素中,标签前后顺序应该保持一致

XML语义约束

  • XML语义约束有两种定义方式:DTD和XML Schema

DTD(Document Type Definition)

  • DTD是一种简单易用的语义约束方式
  • DTD的文件扩展名为.dtd

DTD定义节点

  • 利用标签,我们可以定义XML文档中允许出现的节点及数量
  1. 定义hr节点下只允许出现一个employee节点
<!ELEMENT hr(employee)>
  1. employee节点下必须包含以下四个节点,且按照顺序出现
<!ELEMENT employee(name,age,salary,department)>
  1. 定义name标签体只能是文本,#PCDATA代表文本元素
<!ELEMENT name(#PCDATA)>

DTD定义节点数量

  • 如果某个子节点需要多次重复出现,则需要在子节点后增加相应的描述符
  1. hr节点下最少出现一个employee子节点
<!ELEMENT hr(employee+)>
  1. hr节点下出现0-n个employee子节点
<!ELEMENT hr(employee*)>
  1. hr节点下最多出现一个employee子节点
<!ELEMENT hr(employee?)>

XML引用DTD

  • XML中使用标签来引用DTD文件,其中SYSTEM表示同目录下
<!DOCTYPE hr SYSTEM "hr.dtd">

XML Schema

  • XML Schema比之DTD更复杂,提供了更多的功能
  • XML Schema提供了数据类型,格式限定,数据范围等特性
  • XML Schema是W3C标准

XML Schema Tutorial