【问题标题】:CDATA to ignore & in XSDCDATA 在 XSD 中忽略 &
【发布时间】:2011-05-27 19:10:43
【问题描述】:

我需要 xml 解析器/验证器来忽略 & 的存在

我如何通过在 xsd 中使用 CDATA 来完成它。

这是xsd的sn-p:

 <xs:simpleType name="values">
  <xs:restriction base="xs:string">
     <xs:enumeration value="IN & OUT"/>
     <xs:enumeration value="XYZ"/>
  </xs:restriction>
</xs:simpleType>

我尝试按如下方式使用 CDATA,但因为我收到 xsd 验证错误而徒劳无功:

 <xs:simpleType name="values">
  <xs:restriction base="xs:string">
     <xs:enumeration value="IN <![CDATA[&]]> OUT"/>
     <xs:enumeration value="XYZ"/>
  </xs:restriction>
</xs:simpleType>

感谢任何帮助。

提前致谢。

【问题讨论】:

  • 不可能在属性值中使用结构化内容。除了元素之外,这也意味着属性值中不能有 CDATA 部分。

标签: xsd cdata


【解决方案1】:

我相信您可以使用实体引用&amp;amp; 而不是字符&amp;

【讨论】:

    【解决方案2】:

    尝试使用实体引用:

      <xs:simpleType name="values">
        <xs:restriction base="xs:string">
          <xs:enumeration value="IN &amp; OUT"/>
          <xs:enumeration value="XYZ"/>
        </xs:restriction>
      </xs:simpleType>
    

    或十进制参考:

      <xs:simpleType name="values">
        <xs:restriction base="xs:string">
          <xs:enumeration value="IN &#38; OUT"/>
          <xs:enumeration value="XYZ"/>
        </xs:restriction>
      </xs:simpleType>
    

    【讨论】:

      【解决方案3】:

      嗯。我发现有趣的是,第二个 sn-p 中的那条线实际上是黑色而不是正确着色的元素。

      请问验证错误是什么?它可能有助于查明该行代码的确切错误。解析器可能会忽略 & 符号,但您是否尝试将 & 替换为 '&' ?问题是,我感觉你正在将枚举值设置为

          "IN <![CDATA[&]]> OUT"/>
      

      这...显然无法通过验证。或者解析器完全越过那条线,只接受 XYZ 作为枚举值。

      1. 出了什么问题。
      2. 你试过用

        替换 &
        &amp; 
        

        既然是逃生实体?

      干杯。

      【讨论】:

      • 1) XMLSPY 中的验证错误 - 字符
      • @joerobles:您的代码是否仅将&amp;amp; 实体引用更改为“AND”?如果是这样,您可以使用十进制引用:&amp;#38;
      • 啊,我明白了。我会看看我是否可以在不影响您需求的情况下提出解决方案。你试过用谷歌搜索错误吗? =)
      • 谷歌搜索但没有运气。此外,web 中的大多数示例都是针对简单元素的,而不是 xsds 中的。
      • @joerobles 你用什么来解析 xsd 架构? =) 只是想知道。我在想解析器上可能有一些设置允许您自定义要解析的内容和不解析的内容。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-08
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 2018-08-22
      • 2011-04-08
      • 1970-01-01
      相关资源
      最近更新 更多