Определение встроенного XML в XMLSchema - PullRequest
2 голосов
/ 16 декабря 2011

Мне нужно проверить XML-файл, содержащий встроенный XML, с помощью XML-схемы. Правильность внутреннего XML меня не интересует. Какой тип я должен использовать в XML-схеме для этого типа контента? Простой xs:string не работает.

1 Ответ

1 голос
/ 16 декабря 2011

У вас есть несколько альтернатив для встраивания XML в другой документ XML.

xs:any:

Вы можете использовать тип xs:any в своей схеме ( ссылка ). Однако вам нужно будет включить схему для встроенного XML (который будет использоваться для его проверки).

В качестве альтернативы, xs:string можно заставить работать, если вы либо встраиваете внутренний XML в секцию CDATA, либо экранируете все символы < и &.

CDATA раздел:

<InnerXml>
  <![CDATA[
    <InnerXmlRoot>
      <InnerXmlContent>One & Two</InnerXmlContent>
    </InnerXmlRoot>
  ]]>
</InnerXml> 

Единственное, с чем вам следует быть осторожным при таком подходе, это то, что внутренний XML не может содержать CDATA разделов, поскольку разрешенный контент не может содержать ]]> (см. XML-спецификацию ).

Символ экранирования:

<InnerXml>
  &lt;InnerXmlRoot>
    &lt;InnerXmlContent>One &amp; Two&lt;/InnerXmlContent>
  &lt;/InnerXmlRoot>
</InnerXml> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...