扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共2页)
文件3
<?xml version="1.0"?>
<!DOCTYPE product [
<!ATTLIST part approved CDATA "yes">
<!ENTITY testhistory "Part has been tested according to the specified standards.">
]>
<product xmlns="http://www.myFictitiousCompany.com/product"
xmlns:sup="http://www.myFictitiousCompany.com/supplier"
name='rotating disc "Energymeter"'
id="P 184.435"
classification = "MeasuringInstruments/Electrical/Energy/">
<parts>
<part id="P 184.675"
name="bearing">
<sup:supplier id="S 1753"/>
<sup:supplier id="S 2341"/>
<sup:supplier id="S 3276"/>
<comments>&testhistory;</comments>
</part>
<part id="P 184.871"
name="magnet"
xmlns="http://www.myFictitiousCompany.com/product">
<sup:supplier id="S 3908"/>
<sup:supplier id="S 4589"/>
<sup:supplier id="S 1098"/>
<comments>&testhistory;</comments>
</part>
</parts>
</product>
1 编码方式
编码是指按照一定的方式用字节代替字符。很显然,使用了不同的编码方式的同样内容的文档,得到的字节流是不同的。
XML规范条款规定XML的规范形式使用UTF-8进行编码,如果需要规范化的XML文档使用其他的方式编码,首先要将它转化为UTF-8编码。
2 断行符
文本文件中断行符一般使用A或D(十六进制)或者两者的组合来表示。XML文档是普通的文档文件,所以它也使用#xA和#xD作为断行符。XML的规范形式要求所有的断行符都用#xA表示。
3 空白符
XML规范化要求将所有的空白符(比如tab和space)转化成space(#x20),文件4是转化后的文件。注:在文件3中(<sup:supplier id="S 1753"/>),S与1753之间存在一个制表符
文件4
<?xml version="1.0"?>
<!DOCTYPE product [
<!ATTLIST part approved CDATA "yes">
<!ENTITY testhistory "Part has been tested according to the specified standards.">
]>
<product xmlns="http://www.myFictitiousCompany.com/product"
xmlns:sup="http://www.myFictitiousCompany.com/supplier"
name='rotating disc "Energymeter"'
id="P 184.435"
classification = "MeasuringInstruments/Electrical/Energy/">
<parts>
<part id="P 184.675"
name="bearing">
<sup:supplier id="S 1753"/>
<sup:supplier id="S 2341"/>
<sup:supplier id="S 3276"/>
<comments>&testhistory;</comments>
</part>
<part id="P 184.871"
name="magnet"
xmlns="http://www.myFictitiousCompany.com/product">
<sup:supplier id="S 3908"/>
<sup:supplier id="S 4589"/>
<sup:supplier id="S 1098"/>
<comments>&testhistory;</comments>
</part>
</parts>
</product>
4 属性值中的双引号
XML文档的规范形式中,属性值必须使用双引号括起来。文件4中(红色部分),name的属性值用的是单引号,必须改成双引号。文件5是规范后的文件。
文件5
<?xml version="1.0"?>
<!DOCTYPE product [
<!ATTLIST part approved CDATA "yes">
<!ENTITY testhistory "Part has been tested according to the specified standards.">
]>
<product xmlns="http://www.myFictitiousCompany.com/product"
xmlns:sup="http://www.myFictitiousCompany.com/supplier"
name="rotating disc "Energymeter""
id="P 184.435"
classification = "MeasuringInstruments/Electrical/Energy/">
<parts>
<part id="P 184.675"
name="bearing">
<sup:supplier id="S 1753"/>
<sup:supplier id="S 2341"/>
<sup:supplier id="S 3276"/>
<comments>&testhistory;</comments>
</part>
<part id="P 184.871"
name="magnet"
xmlns="http://www.myFictitiousCompany.com/product">
<sup:supplier id="S 3908"/>
<sup:supplier id="S 4589"/>
<sup:supplier id="S 1098"/>
<comments>&testhistory;</comments>
</part>
</parts>
</product>
5 属性值中的特殊字符
文件5有一个问题(红色部分):name 的属性值含有双引号。XML规范化规则规定,属性值中的特殊字符(比如双引号)必须使用相应的转义字符(比如用"代替双引号)代替。
文件6
<?xml version="1.0"?>
<!DOCTYPE product [
<!ATTLIST part approved CDATA "yes">
<!ENTITY testhistory "Part has been tested according to the specified standards.">
]>
<product xmlns="http://www.myFictitiousCompany.com/product"
xmlns:sup="http://www.myFictitiousCompany.com/supplier"
name="rotating disc "Energymeter""
id="P 184.435"
classification = "MeasuringInstruments/Electrical/Energy/">
<parts>
<part id="P 184.675"
name="bearing">
<sup:supplier id="S 1753"/>
<sup:supplier id="S 2341"/>
<sup:supplier id="S 3276"/>
<comments>&testhistory;</comments>
</part>
<part id="P 184.871"
name="magnet"
xmlns="http://www.myFictitiousCompany.com/product">
<sup:supplier id="S 3908"/>
<sup:supplier id="S 4589"/>
<sup:supplier id="S 1098"/>
<comments>&testhistory;</comments>
</part>
</parts>
</product>
6 实体引用
文件6包含了DTD声明,它定义了一个实体:testhistory(红色部分),这个实体被元素comments引用。规范化要求文档中不能存在实体引用,需要用其内容代替引用。文件7是规范化后的文档。
文件7
<?xml version="1.0"?>
<!DOCTYPE product [
<!ATTLIST part approved CDATA "yes">
<!ENTITY testhistory "Part has been tested according to the specified standards.">
]>
<product xmlns="http://www.myFictitiousCompany.com/product"
xmlns:sup="http://www.myFictitiousCompany.com/supplier"
name="rotating disc "e;Energymeter"e;"
id="P 184.435"
classification = "MeasuringInstruments/Electrical/Energy/">
<parts>
<part id="P 184.675"
name="bearing">
<sup:supplier id="S 1753"/>
<sup:supplier id="S 2341"/>
<sup:supplier id="S 3276"/>
<comments>Part has been tested according to the specified standards.</comments>
</part>
<part id="P 184.871"
name="magnet"
xmlns="http://www.myFictitiousCompany.com/product">
<sup:supplier id="S 3908"/>
<sup:supplier id="S 4589"/>
<sup:supplier id="S 1098"/>
<comments>Part has been tested according to the specified standards.</comments>
</part>
</parts>
</product>
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者