【问题标题】:Why can an XML element of type xsd:anyURI contain a non-URI string?为什么 xsd:anyURI 类型的 XML 元素可以包含非 URI 字符串?
【发布时间】:2016-11-18 19:03:00
【问题描述】:

这是我目前的 video 元素,它只能包含一个 URI。

<xs:element name="video">
    <xs:simpleType>
        <xs:restriction base="xs:anyURI"/>
    </xs:simpleType>
</xs:element>

.. 但由于某种原因,我仍然可以将垃圾内容放入视频元素中,并且不会引发错误。

想法?

【问题讨论】:

    标签: xml xsd xsd-validation xml-validation


    【解决方案1】:

    您可以将您的声明简化为,

    <xs:element name="video" type="xs:anyURI"/>
    

    但您仍然无法对 URI 的构成有严格的解释,因为在 URI 语法规则方面,只有适度的义务强加给最低限度符合要求的处理器:

    3.2.17 anyURI

    [...] 注意: 每个 URI 方案都为 URI 强加了专门的语法规则 该方案,包括对允许片段语法的限制 身份标识。因为处理器检查一个 value 是一个适合上下文的 URI 引用,本规范 遵循[RFC 2396](由[RFC 2732]修改)的领导 问题:此类规则和限制不是类型有效性的一部分,并且 ·minimally conforming· 处理器不检查。因此在实践中 上述定义仅对 ·minimally conforming· 处理器。

    【讨论】:

      猜你喜欢
      • 2021-02-13
      • 2015-06-05
      • 2014-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多