XML模式定义问题

XML模式定义问题,xml,xsd,Xml,Xsd,对于以下XML代码,相应的XML架构定义是什么样子的: <Categories> <Category id="1">One</Category> <Category id="2">Two</Category> <Category id="3">Three</Category> </Categories> 一个 两个 三 我就是不知道如何同时声明PCData和注释 谢谢 当你提到

对于以下XML代码,相应的XML架构定义是什么样子的:

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

一个
两个
三
我就是不知道如何同时声明PCData和注释


谢谢

当你提到“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>

当你提到“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>

好,明白了:

<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>

好,明白了:

<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>

这就是它在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>

这就是它在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>


cvc复杂类型。2.1:元素“Category”必须没有字符或元素信息项[子项],因为该类型的内容类型为空。正如您可能已经注意到的,您在声明中遇到了我的问题……我不允许在元素标记中放入一个、两个或三个字符(我称之为PCData-抱歉,如果这是误导性的话)抱歉混淆了…我用正确的版本更新了我的架构。我与您在下面提出的内容非常匹配。酷!cvc复杂类型。2.1:元素“Category”必须没有字符或元素信息项[子项],因为该类型的内容类型为空。正如您可能已经注意到的,您遇到的问题正是我对您的声明的问题……我不允许在元素标记中添加一个、两个或三个标记(我称之为PCData-如果这有误导性,请道歉)很抱歉搞混了…我用正确的版本更新了我的模式。我和你在下面提出的非常匹配。酷!