Разрешить xml: space= "сохранить" в XSD для проверки
Я пытаюсь проверить xml-файл со схемой, которую я написал, но его ошибка со строкой:
Element 'Route', attribute '{http://www.w3.org/XML/1998/namespace}space': The attribute '{http://www.w3.org/XML/1998/namespace}space' is not allowed.
XML-файл иногда содержит следующее:
<Route xml:space="preserve">
</Route>
Что, очевидно, вызывает проблему, что я могу сделать с моим xsd-файлом, чтобы разрешить это?
Вот мой XSD со всеми несущественными удаленными
<?xml version="1.0" standalone="yes"?>
<xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet">
<xs:element name="Route" type="xs:string" minOccurs="0" />
<xs:element name="FurtherRequirements" type="xs:string" minOccurs="0" />
И т. д. и т.д.
Вся помощь с благодарностью принята!
1 ответ:
Вы должны изменить
Route
с бытия типаxs:string
на бытие типаstring-with-xml-space
, гдеstring-with-xml-space
- сложный тип с простым содержанием, определяемый примерно так:<xs:complexType name="string-with-xml-space"> <xs:complexContent> <xs:extension base="xs:string"> <xs:attribute ref="xml:space"/>
Вам также понадобится
xs:import
Схема для пространства имен XML:<xs:import namespace='http://www.w3.org/XML/1998/namespace' schemaLocation='http://www.w3.org/2001/xml.xsd'/>