2010-05-31 130 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和论坛,我似乎找到了最适合我的问题的解答。

编辑:其实我不想父节点(图)包含字符串数据,只有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> 

我想它在语法上是有效的。它看起来是否正确?

相关问题