2013-07-23 111 views
2

聲明XML元素我有一個元素的xml:如何在XSD的架構

<attribute name="attributeName1" 
      type="typeName1">value1</attribute> 
... 
<attribute name="attributeName2" 
      type="typeName2"> 
    <row order="1"> 
     <attribute name="attributeName3" 
        type="typeName3">value3</attribute> 
     ... 
    </row> 
    ... 
</attribute> 

如何將這些元素可以在XSD的架構由申報?

回答

0

您可以定義attribute元素,使其具有混合內容的類型。像下面這樣:

<xsd:element name="attribute"> 
    <xsd:complexType mixed="true"> 
     <xsd:sequence> 
      <xsd:element name="row" minOccurs="0" maxOccurs="unbounded"> 
       <xsd:complexType> 
        ... 
       </xsd:complexType> 
      </xsd:element> 
     </xsd:sequence> 
    </xsd:complexType> 
</xsd:element> 

這將會給你一個JAXB類像你在哪裏結束了將存儲文本和對象一個屬性如下。

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "", propOrder = { 
    "content" 
}) 
@XmlRootElement(name = "attribute") 
public class Attribute { 

    @XmlElementRef(name = "row", namespace = "http://www.example.org/schema", type = JAXBElement.class, required = false) 
    @XmlMixed 
    protected List<Serializable> content; 

} 

從長遠來看,如果您做了如下的改變,您可能會更快樂。

<attribute name="attributeName1" type="typeName1"> 
    <value>value1</value> 
</attribute> 
+1

謝謝你的回覆:) – jarek