从XSD解析并提取特定的根元素和子元素到JAVA String

时间:2018-09-24 07:25:20

标签: xml parsing xsd xml-schema-collection

我在XSD以下。

  <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/2001/XMLSchema">
<xs:element name="CreditCard" type="xs:CreditCardAccount"/>
<xs:element name="Savings" type="xs:SavingsAccount"/>

 <xs:complexType name="Account">
   <xs:sequence>
     <xs:element name="balance" type="xs:decimal"/>
     <xs:element name="accountNo" type="xs:string"/>
   </xs:sequence>
 </xs:complexType>

 <xs:complexType name="CreditCardAccount">
   <xs:complexContent>
    <xs:extension base="xs:Account">
     <xs:sequence>
      <xs:element name="expiryDate" type="xs:date"/>
      <xs:element name="issuer" type="xs:string"/>
      <xs:element name="type" type="xs:string"/>
     </xs:sequence>
    </xs:extension>
   </xs:complexContent>
 </xs:complexType>

<xs:complexType name="SavingsAccount">
   <xs:complexContent>
    <xs:extension base="xs:Account">
     <xs:sequence>
      <xs:element name="expiryDate" type="xs:date"/>
      <xs:element name="issuer" type="xs:string"/>
      <xs:element name="type" type="xs:string"/>
     </xs:sequence>
    </xs:extension>
   </xs:complexContent>
 </xs:complexType>
</xs:schema>

我需要解析以上xsd文件。输入i将根据输入的子项必须显示的基础给出CreditCard或Savings。

例如。如果我输入信用卡号

输出应显示

 <xs:complexType name="CreditCardAccount">
      <xs:complexType name="Account">
       <xs:sequence>
         <xs:element name="balance" type="xs:decimal"/>
         <xs:element name="accountNo" type="xs:string"/>
       </xs:sequence>
      </xs:complexType>
     <xs:sequence>
       <xs:element name="expiryDate" type="xs:date"/>
       <xs:element name="issuer" type="xs:string"/>
       <xs:element name="type" type="xs:string" use="required"/>
     </xs:sequence>
  </xs:complexType>

0 个答案:

没有答案