XML Schema - 如何添加" type = xs:string"变成一个复杂的元素?

时间:2014-10-21 08:03:36

标签: xml xsd schema

我得到了以下XML字符串:

<dyn_banner>
    <pattern>header.jpg</pattern>
    <param id='1'>attributes[123]</param>
    <param id='2'>attributes[456]</param>
    <param id='X'> etc. 
    <param id='X'> counting ...
.
.
.

 </dyn_banner>

这是我到目前为止在XSD中设法生成的内容:

<xs:element name="dyn_banner">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="pattern" type="xs:string"/>
            <xs:element name="param" minOccurs="1" maxOccurs="unbounded"> 
                <xs:complexType>
                    <xs:attribute name="id" type="xs:integer"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType> 
</xs:element>

我现在的问题是,我不清楚如何告诉XML Schema元素&#34; param&#34;确实包含一个字符串(这里:attributes [123 etc。]。

1 个答案:

答案 0 :(得分:1)

我设法解决了主要问题。 -tags之间的字符串由simpleContent&amp;扩展标签:

<xs:element name="dyn_banner">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="pattern" type="xs:string"/>
            <xs:element name="param" minOccurs="1" maxOccurs="unbounded"> 
                <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                            <xs:attribute name="id" type="xs:int" use="required"/>
                            </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType> 
</xs:element>

ID仍然可以是相同的数字,这是我需要在下一步中找到的。