CDATA игнорировать и в XSD - PullRequest
0 голосов
/ 27 мая 2011

Мне нужен анализатор / валидатор xml, чтобы игнорировать наличие &

Как мне это сделать, используя CDATA в xsd.

Это фрагмент xsd:

 <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>

Любая помощь приветствуется.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 27 мая 2011

Попробуйте использовать ссылку на сущность:

  <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>
1 голос
/ 27 мая 2011

Полагаю, вы можете использовать ссылку на сущность &amp; вместо символа &.

0 голосов
/ 27 мая 2011

Хм.Мне интересно, как эта строка во втором фрагменте на самом деле черная вместо правильно окрашенных элементов.

Могу я спросить, что является ошибкой проверки?Это может помочь точно определить, что именно не так с этой строкой кода.Возможно, парсер будет игнорировать знак &, но вы пытались заменить & на '&'?Дело в том, что у меня такое чувство, что вы устанавливаете значение перечисления на

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

, что ... очевидно, не пройдет проверку.Либо это, либо синтаксический анализатор полностью переходит эту строку и принимает в качестве значения перечисления только XYZ.

  1. В чем ошибка.
  2. Вы пытались заменить & на

    &amp; 
    

    Так как это спасательная сущность?

Приветствия.

...