2010-04-01 48 views
1

重名元素我提取上我工作的一個DTD一個XML片段,pratically我需要包含在標籤資源資源的特定聲明,幷包含在另一個不同的一個是資源問題標籤輸入。問題是第一個需要id屬性,第二個不需要id屬性,因爲使用了替代屬性。是否有可能宣佈類似(pseudocoded):DTD(或XSD)具有不同範圍

的XML片段:

<xml> 

    <resources> 
    <resource id="somedir">sometpath</resource> 
    </resources> 

... 

    <input> 
    <resource exists="false"> 
     <path>somepath</path> 
    </resource> 
    </input> 

</xml> 

是否有可能與DTD或XSD?

謝謝

回答

4

DTD - no,XSD - yes。喜歡的東西:

<xs:element name="root" type="r:rootType"/> 
<xs:complexType name="rootType"> 
    <xs:sequence> 
     <xs:element name="resources" type="r:resourcesType"/> 
     <xs:element name="input" type="r:inputType"/> 
    </xs:sequence> 
</xs:complexType> 

<xs:complexType name="resourcesType"> 
    <xs:sequence> 
     <xs:element name="resource" type="r:resourceType" minOccurs="0"/> 
    </xs:sequence> 
</xs:complexType> 
<xs:complexType name="inputType"> 
    <xs:sequence> 
     <xs:element name="resource" type="r:inputResourceType" minOccurs="0"/> 
    </xs:sequence> 
</xs:complexType> 
...