Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从excel工作表内容生成java-xml_Java_Xml_Excel - Fatal编程技术网

从excel工作表内容生成java-xml

从excel工作表内容生成java-xml,java,xml,excel,Java,Xml,Excel,我有一个xsd和一个MS Excel电子表格。excel工作表包含xsd的所有元素/字段的类似Xpath的表示,以及xsd中指定的相应数据类型 例如,如果xsd包含如下元素: <xsd:complexType name="person"> <xsd:all> <xsd:element name="name" type="xsd:string" minOccurs="0"/> <xsd:element name="age" type="xs

我有一个xsd和一个MS Excel电子表格。excel工作表包含xsd的所有元素/字段的类似Xpath的表示,以及xsd中指定的相应数据类型

例如,如果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>
Column 2 (element/field name)        Column 3 (data type)
person.name                          String
person.age                           String
我需要检查excel表格的内容是否有效和完整。 因此,我想从MS 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>
Column 2 (element/field name)        Column 3 (data type)
person.name                          String
person.age                           String
  • 阅读MS Excel电子表格第二列和第三列的内容
  • 忽略内容不包含点分隔符的行
  • 生成xml
  • 针对用户指定的xsd进行验证

  • 如何在java程序中实现这一点?

    有几个java库可以读取Excel文档,包括和。(您也可以考虑使用CSV文件(逗号分隔值),这比Excel更简单,而不是专有的。)

    要解析XSD文件,请使用Java,如下所示:

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

    您可以使用XInclude将值插入到文档中。这里有一个例子:

    您需要编写自己的实体解析器,然后它可以读取Excel文件并在那里找到正确的值。我对jxl没有任何经验,但JExcel是一个处理Excel文件的可靠库。

    如果您安装了Informatica DT,如何?您可以通过java生成脚本,并使用java在命令行上执行它