MapForce を使用して、2 つの 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 を取得する方法がわかりません。
誰かが私を少し助けてくれますか?