Можно ли определить схемы XML с именами узлов, заданными с помощью регулярных выражений? - PullRequest
2 голосов
/ 25 апреля 2010

Я знаю, что это, вероятно, вопрос против философии XML, но все же возможно определить схемы для XML следующим образом:

<Root>
  <arbitrary-name-of-node>
   <Name></Name>
   <Position></Position>
   <!-- ... -->
  </arbitrary-name-of-node>

  <arbitrary-name-of-node>
   <Name></Name> 
   <Position></Position>
   <!-- ... -->
  </arbitrary-name-of-node>
</Root>

где произвольное имя узла соответствует регулярному выражению [a-zA-Z0-9]?

Спасибо за ответ!

Ответы [ 2 ]

1 голос
/ 25 апреля 2010
1 голос
/ 25 апреля 2010

Не думаю, что это возможно.

Как я понимаю, у вас есть два варианта.

1. Создайте подобную схему и добавьте каждое «произвольное имя узла» под корневым типом.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
 xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Root">
    <xs:complexType>
      <xs:all>
        <xs:element name="arbitrary-name-of-node1" type="itemType" />
        <xs:element name="arbitrary-name-of-node2" type="itemType" />
        <xs:element name="arbitrary-name-of-node3" type="itemType" />
      </xs:all>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="itemType">
    <xs:sequence>
      <xs:element name="Name" />
      <xs:element name="Position" />
      <!--...-->
    </xs:sequence>
  </xs:complexType>
</xs:schema>

2. Создайте схему только для содержимого внутри "произвольного имени узла" и подтвердите каждый узел самостоятельно.

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