在 Microsoft Excel 2013 中打开 XML+XSD 文件

在 Microsoft Excel 2013 中打开 XML+XSD 文件

我发现 Excel 2013 支持打开、编辑和保存 XML 文件。我创建了一个 XML 文件 + XSD,Excel 打开时没有任何问题和错误。(即它没有声明必须从 XML 数据源创建架构)

但是,Excel 仍然不遵守 .XSD 文件中设置的限制。有什么方法可以让 Excel 做到这一点吗?(我知道 Excel 不是 XML 编辑器,所以如果这不可能,我完全接受。)

文件数据.xsd

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.com" elementFormDefault="qualified">


<xs:element name="data">
<xs:complexType>
<xs:sequence>


<xs:element name="item" minOccurs="0" maxOccurs="unbounded">
  <xs:complexType>
    <xs:all>

      <xs:element name="title" type="xs:string" minOccurs="0" maxOccurs="1">
      </xs:element>

      <xs:element name="type" minOccurs="0" maxOccurs="1">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="header"/>
            <xs:enumeration value="normal"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>

      <xs:element name="backgroundcolor" minOccurs="0" maxOccurs="1">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:pattern value="#[0-9A-Fa-f]+"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>

      <xs:element name="fontcolor" minOccurs="0" maxOccurs="1">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:pattern value="#[0-9A-Fa-f]+"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>


    </xs:all>
  </xs:complexType>
</xs:element>


</xs:sequence>
</xs:complexType>
</xs:element>


</xs:schema>

文件测试文件

<?xml version="1.0" encoding="UTF-8"?>
<j:data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://example.com data.xsd" xmlns:j="http://example.com">

        <j:item>
        <j:title>test title</j:title>
        <j:backgroundcolor>#aaf8941e</j:backgroundcolor>
        <j:fontcolor>#ffffff</j:fontcolor>
        <j:type>header</j:type>
        </j:item>

</j:data>

答案1

首先,Excel 不支持某些 XSD 数据类型属性。您可以查看完整列表这里

为了让 Excel 正确地将您的 XSD 与其对应的 XML 关联起来,您必须创建一个 XML 映射,然后精心映射所有 XML 元素,如详细说明这里

老实说,我建议您使用合适的 XML 编辑器,以免麻烦。:)

相关内容