XML文档里面的标签属性
什么是XML?
XML曾一度是互联网上存储和传输结构化数据的标准。 ——《Javascript高级程序设计》
XML 被设计用来传输和存储数据,不用于表现和展示数据,HTML 则用来表现数据。 ——《XML教程 | 菜鸟教程》
可扩展标记语言(英语:Extensible Markup Language,简称:XML)是一种标记语言,是从标准通用标记语言(SGML)中简化修改出来的。它主要用到的有可扩展标记语言、可扩展样式语言(XSL)、XBRL和XPath等。 ——《XML教程 | 菜鸟教程》
XML 标签没有被预定义。您需要自行定义标签。——《XML教程 | 菜鸟教程》
为什么要在这里解析下XML文档的结构?
BPMN2.0规范,常常使用XML类型的文件来定义一个流程,这里对其中的一些元素做一些注解,以助于在业务开发中理解和修改流程导出的XML文件。
XML基础
- XML 文档形成一种树结构
- 第一行是 XML 声明。它定义 XML 的版本(1.0)和所使用的编码(UTF-8 : 万国码, 可显示各种语言),声明不是 XML 文档本身的一部分,它没有关闭标签
- 下一行描述文档的根元素,XML 文档必须包含根元素。该元素是所有其他元素的父元素
- 在 XML 中,省略关闭标签是非法的。所有元素都必须有关闭标签
- XML 标签对大小写敏感。标签 <Letter> 与标签 <letter> 是不同的
- XML 的属性值必须加引号
- XML 元素必须被正确的嵌套
- XML的注释:
|
1
|
<!-- this is comment --> |
-
XML 元素 vs. 属性(案例引用自菜鸟教程)
第一个实例中使用了 date 属性:
|
1
2
3
4
5
6
|
<note date="10/01/2008"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body></note> |
第二个实例中使用了 date 元素:
|
1
2
3
4
5
6
7
|
<note> <date>10/01/2008</date> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body></note> |
第三个实例中使用了扩展的 date 元素(这是我的最爱):
|
1
2
3
4
5
6
7
8
9
10
11
|
<note> <date> <day>10</day> <month>01</month> <year>2008</year> </date> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body></note> |
- XML语法检查验证器:XML 验证器 | 菜鸟教程 (runoob.com)
- 命名空间:
- 开发者自己定义元素名称,当两个不同的文档使用相同的元素名称时,就会发生命名冲突,XML无法解析这些冲突
- 命名空间在根元素中声明
- 下面的案例,就是使用了xmlns 属性,定义这样:”bpmn:“、“bpmndi:"、"camunda:"……用于前缀的命名空间,避免这样的冲突
- 可以定义一个默认的命名空间,可以不用在所有的元素上使用前缀:xmlns="namespaceURI"
|
1
2
3
4
5
6
7
8
9
10
11
|
<?xml version="1.0" encoding="UTF-8"?><bpmn:definitions xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn"> <bpmn:process id="Process_1" isExecutable="false"> </bpmn:process></bpmn:definitions> |
未完待续……


浙公网安备 33010602011771号