У меня есть следующая схема Xml.Показать список возможных допустимых значений элемента xml
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="type">
<xs:restriction base="xs:string">
<xs:enumeration value="Type 1" />
<xs:enumeration value="Type 2" />
<xs:enumeration value="Type 3" />
</xs:restriction>
</xs:simpleType>
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element name="Element_1">
<xs:complexType>
<xs:sequence>
<xs:element name="TypeName" type="type" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Element_2">
<xs:complexType>
<xs:sequence>
<xs:element name="TypeName" type="type" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Я проверка следующий XML против приведенной выше схеме.
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Element_1>
<TypeName>Type 4</TypeName>
</Element_1>
<Element_3>
<TypeName>Type 2</TypeName>
</Element_3>
</Root>
Я ожидаю ошибку проверки, и я получаю один: Элемент «TYPENAME» недействительно - Значение «Тип 4» является недействительным в соответствии с его типом данных «типа» - Перечисление ограничений не удалось. Элемент 'Root' имеет недопустимый дочерний элемент 'Element_3'. Ожидается список возможных элементов: «Element_2».
В сообщении об ошибке четко отображаются недопустимые элементы (Element_3), а также отображается список возможных допустимых элементов (Element_2). Можно ли отобразить действительный список 'TypeName'.
Теперь я хочу получить сообщение об ошибке, подобное приведенному ниже: Элемент 'TypeName' недействителен. Значение 'Тип 4' недопустимо в соответствии с типом его типа. Список ожидаемых значений: «Тип 1, тип 2» - Ошибка перечисления. Элемент 'Root' имеет недопустимый дочерний элемент 'Element_3'. Ожидается список возможных элементов: «Element_2».
Возможно ли получить выше сообщение об ошибке (или подобное). Имеются ли какие-либо другие ограничения, кроме Xs: перечисление, все допустимые значения?
Какую цепочку инструментов XML/XSD вы используете? (Нет стандартов, которые перечисляют, как сообщаются ошибки проверки, каждый инструмент имеет свой собственный путь.) – Richard
Если я правильно понял, вы спрашиваете, какой инструмент я использую. Я использую Visual Studio 2012. – lerner1225
IIRC VS имеет возможности редактирования XML и XSLT, но сам по себе не является XSD-валидатором. ISTR использует поддержку .NET XSD, которая не дает вам контроля над выводами сообщений об ошибках. Вы можете использовать типы в ['System.Xml.Schema'] (http://msdn.microsoft.com/en-us/library/system.xml.schema%28v=vs.110%29.aspx), но я не уверен, что они достаточно подробны, чтобы получить возможные значения, заданные целевым элементом. Мне было бы интересно узнать, как вы поживаете ... – Richard