2013-07-08 35 views
0

我有下面的xml。我需要爲此創建xsd。如何在XML中創建用於重複元素的xsd

<Request> 
<namelist message="hello"> 
<name date="">one</name> 
<name date="">two</name> 
</namelist> 
</Request> 

「name」元素是根據數據庫中的姓名的數目重複。 「name」元素沒有計數限制。請幫我爲此創建xsd。

回答

0

這是一個XSD爲您的XML文件。

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="Request"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="namelist"> 
      <xs:complexType> 
      <xs:sequence> 
       <xs:element name="name" maxOccurs="unbounded" minOccurs="0"> 
       <xs:complexType> 
        <xs:simpleContent> 
        <xs:extension base="xs:string"> 
         <xs:attribute type="xs:string" name="date" use="optional"/> 
        </xs:extension> 
        </xs:simpleContent> 
       </xs:complexType> 
       </xs:element> 
      </xs:sequence> 
      <xs:attribute type="xs:string" name="message"/> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

您可以輸入您的XML生成該website

+0

http://www.freeformatter.com/xsd-generator.html –

+0

謝謝納文。我已經嘗試過這種方式。但我需要用xsd創建JAXB類。如果我使用上述方法,生成的java類非常複雜。它有三層內部類。我試圖創建使用複雜類型。這一個很容易理解的java代碼。 – pandeis

1

XSD我發現生成使用複雜的數據類型XSD。以下是我正確的xsd。

<?xml version="1.0" encoding="utf-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<xsd:element name="Request" type="RequestType"/> 
<xsd:complexType name="RequestType"> 
    <xsd:sequence> 
     <xsd:element name="namelist" type="nameType"></xsd:element> 
    </xsd:sequence> 

</xsd:complexType> 

<xsd:complexType name="nameType"> 
    <xsd:sequence> 
     <xsd:element maxOccurs="unbounded" name="name"> 
      <xsd:complexType> 
       <xsd:simpleContent> 
        <xsd:extension base="xsd:string"> 
         <xsd:attribute name="date" type="xsd:date" use="required" /> 
        </xsd:extension> 
       </xsd:simpleContent> 
      </xsd:complexType> 
     </xsd:element> 
    </xsd:sequence> 
    <xsd:attribute name="message" type="xsd:string"/> 
</xsd:complexType> 

JAXB類從該XSD生成是容易使用。

+0

+1由問題解決所有者。大 –