2016-11-26 3 views
1

Я пытаюсь разместить элемент, который является необязательным внутри элемента simpleType, поэтому я изменил его на complexType. Теперь у меня есть complexType внутри complexType, и валидатор говорит, что это неправильно, как мне его исправить?ComplexType inside ComplexType

<glowne_role> 
    <aktor>William H. Macy</aktor> 
    <aktor> 
     Frances McDormand 
     <komentarz>Prywatnie aktorka jest żoną reżysera.</komentarz> 
    </aktor> 
    </glowne_role> 


<xs:element name="komentarz" type="xs:string" /> 

<xs:complexType name="glowne_role"> 
    <xs:complexType name="aktor" minOccurs="1" maxOccurs="3" type="xs:string"> 
    <xs:element ref="komentarz" minOccurs="0"/> 
    </xs:complexType> 
</xs:complexType> 

ответ

1

Вы можете иметь xs:complexType внутри xs:complexType, но не напрямую. На основе вашего XML вы хотите определить элемент, glowne_role, сложного типа, состоящего из последовательности элементов aktor, каждый из которых , а затем в свою очередь также может быть сложного типа. Обратите внимание, что чтобы текст мог предшествовать или следовать вашему komentarz, вы можете установить mixed="true" на родителя xs:complexType.

В целом, то это XSD будет успешно подтвердить свой XML:

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="komentarz" type="xs:string"/> 
    <xs:element name="glowne_role"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="aktor" minOccurs="1" maxOccurs="3"> 
      <xs:complexType mixed="true"> 
      <xs:sequence> 
       <xs:element ref="komentarz" minOccurs="0"/> 
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 
+0

спасибо за Ваш ответ! –

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

  • Нет связанных вопросов^_^