Правильный способ определения схемы xsd в моей ситуации - PullRequest
0 голосов
/ 13 июля 2010
<Item id="G1@MIT" type="GROUP">
   <Item id="B1@MIT" type="BLOCKSEGMENT"/>
   <Item id="S1@MIT" type="SWITCH"/>
</Item>

Содержимое xml выше является примером моих данных xml. Как видите, у меня есть предметы, которые могут содержать другие предметы.
Мой первый вопрос - как определить XML-схему в этой ситуации.
Мой второй вопрос: я хочу, чтобы мой атрибут id содержал символ «@».
Как мне этого добиться?

1 Ответ

1 голос
/ 13 июля 2010

Определение рекурсивных структур в XML-схеме тривиально. Это просто вопрос определения типа, который содержит элемент этого типа:

<xs:complexType name="ItemType">
  <xs:sequence minOccurs="0">
    <xs:element name="Item" type="ItemType"></xs:element>
  </xs:sequence>
</xs:complexType>

Атрибуты могут содержать символ @ по умолчанию без каких-либо проблем. Если вы хотите, чтобы атрибут содержал этот символ, вам следует прочитать ограничения XML-схемы В частности, вы захотите взглянуть на элемент xs:pattern.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...