2011-12-17 1 views
0

Допустим, я определяю следующий XML-схему, author.xsd:в том числе XML Schema Once

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

<xs:element name="author">  
<xs:complexType> 
    <xs:sequence>  
    <xs:element name="firstname" type="xs:string"/>  
    <xs:element name="lastname" type="xs:string"/>  
    </xs:sequence> 
</xs:complexType> 
</xs:element>  

</xs:schema> 
</xml> 

Как бы я идти о просто включая схему XML один раз при определении нескольких элементов автора в моем фактическом файле XML? Я хотел бы избежать необходимости определять xmlns: xsi для каждого элемента author.

<?xml version="1.0"?> 
<author xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="author.xsd"> 
    <FirstName>Mark</FirstName> 
    <LastName>Twain</LastName> 
</author> 
<author xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="author.xsd"> 
    <FirstName>Awesome</FirstName> 
    <LastName>Possum</LastName> 
</author> 

ответ

1

Из того, что я понял, вы хотите, чтобы файл XML, чтобы иметь более 1 author. Если это так, то вам нужно определить родительский элемент и иметь author в качестве его дочернего элемента. Родительский элемент действует как контейнер. Итак, вот правило XML

Файл xml может иметь только один корневой элемент. Все остальные элементы должны быть детьми.

Так что, я бы изменить схему, как этого

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

<xs:element name="authors"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="author" maxOccurs="unbounded">  
     <xs:complexType> 
      <xs:sequence>  
       <xs:element name="firstname" type="xs:string"/>  
       <xs:element name="lastname" type="xs:string"/> 
      </xs:sequence> 
     </xs:complexType> 
     </xs:element> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 
</xs:schema> 

ПРИМЕЧАНИЕ Если вы хотите ограничить автор сказать 100 затем изменить maxOccurs к этому значению.

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