xml - 什么是 XML 信息集,它与 XML 文档有何不同?

标签 xml xml-validation well-formed infoset

我试过阅读 http://www.w3.org/TR/xml-infoset/wikipedia entry .但坦率地说,我仍然不确定有什么区别。

引用:

An XML document has an information set if it is well-formed and satisfies the namespace constraints. There is no requirement for an XML document to be valid in order to have an information set.

从维基百科词条看似乎没有意义。无效文档怎么可能有任何语义,因此它怎么可能是“信息”集?

这个“信息集”是什么

well-formed and satisfies the namespace constrained

XML有什么?它本身以什么方式有用。换句话说,从语义上讲,为什么有必要定义 XML 信息集?是否有任何信息不能用 XML 表示?如果是这样,我可以看到 XML Infoset 的限制集,但如果不是,那么 XML Infoset 是否与术语“信息”一样毫无意义?

感谢您有趣的回答: 我仍然无法理解为什么 Xml 信息集与术语信息集相反有任何用途。但是你们给了我这个问题的直接答案

最佳答案

XML 不是文本。 XML"is"XML 信息集。然后可以将其序列化为 XML 文档中的文本,但 XML 信息集才是现实。

例如,信息集可能作为 DOM 树存在于内存中。它作为抽象对象模型的实现存在于内存中。

如果我将其序列化为 UTF-8,然后再序列化为 UTF-16,会怎样?结果可能是两组不同的位,但信息集相同。

还要考虑一下,对于文本,进行字符串连接之类的操作是有意义的。您不想将“<”连接到 XML 元素的中间。您必须先对其进行编码。如果它只是文本,你为什么要这样做?例如,如果您使用 DOM,您只需说 element.InnerText = "<";序列化时,“<”将被编码为“<”。但它是相同的信息集。

关于xml - 什么是 XML 信息集,它与 XML 文档有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/839229/

相关文章:

c++ - fftw3 的常量正确性

android - 解析 XML 文件时出现非法参数异常

c++ - 如何从 MSXML::IXMLDOMElement 中获取值数据

java - 使用 JDOM 2.0 根据 XSD 模式验证 XML 文件

xml - 为什么我们不能对 XML 命名空间使用随机字符串而不是 URI?

xml - 使用 JAXB 验证模式

python - 添加 "encoding="utf-8"?> 到 xml 文件

java - 如何将XML文件读入数据表类型对象?

xml - 使用 XSD 进行 aadhar auth XML 验证

c - 查找 C 中给定公式中出现的格式正确的公式的真值的所有可能组合