經過this頁面後,我編寫了以下代碼來解析XSD文件。但是,我只獲取根元素,並且我迷路了,以便如何獲取其中的嵌套元素。 代碼:解析XSD並獲取嵌套元素
XMLSchemaLoader loader = new XMLSchemaLoader();
XSModel model = loader.loadURI(url.toURI().toString());
XSNamedMap map = model.getComponents(XSConstants.ELEMENT_DECLARATION); //returns the root component
if(map!=null){
for (int j=0; j<map.getLength(); j++) {
String name = map.item(j).getName(); //returns 'country' correctly.
}
}
我不張貼整個XSD,但這是結構:
<xsd:element name="country">
<xsd:complexType>
<xsd:annotation>
<xsd:appinfo id="substring">No</xsd:appinfo>
</xsd:annotation>
<xsd:sequence minOccurs="1" maxOccurs="unbounded">
<xsd:element name="states" minOccurs="1" maxOccurs="1" >
<xsd:complexType>
<xsd:annotation>
<xsd:appinfo id="substring">No</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="cities" minOccurs="1" maxOccurs="unbounded">
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"></xsd:attribute>
</xsd:complexType>
</xsd:element>
我期待閱讀的所有元素,而不僅僅是基本元素,不知道如何繼續。謝謝您的幫助。
用戶按標籤瀏覽,而不按標題瀏覽。在標題中重複使用主標籤'[java]'是不必要的,它只會混淆整個[Java列表問題](http://stackoverflow.com/questions/tagged/java)。 – BalusC
感謝您的更正! – rgamber