Неверная XML-схема для элемента с / без подэлементов - PullRequest
2 голосов
/ 26 февраля 2010

Я хочу написать схему XML, в которой есть элемент, который может содержать подэлементы и / или примитивные типы.Итак, у меня есть этот фрагмент, который не проверяется правильно.

  <xs:complexType name="parameterType" mixed="true">
    <xs:complexContent>
      <xs:restriction base="xsd:anyType">
        <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        <xs:attribute name="name" type="xs:string" use="required" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:element name="parameters">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="parameter" type="my:parameterType" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

XML будет выглядеть (я действительно не знаю, какое значение)

  <parameters>
    <parameter name="interval">10000</parameter>
    <parameter name="active">true</parameter>
    <parameter name="list"><items><item>a</item><item>b</item></items></parameter>
    <parameter name="article"><article><title>a</title><price>10.00</price></article></parameter>
    ...
  </parameters>

Спасибо за любую помощь

Ответы [ 2 ]

1 голос
/ 26 февраля 2010

Вы можете использовать простой прием: создайте свою схему из файла примера xml с помощью этого объяснения (который использует trang) и сравните с вашей текущей схемой: -)

0 голосов
/ 26 февраля 2010

Хорошо, я получил это сам. У меня сейчас это рабочее решение:

  <xs:complexType name="parameterType" mixed="true">
    <xs:complexContent>
      <xs:restriction base="xs:anyType">
        <xs:sequence>
          <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
        <xs:attribute name="name" type="xs:string" use="required" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
...