2015-09-01 4 views
1

Я пытаюсь написать рекурсивное определение XSD. Я посмотрел на подобные вопросы, но я все еще не могу найти, что я делаю неправильно.Рекурсивное определение XSD

Я определяю заголовок, который является элементом, который имеет текст, URL-адрес и список дочерних элементов.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
<xs:element name="header"> 
    <xs:sequence> 
     <xs:element name="item"> 
      <xs:complexType> 
       <xs:sequence> 
        <xs:element type="xs:string" name="text"/> 
        <xs:element type="xs:string" name="url"/> 
        <xs:sequence> 
         <xs:element ref="item" /> 
        </xs:sequence> 
       </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
    </xs:sequence> 
</xs:element> 

Мой IDE дает ошибку в гнездовой пункта о том, что «элемент» не определен.

ответ

1

вы определили item элемент локально, но он должен быть определен глобально, чтобы ссылаться:

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

    <xs:element name="item"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element type="xs:string" name="text"/> 
     <xs:element type="xs:string" name="url"/> 
     <xs:sequence> 
      <xs:element ref="item" /> 
     </xs:sequence> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 

    <xs:element name="header"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element ref="item"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 
Смежные вопросы