从Excel导出XML删除到xsd模式文件的链接

时间:2019-07-11 16:52:05

标签: excel xml xsd xsd-validation export-to-xml

我试图将XML数据(链接到架构)导入Excel,然后将无效数据添加到Excel文件中,将其导出,并验证导出数据时Excel是否给出错误。

我尝试检查“根据XML验证导出”按钮。它显示带有错误的警告,但仍允许我导出。每当我导出无效数据时,原始XML中的架构引用都会被删除。如何防止这两件事发生?

这是我的XML文件。基本上,一个学生只能获得A,B或C的成绩。

<?xml version="1.0" encoding="UTF-8"?>

<grades xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd">
    <student sname = "John Smith">
        <grade>C</grade>
    </student>
    <student sname = "Kelly Jones">
        <grade>A</grade>
    </student>
</grades>

这是我的架构文件,用于限制学生成绩的值。

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:element name = "grades">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="student" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="grade">
                                <xs:simpleType>
                                    <xs:restriction base = "xs:string">
                                        <xs:enumeration value = "A"/>
                                        <xs:enumeration value = "B"/>
                                        <xs:enumeration value = "C"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute name="sname" type="xs:string" use="required" />
                    </xs:complexType>

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


</xs:schema>

当我将其导入到Excel(使用“开发人员”选项卡)并将Kelly的等级更改为D,然后将其导出时,它不会引发任何错误,并且所创建的新XML文件没有对该架构的引用-xsi:noNamespaceSchemaLocation =“ schema.xsd” –在其中。有没有办法来解决这个问题?我希望这里有参考,以便我的架构可以向我大喊XML无效。

0 个答案:

没有答案