2010-12-19 90 views
8

我懷疑是否有像這樣的東西,但我想問:
有誰知道Java中是否有一個庫讀取xsd文件並「創建」定義的元素,例如以字符串格式在代碼中使用?
例如閱讀下面的模式:Java/XSD解析

<?xml version="1.0" encoding="utf-8"?> 
     <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
      <xs:element name="Address"> 
      <xs:complexType> 
       <xs:sequence> 
        <xs:element name="Street" type="xs:string" /> 
        <xs:element name="Town" type="xs:string" /> 
        <xs:element name="Country" type="xs:string" minOccurs="0" /> 
       </xs:element> 
       </xs:sequence> 
      </xs:complexType> 
      </xs:element> 
     </xs:schema> 

而且具有以下格式的字符串:

<Address> 
    <Street></Street> 
    <Town></Town> 
    <Country></Country> 
</Address> 

自動工具做類似的事情,即解析WSDL和類型部分創建例如JAXB類,可以是模式中定義的元素的實例。
有沒有圖書館來做到這一點?

UPDATE:
例如在Eclipse創建與用戶所需的所有元素的Web應用程序它提出了一個樹表中的XML描述符時,根據模式練習I.他們是如何做到的呢?我想他們解析包含在罐子裏的xsds
任何輸入都是非常受歡迎的。
謝謝!

+0

不JAXB做這樣的事情嗎?或者我誤解了這個問題? – 2010-12-19 19:09:36

+0

@Hovercraft:我不想創建任何類。我只想讀取一個xsd文件並創建一個定義的元素的字符串。我想它與創建jaxb類的方法類似 – Cratylus 2010-12-19 19:13:11

+1

我看不出爲什麼會有這樣的東西存在?有什麼要求?爲0到多元素生成多少個空元素?另外,輸出不能捕獲類型是否重要? – Synesso 2010-12-19 19:13:30

回答

1

如果您想要生成Java類的WSDL文件,則可以使用Axis WSDL2Java(基於JAXB)基於WSDL中定義的模式獲取類。

JAXB還提供了可能需要查找的綁定框架。

http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/twbs_jaxbschema2java.html

上面的鏈接應該是有用的。

+0

我不想生成類。是的,我知道這些框架。我只對從xsd創建元素感興趣。 – Cratylus 2010-12-19 19:24:03

+0

哦對不起!!!是的,我的回答是沒有用的 – Fazal 2010-12-20 18:12:56

1

oXygen has an XML instance generator可以基於給定的XML模式生成一組XML文檔樣本。

You can also invoke it from the commandline

+0

這可以在運行時使用嗎?我對僅從xsd生成樣本的工具不感興趣。我有興趣在運行時使用它提供的任何xsd – Cratylus 2010-12-20 07:53:16

+0

是的,你可以。既可以使用提供的命令行腳本,也可以使用腳本作爲指導(oXygen是基於Java的工具)來設置適當的類路徑引用等。然後在運行時給它一個XSD的URI來創建文件。 – 2010-12-20 12:54:19