从MS Excel文件定义生成XSD文件

4

你好,我有一个 Excel 文件,其中包含字段名称和类型,就像下面的例子一样。

 ID : INT
 First_Name : String
 Last_Name : String
 Phone number : String

我想从我拥有的描述中生成一个XSD。

有这样的工具吗?

2个回答

3

注意:仅使用Excel没有解决方案。

这是在2013年提问时就已经成立的事实,而现在(截至我所知),仍然如此。

尽管本页面提供了外部工具的答案,但它们代表了目前互联网上唯一的解决方案,并且已被查看了13,000次。

如果您或您认识的任何人使用仅限Excel生成XSD的解决方案,请添加它,因为这显然会帮助许多人。


在代码中对类进行建模:

public class Something
{
    public int ID { get; set; }
    public string First_Name { get; set; }
    public string Last_Name { get; set; }
    public string Phone_number { get; set; }
}

将其保存为 .cs 文件,然后编译它。

然后使用 xsd.exe 生成 xsd:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Something" nillable="true" type="Something" />
  <xs:complexType name="Something">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="ID" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="First_Name" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Last_Name" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Phone_number" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>

这并没有回答问题,问题是关于使用Excel进行导出,而不是自定义代码。 - ivarec
@ivarec - 使用Excel没有解决方案。这在2013年提问时是正确的,而我所知道的现在仍然是如此。尽管这里提供的答案使用外部工具,但它们代表了目前互联网上唯一的解决方案,并且自那时以来已被查看了13,000次。如果您有一个新的只使用Excel生成XSD的解决方案,请务必在此处添加。 - tom redfern
但是像“Excel不支持此功能”这样的答案也很有用,而且实际上是正确的。请随意提供这个答案,我会点赞的:D - ivarec
1
@ivarec,感谢你的提议,但我会让我的回答凭借自身的价值存在,并且你可以根据自己的意愿进行投票。我并不完全确定 Excel 中是否没有支持此功能,否则我会自己添加这个答案。请随意研究这个主题并添加你的不支持的答案。 - tom redfern

2
  1. In notepad, write your new schema like this:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <data-set xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <record>
       <ID>12345</ID>
       <FirstName>First Name</FirstName>
       <LastName>Last Name</LastName>
       <PhoneNumber>555-555-5555</PhoneNumber>
     </record>
     <record>
       <ID>12346</ID>
       <FirstName>John</FirstName>
       <LastName>Doe</LastName>
       <PhoneNumber>555-555-5555</PhoneNumber>
     </record>
    </data-set>
    
  2. Save the file as schema.xml

  3. Open your excel file.
  4. On the Developer tab, open the XML Source task pane.
  5. To add an XML map, click XML Maps

输入图像描述

  1. 点击添加
  2. 选择schema.xml并点击两次“确定”
  3. 现在只需将树中的4个元素拖动(映射)到工作表上(第1行)。 图片显示了前两个元素。

输入图像描述

  1. 在开发人员选项卡下的XML组中,单击导出。
  2. 将文件保存为data-set.xml并按Enter键。

结果将如下所示:

输入图像描述


糟糕!感谢指出。我应该删除这篇帖子吗? - Automate This
不确定 - 就像我说的,这是一个很好的答案,也许会对提问者有所帮助。由你决定。 - tom redfern
这并没有回答问题。它是关于将模式导出而不是数据作为XML。 - ivarec

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接