XML解析器和XML处理器是相同的吗?

6
XML解析器和XML处理器是两个不同的东西吗?它们有不同的工作吗?
4个回答

2
XML解析器和XML处理器是相同的。它不适用于其他语言。XML是通用的数据标记语言。解析XML文件已经意味着处理它。
另一方面,处理XML文件意味着提供一些XML应用程序。除了解析之外,没有什么是必需的。
请参阅https://en.wikipedia.org/wiki/XML#Key_terminology 更新:如果您认为“解析”是语法分析,则它是“处理”。因为XML语句本身没有意义。

你能解释一下这个论坛在谈论什么吗,http://www.coderanch.com/t/446716/java-Web-Services-SCDJWS/certification/Processor-Parser。他们让它看起来像是两件不同的事情。谢谢! - Richard Twitty
该链接中提供的答案是错误的(而ApceH在这里的答案基本上是正确的)。XML处理器和XML解析器是相同的,这一点在权威的XML参考文献W3C XML推荐中已经明确描述。有关详细信息,请参见我的答案 - kjhughes

1
“解析器”是人们用来描述读取结构化数据表示的任何软件的通用名称。“处理器”是XML规范决定称呼该软件组件的名称,也许是为了使用一个比“XML解析器”更不常见的名称。因此,虽然你可能会说这些东西是相同的,但如果你是一个标准人员,你可能想称之为“处理器”,但如果你想与普通程序员和开发人员交流,将其描述为“解析器”将有助于他们理解你所说的内容。从 XML规范介绍中可以得知:
  • “[定义:一个名为XML处理器的软件模块用于读取XML文档并提供对其内容和结构的访问。] [定义:假设XML处理器代表另一个模块(称为应用程序)执行其工作。]本规范描述了XML处理器在读取XML数据和向应用程序提供必要信息方面所需遵循的行为。”

1

是的,XML解析器和XML处理器是相同的。

W3C可扩展标记语言(XML)建议书中,XML标准的权威机构,XML处理器是用于XML解析器的正式术语:

[定义:使用称为XML处理器的软件模块读取XML文档并提供对其内容和结构的访问。] [定义:假定XML处理器代表另一个称为应用程序的模块执行其工作。]

[强调添加]

读取XML文档并提供对其内容和结构的访问的过程恰好是解析的过程,这是代表XML应用程序完成的。

你可能在口语中使用XML解析器,而在正式场合下使用XML处理器,但它们是相同的


1

除了将两个定义合并的正式定义外,还可以指出一些区别:

  • XML解析器是一种能够读取、分析和获取XML输入结构的应用程序/库;

  • XML处理器可以被看作是一种更广泛的应用程序/库,能够在XML输入上进行更多的处理:使用XPath和XSLT解析(如解析器)、修改、转换、选择、删除、重写、输出。


1
“读取、分析和获取结构”……为什么?如果你有一个理由,那么你就正在处理XML数据。 - ApceH Hypocrite
XML处理器可以被视为更广泛的应用程序/库。是的,从某种抽象意义上讲,它确实可以,但这并不是XML推荐中使用“XML处理器”这个术语的方式,因此,在实践中也不会这样使用。它与“XML解析器”同义。因此,这个答案是误导性的。 - kjhughes
@kjhughes 的问题并不涉及官方的 XML 推荐,但是提到了解析与处理。你如何称呼 xpath 处理、xslt 处理等操作? - guillaume girod-vitouchkina
1
这个问题非常具体,涉及到 XML 解析器XML 处理器,而不是泛指 解析器处理器。你的回答混淆了一个事实,即在 XML 推荐和 XML 领域的通用用法中,XML 解析器和 XML 处理器是同义词。 - kjhughes
问题没有明确指定术语“XML解析器”和“XML处理器”严格按照XML规范进行解释。这些术语的普通含义是不同的,在现实世界中,对任何形式的数据进行“解析”与“处理”是不同的。XML规范决定两个术语将“官方地”意味着相同,并不能改变它们在规范之外的事实。许多情况下仅需要解析而不需要处理。仅因为处理通常需要解析并不意味着它们是相同的或不可分割的。 - mwag

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接