我怎样才能将这种types的Excel XLS工作表转换为正确的XML?

我正在设置一个Schema文件,以便与Excel XML Mapping一起使用。 我想要完成的是在我的电子表格中获取每一行,并使其输出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工作表的第一行中创build一个主元素标记,然后在下面的行中放入子元素。 我想要这个格式,我正在使用的一个程序(Fantasy Grounds 2)接受XML格式的模块化插件,并且需要这样的唯一命名的元素,包含子元素。

请记住 – 我完全不熟悉XML。 也许我不能这样做。 在过去的3个小时里,我能够拿起的是…

  1. 在Excel中,单击“开发人员”选项卡。
  2. 定义一个XML映射源
  3. 将其指向XSD

我已经创build了一个模式文件,你可以在下面看到使用XMLSpy – 但是,我遇到的问题是,下面的架构把所有的标签放在这样的标签:

 <xml_tag> <Name>aasimar</Name> <XP>Aasimar</XP> <CR>Aasimar</CR> <Init>Aasimar</Init> </xml_tag> 

有没有办法做我想要的? 如果我尝试在“XML_Tag”元素中放入一个“type =”xs:string“”声明,我得到一个错误('type'属性和一个匿名types定义对元素声明'xml_tag'是互斥的。 – 我不知道如何使元素成为“dynamicvariables”(可能是错误的术语),而不是相同的静态标签。

 <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>