2011-01-11 91 views
0

我有一個xsd和一個MS-Excel電子表格。 Excel工作表包含xpath的所有元素/字段的表示以及xsd中指定的相應數據類型。java-excel表格內容的xml代碼

例如,如果XSD包含一個元件,如下所示:

<xsd:complexType name="person"> 
    <xsd:all> 
    <xsd:element name="name" type="xsd:string" minOccurs="0"/> 
    <xsd:element name="age" type="xsd:string" minOccurs="0"/> 
    </xsd:all> 
</xsd:complexType> 

Excel表單內容如下:

Column 2 (element/field name)  Column 3 (data type) 
person.name       String 
person.age       String 

我有一個要求,以檢查是否excel工作表的內容是有效和完整。 因此,我想從MS-Excel電子表格生成xml文件並驗證它是否與現有的xsd相同。

要求詳情如下:

  1. 閱讀MS-Excel電子表格的第二列和第三列的內容。
  2. 忽略其內容不包含點分隔
  3. 生成XML
  4. 驗證它aganist用戶指定的XSD

這又如何在Java程序中完成的行?

回答

1

有幾個Java庫可以讀取Excel文檔,包括jxlJExcel。 (您也可以考慮使用一個CSV文件(逗號分隔值),這比Excel的簡單,而不是專有的。)

爲了解析XSD文件,使用Java的built-in XML parser,就像這樣:

DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder domBuilder = domFactory.newDocumentBuilder(); 
Document doc = domBuilder.parse(new FileInputStream("file.xsd")); 
0

你可以使用XInclude將值插入到文檔中。這裏有一個例子:Default support for xinclude in Java 6?

您將需要編寫自己的實體解析器,然後可以讀取Excel文件並在其中找到正確的值。我對jxl沒有任何經驗,但JExcel是一個用於處理Excel文件的可靠庫。