3 回答
TA贡献1827条经验 获得超7个赞
请参阅XML建议的第3.1节。它说,“请注意,start-tag或empty-element标签中属性规范的顺序并不重要。”
如果一个软件需要XML元素上的属性以特定顺序出现,那么该软件不处理XML,它处理的文本看起来像表面上的XML。它需要修复。
如果无法修复,并且您必须生成符合其要求的文件,则无法可靠地使用标准XML工具来生成这些文件。例如,您可以尝试(按照您的建议)使用XSLT以定义的顺序生成属性,例如:
<test> <xsl:attribute name="foo"/> <xsl:attribute name="bar"/> <xsl:attribute name="baz"/></test>
只是发现XSLT处理器发出这样的:
<test bar="" baz="" foo=""/>
因为处理器使用的DOM按标签名称按字母顺序排序属性。(这是XML DOM中常见但不通用的行为。)
但我想强调一些事情。如果某个软件在某个方面违反了XML建议,则可能在其他方面违反了该建议。如果在以错误的顺序提供属性时它会中断,如果使用单引号分隔属性,或者属性值包含字符实体,或者XML建议说XML文档中的任何其他内容,它可能也会中断可以做到这个软件的作者可能没有想到。
TA贡献1995条经验 获得超2个赞
不可能过分强调罗伯特罗斯尼刚刚说的话,但我会试试。;-)
国际标准的好处是,当每个人都遵循它们时,生活是美好的。我们所有的软件都和平相处。
XML必须是我们最重要的标准之一。它是像SOAP这样的“旧网”东西的基础,还有像RSS和Atom这样的“web 2.0”。这是因为XML能够在不同平台之间进行互操作的明确标准。
如果我们一点一点地放弃XML,我们将陷入这样一种情况,即XML的生产者将无法假设XML的使用者能够使用他们的内容。这将对该行业产生灾难性影响。
对于根据标准编写不处理XML的代码的任何人,我们应该非常有力地推迟。我理解,在这些经济时代,人们不愿意冒犯“不”来冒犯客户和商业伙伴。但在这种情况下,我认为这是值得的。如果我们不得不为每个业务合作伙伴手工制作XML,那么我们的财务状况会更差。
因此,不要“启用”不了解XML的公司。向他们发送标准,突出显示相应的行。他们需要不再认为XML只是带有尖括号的文本。它的行为与表示尖括号的文本不同。
这不是有借口的。即使最小的嵌入式设备也可以在其中使用全功能的XML解析器实现。我还没有听到过无法解析标准XML的充分理由,即使人们无法负担全功能的DOM实现。
添加回答
举报