2010-05-31 2 views
0

Я пытаюсь написать схему типа 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> 

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

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

ответ

2

Я пришел с этим ..

<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> 

Я думаю, он синтаксически действителен. Правильно ли это?

Смежные вопросы