基于XSD动态地将数据解析为XML

时间:2014-06-30 10:29:05

标签: java xml-parsing xsd

我正在尝试构建一个Excel插件,它能够从excel电子表格中读取数据,并以一致的方式自动将数据解析为XML文件。我有一个非常简单的例子(它没有包含良好的XSD设计)但是我的目的是找到一个可以用来编组这个信息的工具。 本质上,excel用户可以自定义列名,以填充有关XSD定义中定义的任何元素的信息。

  • 电子表格指定根据列A3的根元素名称。
  • 并且应该期望根据字段B1:F1
  • 指定的根元素元素
  • 每个元素都有一个由字段B2:F2
  • 指定的属性
  • 属性的值以绿色显示

enter image description here

是否可以根据定义的xsd动态编组xml?我正在寻找可以处理这个问题的任何java解析器?

示例xsd类似于:

    <?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="qualified"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="Person">
        <xs:sequence>
            <xs:element name="PN"
                        minOccurs="0"
                        maxOccurs="unbounded">
                <xs:complexType>
                    <xs:attribute name="Name"
                                  type="xs:string" />
                </xs:complexType>
            </xs:element>
            <xs:element name="PF"
                        minOccurs="0"
                        maxOccurs="unbounded">
                <xs:complexType>
                    <xs:attribute name="Phone"
                                  type="xs:string" />
                </xs:complexType>
            </xs:element>
            <xs:element name="PA"
                        minOccurs="0"
                        maxOccurs="unbounded">
                <xs:complexType>
                    <xs:attribute name="Address"
                                  type="xs:string" />
                </xs:complexType>
            </xs:element>
            <xs:element name="PO"
                        minOccurs="0"
                        maxOccurs="unbounded">
                <xs:complexType>
                    <xs:attribute name="Order"
                                  type="xs:int" />
                    <xs:attribute name="OrderDate"
                                  type="xs:date" />
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

0 个答案:

没有答案