Canonical XML

Canonical XML(规范化形式的XML)XML规范的一个子集。任何XML文档都可以转换为规范化形式的XML,因此将特定类型的微小差异去除却仍是该XML文档。由于这些特定的差异通常不认为是有意义的,转换成规范化形式的XML是判断两个XML文档逻辑上是否是同一个文档的好办法。

举例来说,XML允许在开始标签(tag)的不同点出现,属性可以按任何顺序书写,这些差异很少用来表达含义,因此这些形式通常被认为是相等的

   <p  secure="1">
   <p     secure   = "1"
             class='a'   >

在将一个任意XML文档到规范化形式的XML的转换中,属性将按标准书序(名字的字母顺序)排列,空格和引号被标准化。 这样上面的第二种形式将转换成第一种。

Canonical XML定义了一些规范化形式的规则,包括:

  • 使用UTF-8编码
  • 用0x0A字符表示换行符
  • 属性值里的白空格被正规化
  • 添加缺省属性的说明
  • CDATA标记的部分替换为相应的文字字符
  • 展开实体引用
  • 删除XML的声明和DTD
  • 空元素使用开始/结束标签对,而不是用特殊的空元素语法
  • 属性按照属性名的字母顺序排序
  • 删除元素中多余的命名空间声明

讲一个文档转换为规范化形式的XML是幂等的。 也就是说,第一次转换通常产生与原文档不同的字符串,而重复的转换将不再产生变化。

根据W3C的规范,如果两个XML文档具有相同的规范化形式,那么在一定的应用上下文(极少见的情形除外)中,这两个文档在逻辑上是相等的。

然而,在特殊的上下文中,用户可能关心规范形式的XML逻辑等价之外的特殊语义。比如说,隐写术系统可能在XML文档中通过不同的白空格,属性引号和顺序,使用十进制或十六进制数字字符等等来隐藏信息。显然,将这样的文件转换为标准化形式的XML将丢失这些特殊的语义。而另一方面,XML文件使用大小写的不同,单词使用古代的拼写或现代的拼写等,在某种意义上可以看作是相同的,这样的语境超过了标准化形式XML的范围。

参见

  • XML Signature

外部链接

  • W3C Recommendation, Canonical XML Version 1.0, 15 March 2001(页面存档备份,存于互联网档案馆
  • W3C Recommendation, Exclusive XML Canonicalization Version 1.0, 18 July 2002(页面存档备份,存于互联网档案馆
產品及
標準
推薦
  • ActivityPub
  • Activity Streams英语Activity Streams (format)
  • ARIA英语WAI-ARIA
  • Canonical XML
  • CDF英语Compound Document Format
  • 階層式樣式表
  • 文档对象模型
  • 地理位置API英语W3C Geolocation API
  • HTML
    • HTML5
  • Indexed Database API
  • ITS英语Internationalization Tag Set
  • JSON-LD英语JSON-LD
  • Linked Data Notifications英语Linked Data Notifications
  • MathML
  • Micropub英语Micropub (protocol)
  • OWL
  • P3P
  • PLS英语Pronunciation Lexicon Specification
  • RDF
    • RDF Schema英语RDF Schema
  • 語音識別的語義解釋英语Semantic Interpretation for Speech Recognition
  • SISR英语Semantic Interpretation for Speech Recognition
  • SKOS
  • SMIL
  • SOAP
  • SRGS英语Speech Recognition Grammar Specification
  • SRI英语Subresource Integrity
  • SSML
  • 可縮放向量圖形
    • SVG 濾鏡英语SVG filter effects
  • SCXML英语SCXML
  • SHACL英语SHACL
  • SPARQL
  • Timed text
  • VoiceXML
  • WoT英语Web of Things
    • TD英语Thing Description
  • 网页存储
  • WSDL
  • XForms
  • XHTML
    • XHTML+RDFa英语XHTML+RDFa
  • XInclude英语XInclude
  • XLink
  • 可扩展标记语言
记录
  • IndieAuth英语IndieAuth
  • XAdES英语XAdES
  • XHTML+SMIL英语XHTML+SMIL
  • XUP
工作草案
  • CCXML英语Call Control eXtensible Markup Language
  • CURIE英语CURIE
  • EME
  • InkML
  • JSON-LD
  • MSE
  • RIF
  • SCXML英语SCXML
  • SMIL時間表英语SMIL Timesheets
  • sXBL英语sXBL
  • WICD英语Web Integration Compound Document
  • XFDL英语Extensible Forms Description Language
  • XFrames英语XFrames
  • XBL
  • XMLHttpRequest
檢測
倡議
  • 多通道交互活動(MMI)英语W3C MMI
  • 驗証服務
  • 無障礙網頁倡議英语Web Accessibility Initiative
  • 網絡平台英语WebPlatform
棄用
  • C-HTML
  • HDML英语Handheld Device Markup Language
  • JSSS英语JavaScript Style Sheets
  • PGML英语Precision Graphics Markup Language
  • VML
  • XHTML+MathML+SVG英语XHTML+MathML+SVG
機構
  • 萬維網基金會英语World Wide Web Foundation
工作小組
  • SVG英语SVG Working Group
  • CSS英语CSS Working Group
  • HTML英语HTML Working Group
  • WebOnt(語義網活動)英语WebOnt
  • 設備描述(DDWG)英语W3C Device Description Working Group
  • 網頁超文本技術工作小組(WHATWG)
軟件
瀏覽器
  • Line Mode (1990年-)
  • Arena (1993年-1998年)
  • Agora (1994年-1997年)英语Agora (web browser)
  • Argo (1994年-1997年)英语Argo (web browser)
  • Amaya (瀏覽器及編輯器,1996年-2012年)
會議
  • 國際萬維網大會(WWW大會)英语International World Wide Web Conference
    • 督導委員會(IW3C2)英语International World Wide Web Conferences Steering Committee
    • 第一屆(WWW1,1994年)英语First International Conference on the World-Wide Web