Excel XML マッピングで使用するスキーマ ファイルをセットアップしようとしています。私が達成したいのは、スプレッドシートの各行を取得して、次のように XML を出力することです。
Excel の行:
XML_Name | Initiative | HitPoints
ad_wasp 5 42
hob_goblin 7 22
必要な XML 出力:
<entities>
<ad_wasp>
<initiative>5</initiative>
<hitpoints>42</hitpoints>
</ad_wasp>
<hob_gob>
<initiative>7</initiative>
<hitpoints>22</hitpoints>
</hob_gob>
</entities>
つまり、Excel シートの最初の行をメイン要素タグにし、その下に次の行をサブ要素として配置したいと考えています。私が使用しているプログラム (Fantasy Grounds 2) は XML 形式のモジュラー アドオンを受け入れ、サブ要素を囲む、このような一意の名前の要素を必要とするため、この形式でそれが必要です。
心に留めておいてください-私はXMLにまったく慣れていません。多分私はこれを行うことができません。この3時間で拾えたのは…
- Excel で、[開発] タブをクリックします。
- XML マップ ソースの定義
- XSDに向ける
以下に示すように、XMLSpy を使用してスキーマ ファイルを作成しました。
<xml_tag>
<Name>aasimar</Name>
<XP>Aasimar</XP>
<CR>Aasimar</CR>
<Init>Aasimar</Init>
</xml_tag>
私がやりたいことをする方法はありますか?「type="xs:string"」宣言を「XML_Tag」要素に入れようとすると、エラーが発生します (「type」属性と匿名型定義は、要素宣言「xml_tag」に対して相互に排他的です)。 - 同じ静的タグではなく、要素を「動的変数」にする方法がわかりません (おそらく使用する用語が間違っています)。
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Entities">
<xs:complexType>
<xs:sequence>
<xs:element name="xml_tag" form="unqualified" nillable="true" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element name="Name" type="xs:string" form="unqualified" nillable="true" minOccurs="0"/>
<xs:element name="XP" type="xs:integer" form="unqualified" nillable="true" minOccurs="0"/>
<xs:element name="CR" type="xs:integer" form="unqualified" nillable="true" minOccurs="0"/>
<xs:element name="Init" type="xs:integer" form="unqualified" nillable="true" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>