【发布时间】:2019-09-24 21:48:26
【问题描述】:
主要目的:我有一个给定的 XML 文件和 Excel 中的客户名称列表。我想创建一个 XML 映射,所以我可以用它生成一个新的 XML 文件。
我的问题:Excel 不会映射整个列表(列),而只是映射一个单元格。
这是我的 XML 文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Profiles xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:///C:/Users/baj426/Documents/Altova/XMLSpy2018/Examples/test.xsd">
<Profile CompanyId="" Duns="">
<Tab name="Tab_Address" label="Address">
<Group Name="Group_IDs">
<Field Value="true" Name="Field_IDs_SIM_Strategic"/>
</Group>
</Tab>
</Profile>
</Profiles>
这是我由 XMLSPy 生成的 XML-Schema:
<?xml version="1.0" encoding="UTF-8"?>
<!-- W3C Schema generated by XMLSpy v2018 rel. 2 (x64) (http://www.altova.com) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Tab">
<xs:complexType>
<xs:sequence>
<xs:element ref="Group"/>
</xs:sequence>
<xs:attribute name="name" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Tab_Address"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="label" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Address"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Field">
<xs:complexType>
<xs:attribute name="Value" use="required" type="xs:boolean"/>
<xs:attribute name="Name" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Field_IDs_SIM_Strategic"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Group">
<xs:complexType>
<xs:sequence>
<xs:element ref="Field"/>
</xs:sequence>
<xs:attribute name="Name" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Group_IDs"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Profile">
<xs:complexType>
<xs:sequence>
<xs:element ref="Tab"/>
</xs:sequence>
<xs:attribute name="CompanyId" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Duns" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Profiles">
<xs:complexType>
<xs:sequence>
<xs:element ref="Profile"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
这是我想要的示例代码:
这是示例 XSD:
<?xml version="1.0" encoding="UTF-8"?>
<shiporder orderid="889923"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="shiporder.xsd">
<orderperson>John Smith</orderperson>
<shipto>
<name>Ola Nordmann</name>
<address>Langgt 23</address>
<city>4000 Stavanger</city>
<country>Norway</country>
</shipto>
<item>
<title>Empire Burlesque</title>
<note>Special Edition</note>
<quantity>1</quantity>
<price>10.90</price>
</item>
<item>
<title>Hide your heart</title>
<quantity>1</quantity>
<price>9.90</price>
</item>
</shiporder>
使用 Excel 中的某些值映射后的 XML 文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<shiporder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<item>
<quantity>1</quantity>
<price>120</price>
</item>
<item>
<quantity>2</quantity>
<price>120</price>
</item>
<item>
<quantity>3</quantity>
<price>120</price>
</item>
<item>
<quantity>4</quantity>
<price>120</price>
</item>
<item>
<quantity>5</quantity>
<price>120</price>
</item>
<item>
<quantity>6</quantity>
<price>120</price>
</item>
<item>
<quantity>7</quantity>
<price>120</price>
</item>
<item>
<quantity>8</quantity>
<price>120</price>
</item>
</shiporder>
【问题讨论】: