XML模式定义问题

时间:2010-12-13 18:28:45

标签: xml xsd

对于以下XML代码,相应的XML Schema Definition会是什么样子:

<Categories>   
  <Category id="1">One</Category>
  <Category id="2">Two</Category>
  <Category id="3">Three</Category>
</Categories>

我无法找到如何同时声明PCData和注释。

谢谢!

3 个答案:

答案 0 :(得分:4)

这就是它如何与JAXB一起使用

<xs:complexType name="Cities">
        <xs:sequence>
            <xs:element name="City" minOccurs="1" maxOccurs="unbounded">
                <xs:complexType mixed="true">
                    <xs:simpleContent>
                        <xs:extension base="xs:string">
                            <xs:attribute name="id" type="xs:integer" />
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

答案 1 :(得分:1)

当你提到“PCData”和“注释”时,我不确定你所指的是什么。

这是一个基于您提供的XML的非常简单的架构:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Categories">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Category" 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></xs:schema>

答案 2 :(得分:0)

好的,明白了:

<xs:complexType name="Cities">
    <xs:sequence>
        <xs:element name="City" minOccurs="1" maxOccurs="unbounded">
            <xs:complexType>
                <xs:simpleContent>
                    <xs:restriction base="xs:string"></xs:restriction>
                </xs:simpleContent>
                <xs:attribute name="id" type="xs:integer" />
            </xs:complexType>
        </xs:element>
    </xs:sequence>
</xs:complexType>