XML区分大小写吗?

XML区分大小写吗?,xml,case-sensitive,Xml,Case Sensitive,简短问题 XML区分大小写吗 较长的问题 例如: <Shirt color="Red"/> 我是否需要接受红色、蓝色和绿色的不同情况?还是XML被广泛接受为区分大小写?简短回答: 是-XML区分大小写 更长的回答: 它被广泛接受为区分大小写,但是如果您想更灵活地接受,请看下面的问题,其中讨论了不区分大小写的枚举: 使用XSD 1.1,您可以使用断言实现不区分大小写的枚举: <xs:simpleType name="RGB"> <xs:res

简短问题

XML区分大小写吗

较长的问题

例如:

<Shirt color="Red"/>

我是否需要接受红色、蓝色和绿色的不同情况?还是XML被广泛接受为区分大小写?

简短回答:

是-XML区分大小写

更长的回答:

它被广泛接受为区分大小写,但是如果您想更灵活地接受,请看下面的问题,其中讨论了不区分大小写的枚举:


使用XSD 1.1,您可以使用断言实现不区分大小写的枚举:

<xs:simpleType name="RGB">
  <xs:restriction base="xs:string">
    <xs:assert test="lower-case($value) = ('red', 'green', 'blue')"/>
  </xs:restriction>
</xs:simpleType>


XSD 1.1在Saxon和Xerces的最新版本中得到了支持。

更详细的回答:没有什么可以阻止您编写case-Insistive的XML应用程序。但这不是预期的,也不是通常的。是的,是的。关于XML,首先要了解的事情之一就是使用XSD 1.1,目前它只是W3C的一项建议-Xerces with XSD 1.1 validation是一个处于测试状态的独立工件,JDK不支持XSD 1.1,即使是最新的XSD 1.8也不支持。据我所知,JDK1.9甚至没有计划使用它。您不能以这种方式使用高级XML技术,如基于JDK内置XSD1.1的JAXB。是的,您需要谨慎,但@René的答案需要限定。首先,“只是W3C的建议”:XSD1.0也是。“推荐”是W3C称之为已完成、最终、批准的规范。是的,XSD1.1目前只有三种实现(Saxon、Xerces和Altova),这是您应该考虑的因素。但不要被JDK中的内容所束缚——JDK早就放弃了对最新W3C标准的支持(例如,它甚至不支持XPath 2.0),但有很多第三方库来填补这一空白。当然,这取决于所使用的技术。如果实现低级解析和代码,则可以使用第三方解析器库(Xerces for XSD 1.1仍然是测试版,同一Xerces版本有两个不同的构件!)。对于JAXB-@Michael的例子:您是否知道第三方JAXB实现或派生工具使用xsd1.1,从而使用“替代品”生成类?不管怎样,这取决于伊恩的需要。
<xs:simpleType name="RGB">
  <xs:restriction base="xs:string">
    <xs:assert test="lower-case($value) = ('red', 'green', 'blue')"/>
  </xs:restriction>
</xs:simpleType>