Экспорт XML из Excel удаляет ссылку на файл схемы xsd - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь импортировать данные 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 (используя вкладку «Разработчик»), изменяю оценку Келли на D, а затем экспортирую, он не выдает ошибки, и новый созданный XML-файл не имеет ссылки на схему - xsi:noNamespaceSchemaLocation = "schema.xsd" - в нем.Есть ли способ это исправить?Я хотел бы, чтобы ссылка была там, чтобы моя схема могла кричать мне, что XML недействителен.

...