XML模式定义问题

问题描述:

什么会相应的XML模式定义的样子以下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> 
+0

cvc-复杂类型2.1:元素'类别'必须没有字符或元素信息项[子项],因为类型的内容类型为空。 – 2010-12-13 18:55:24

+0

正如你可能已经注意到的,你遇到了我的问题与你的声明.... – 2010-12-13 18:59:53

+0

我不允许将元素标记(我称为PCData - 抱歉,如果这是误导),一,二或三, – 2010-12-13 19:00:36

确定了它:

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

而且它甚至可以和JAXB一起工作: – 2010-12-13 19:22:50

并且那它是如何即使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>