Как проигнорировать проверку Неизвестных тегов?

Еще один вызов возможности XSD,

Я отправлял XML-файлы своими клиентами, которые будут иметь 0 или больше неопределенных, или [вызов] неожиданные теги (Может появиться в иерархии). Хорошо они - избыточные теги для меня.. таким образом, я должен проигнорировать их присутствие, но наряду с ними существует некоторый набор тегов, которые требуются, чтобы быть проверенными.

Это - демонстрационный XML:

<root>
  <undefined_1>one</undefined_1>
  <undefined_2>two</undefined_2>
  <node>to_be_validated</node>
  <undefined_3>two</undefined_3>
  <undefined_4>two</undefined_4>
</root>

И XSD я попробовал:

  <xs:element name="root" type="root"></xs:element>
  <xs:complexType name="root">
    <xs:sequence>
      <xs:any maxOccurs="2" minOccurs="0"/>
      <xs:element name="node" type="xs:string"/>
      <xs:any maxOccurs="2" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType

XSD не позволяет это, из-за определенных причин.
Вышеупомянутым примером является просто образец. Практический XML идет со сложной иерархией XML-тэгов..

Любезно сообщите мне, можно ли получить взлом его.

Между прочим, альтернативное решение состоит в том, чтобы вставить XSL-преобразование перед процессом проверки. Ну, я избегаю его, потому что я должен изменить код .NET, который инициировал процесс проверки, который поддерживается самое меньшее моей компанией.

8
задан InfantPro'Aravind' 9 March 2010 в 05:50
поделиться

2 ответа

Заключение:

Это невозможно с XSD. Все подходы, которые я пытался реализовать, были названы инструментами проверки «неоднозначными», что сопровождалось множеством ошибок.

3
ответ дан 5 December 2019 в 17:36
поделиться

Может быть, можно использовать пространства имен:

<xs:element name="root" type="root"></xs:element> 
  <xs:complexType name="root"> 
    <xs:sequence> 
      <xs:any maxOccurs="2" minOccurs="0" namespace="http://ns1.com" /> 
      <xs:element name="node" type="xs:string"/> 
      <xs:any maxOccurs="2" minOccurs="0" namespace="http://ns2.com"/> 
    </xs:sequence> 
  </xs:complexType>

Это, вероятно, подтвердит.

1
ответ дан 5 December 2019 в 17:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: