一种可扩展标记语言

XML

可扩展标记语言(英语:Extensible Markup Language,简称:XML),是一种标记语言。123

对比

XML与其他置文件对比45

XML与HTML比较

XML与JSON比较

XML与YAML比较

XML与Properties比较

XML与INI比较

用途

存储、传输数据。

语法

约束

DTD

Schema

XML Schema是基于XML的DTD替代者。XML Schema文档扩展名为xsd,即XML Schema Definition78

XML Schema的元素、类型、属性、限定语法参考菜鸟教程。

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">

<xs:element name="note">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="to" type="xs:string"/>
      <xs:element name="from" type="xs:string"/>
      <xs:element name="heading" type="xs:string"/>
      <xs:element name="body" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

</xs:schema>
<!-- 
  xmlns:xs="http://www.w3.org/2001/XMLSchema",表示命名空间;
  xmlns="http://www.w3schools.com",省略前缀表示默认命名空间;
  targetNamespace,表示该Schema文件定义的元素、类型、属性等都属于该命名空间;
  elementFormDefault="qualified",表示改Schema文件定义的全局成分和非全局成分都属于targetNamespace申明的命名空间。
-->
<?xml version="1.0"?>
<note
xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com note.xsd">
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>
<!-- 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance",用于使用xsi的schemaLocation和noNamespaceSchemaLocation属性;
  xsi:schemaLocation,用于引用具有目标命名空间的远端xsd文档;
  xsi:noNamespaceSchemaLocation,用于引用具有目标命名空间的本地xsd文档。
-->

DTD与Schema比较

解析

DOM(Document Object Model)和SAX(Simple API for XML)是跨语言的解析方式1011,JAXP是解析XML文档的规范(接口),JDK自带XML解析实现为Apache的xerces。

转换

XML与JavaBean互转

XML与Json互转