理解XML解析器的定义

理解XML解析器的定义,xml,xsd,Xml,Xsd,对,有一些 以下几点是什么意思: 您可以使用XML解析器来解析模式文件 一般来说,在计算机科学中,解析器是一种软件,它以字符串作为输入,并通过引用语法来确定其结构。对于XML解析器,该语法是关于开始标记、结束标记、属性等的一组规则,因此XML解析器的工作是将原始XML文档作为输入,并将其转换为已识别元素和属性的结构化文档 不幸的是,你会发现很多人误用这个词,就像正确使用它一样。关于StackOverflow有很多问题(我今天看到了一些),人们谈论“编写XML解析器”,而实际上他们所做的是编写一个

对,有一些

以下几点是什么意思:

您可以使用XML解析器来解析模式文件


一般来说,在计算机科学中,解析器是一种软件,它以字符串作为输入,并通过引用语法来确定其结构。对于XML解析器,该语法是关于开始标记、结束标记、属性等的一组规则,因此XML解析器的工作是将原始XML文档作为输入,并将其转换为已识别元素和属性的结构化文档

不幸的是,你会发现很多人误用这个词,就像正确使用它一样。关于StackOverflow有很多问题(我今天看到了一些),人们谈论“编写XML解析器”,而实际上他们所做的是编写一个处理XML解析器输出的XML应用程序

W3CXML规范实际上没有使用术语“XML解析器”;它谈到了“XML处理器”。我认为这是因为XML处理器所做的不仅仅是解析。它还执行一些一致性检查(检查开始和结束标记是否匹配),这在纯计算机科学意义上不是解析器的工作,它还可以执行验证(检查解析器标识的元素是否符合某些DTD或模式中的规则)

使用XML表示任何类型的数据的优点之一是不必编写自己的解析器;有很多XML解析器可用于此工作。您引用的W3Schools网站只是指出,这适用于模式,也适用于任何其他类型的结构化数据


回应@Zafar的评论,Saxon不是一个XML解析器(尽管人们这样称呼它并不少见)。Saxon包括许多处理XML的工具,使用XPath、XSLT和XQuery等语言,但Saxon不解析XML本身;它调用外部XML解析器的服务来实现这一点。然而,使用通用XML工具(如Saxon)的能力是用XML表示数据的另一个好处,并且可能比重用XML解析器本身的能力更有价值。

XML模式使用XML语法,因此可以使用标准XML解析器进行解析。例如,与DTD相比,这是一个优势,DTD不能解析为XML,可以带来一些非常实际的好处:

  • XSLT可以解析XML模式以生成文档或 将一个XML模式转换为另一个相关的XML模式
  • Schematron可以解析XML模式以检查与XML模式的一致性 部门或其他组织指导方针/政策
  • JAXB和
    xsd.exe
    可以将XML模式解析为 在Java或.NET中生成支持封送和 自动解组

这些好处更容易实现,因为XML模式使用XML语法来表示其约束。

作者试图指出,由于模式文件基本上是XML,因此不需要任何特殊的东西来解析模式文件。你每天都会遇到像saxon这样的XML解析器,除了这个问题问“XML解析器”是什么,我们应该更精确一点。Saxon不是XML解析器。“应用于模式”意味着xsd?什么是“任何其他类型的结构化数据”