我试图将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无效。