Как получить значение по умолчанию из XmlSchema - PullRequest
1 голос
/ 07 июня 2011

Я работаю с объектом 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>

Я постараюсь быть более точным:

  1. У меня есть три текстовых поля: txtFirst, txtLast и txtAge.
  2. У меня есть объект данных с тремя свойствами. Первый, последний и возраст.
  3. Текстовые поля привязаны к объекту данных, который инициализируется на основе файла XML, поэтому, когда нет значения для «возраста», я хочу получить его из схемы

1 Ответ

0 голосов
/ 10 июня 2011

Существует пример кода для обхода объекта XmlSchema в MSDN: Обход схем XML .

Таким образом, вы можете прочитать значение атрибута default данных элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...