2010-12-13 64 views
0

什麼會相應的XML模式定義的樣子以下XML代碼:XML模式定義問題

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

我只是不能找出如何在同一時間宣佈PCDATA和註釋。

謝謝!

回答

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

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

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

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>