我正在尝试使用 MapForce 将两个 csv 文件的组合数据映射到 XML。
这是我的输入:
Page;Project;Index
PageA;ProjectA;3
PageB;ProjectA;5
PageC;ProjectB;7
和
Subpage;Page;File
Subpage1;PageA;1.jpg
Subpage2;PageA;2.jpg
Subpage3;PageC;3.jpg
MapForce 根据我想要的输出示例创建了一个 XSD:
XML:
<Pages>
<Page Title="PageA">
<Template Name="PageTemplate">
<Field Name="Context">ProjectA</Field>
<Field Name="Index">3</Field>
</Template>
<Template Name="ShowSubpagesTemplate">
</Template>
<Template Name="SubpageTemplate">
<Field Name="Subpage">Subpage1</Field>
<Field Name="File">1.jpg</Field>
</Template>
<Template Name="SubpageTemplate">
<Field Name="Subpage">Subpage2</Field>
<Field Name="File">2.jpg</Field>
</Template>
</Page>
<Page Title="PageB">
<Template Name="PageTemplate">
<Field Name="Context">ProjectA</Field>
<Field Name="Index">5</Field>
</Template>
<Template Name="ShowSubpagesTemplate">
</Template>
</Page>
<Page Title="PageC">
<Template Name="PageTemplate">
<Field Name="Context">ProjectB</Field>
<Field Name="Index">7</Field>
</Template>
<Template Name="ShowSubpagesTemplate">
</Template>
<Template Name="SubpageTemplate">
<Field Name="Subpage">Subpage3</Field>
<Field Name="File">3.jpg</Field>
</Template>
</Page>
</Pages>
XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Pages">
<xs:complexType>
<xs:sequence>
<xs:element name="Page" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Template" maxOccurs="unbounded">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="Field" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Name" use="required" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Name" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Title" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
这个 XSD 是否正确,我如何映射数据?
到目前为止我有这个:
结果:
<Pages>
<Page Title="PageA">
<Template Name="PageTemplate">
<Field Name="ProjectA"/>
</Template>
</Page>
<Page Title="PageB">
<Template>
<Field Name="ProjectA"/>
</Template>
</Page>
<Page Title="PageC">
<Template Name="PageTemplate">
<Field Name="ProjectB"/>
</Template>
</Page>
</Pages>
好吧,这是一个开始,但我不知道如何获得所需的 XML。
有人可以帮我一下吗?