Я работаю с объектом XmlSchema, который был инициализирован с файлом XSD.
Файл XSD содержит некоторые правила проверки (тип, мин, макс и т. Д.), А некоторые элементы имеют атрибут значения по умолчанию.
Вот краткий пример:
1. XML-файл:
<person>
<first>john</first>
<last>doe</last>
<age>50</age>
</person>
XML загружается в объект XmlDocument.
2. Файл XSD:
<?xml version="1.0" encoding="iso-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="person" >
<xs:complexType>
<xs:all>
<xs:element name ="first" type="xs:string" minOccurs="0"/>
<xs:element name ="last" type="xs:string" minOccurs="0"/>
<xs:element name ="age" type="xs:integer" minOccurs="0" default="30"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
XSD загружается в объект XmlSchema.
3. Я хочу получить значение по умолчанию для возраста без выполнения проверки и регулярного анализа XML, и, если мне нужно выполнить проверку, как я могу получить значение, если узел был успешно проверен (обработчик проверки не вызывается при успешном выполнении)?
Я попытался получить значения с помощью IXmlSchemaInfo.SchemaElement
, но после проверки все равно нулю.
ОК, некоторые уточнения:
Значение по умолчанию означает значение по умолчанию, когда пользователь не назначил элемент age. XML мог бы быть:
<person>
<first>john</first>
<last>doe</last>
<age></age>
</person>
Я постараюсь быть более точным:
- У меня есть три текстовых поля: txtFirst, txtLast и txtAge.
- У меня есть объект данных с тремя свойствами. Первый, последний и возраст.
- Текстовые поля привязаны к объекту данных, который инициализируется на основе файла XML, поэтому, когда нет значения для «возраста», я хочу получить его из схемы