Схема для элемента с Атрибутами и Дочерними узлами - PullRequest
0 голосов
/ 31 мая 2010

Я пытаюсь написать схему типа xsd для элемента с пользовательским типом, включающим дополнительные атрибуты для расширения базового типа. У меня проблемы с получением правильного синтаксиса.

<xs:element name="graphs">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="graph" 
                  minOccurs="1"
                  maxOccurs="unbounded"
                  type="graphType">
        <!-- child elements -->
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

<xs:complexType name="graphType">
<xs:simpleContent>
  <xs:extension base="xs:string">
    <xs:attribute name="title" type="xs:string"/>
    <xs:attribute name="type" type="xs:string"/>
  </xs:extension>
</xs:simpleContent>
</xs:complexType>

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

Редактировать: На самом деле я не хочу, чтобы родительский узел (график) содержал строковые данные, только xml ..

1 Ответ

2 голосов
/ 31 мая 2010

Я придумал это ..

<xs:element name="graphs">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="graph" 
                  minOccurs="1"
                  maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="sequence" type="sequenceType"/>
          </xs:sequence>
          <xs:attribute name="title" type="xs:string"/>
          <xs:attribute name="type" type="xs:string"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

<xs:complexType name="sequenceType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="name" type="xs:string"/>
      </xs:extension>
    </xs:simpleContent>
</xs:complexType>

Я думаю, что это синтаксически верно. Это кажется правильным?

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