1

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時間で拾えたのは…

  1. Excel で、[開発] タブをクリックします。
  2. XML マップ ソースの定義
  3. 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>
4

0 に答える 0