Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XMLScheme, Как это все работает? 
:(
    Опции темы
Wiz
Дата 15.10.2005, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 27.2.2005

Репутация: нет
Всего: нет



Никак не могу понять как работать с XMLScheme в .NET. Я создал небольшой XML-файл
Код
 <?xml version="1.0" encoding="utf-16" ?> 
- <Clients>
  <Client Name="" So-Name="" Address="" PhoneNum="www" /> 
  </Clients>


И построил для него такую схему
Код
 <?xml version="1.0" ?> 
- <xs:schema id="Clients" xmlns:mstns="http://tempuri.org/Base.xsd" xmlns="http://tempuri.org/Base.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
  <xs:element name="Clients" msdata:IsDataSet="true" msdata:Locale="ru-RU" msdata:EnforceConstraints="False">
     <xs:complexType>
        <xs:choice maxOccurs="unbounded">
            <xs:element name="Client">
                <xs:complexType>
                           <xs:attribute name="Name" form="unqualified" type="xs:string" use="required" /> 
                           <xs:attribute name="So-Name" form="unqualified" type="xs:string" use="required" /> 
                           <xs:attribute name="Address" form="unqualified" type="xs:string" use="required" /> 
                          <xs:attribute name="PhoneNum" form="unqualified" type="xs:string" use="required" /> 
                 </xs:complexType>
              </xs:element>
          </xs:choice>
       </xs:complexType>
  </xs:element>
  </xs:schema>


Код чтения данного xml-файла на С#
Код
if (ofdSchema.ShowDialog() != DialogResult.OK)
                return;

            string schema = ofdSchema.FileName;
        
            XmlTextReader reader = new XmlTextReader("Base.xml");
            reader.WhitespaceHandling = WhitespaceHandling.None; 

            XmlValidatingReader readerVal = new XmlValidatingReader(reader);
            readerVal.Schemas.Add("",schema);
            readerVal.ValidationType = ValidationType.Schema;
            readerVal.ValidationEventHandler += new ValidationEventHandler(ValidationEventHandl);


            XmlSchema myschema = XmlSchema.Read(reader, new        ValidationEventHandler(ValidationEventHandl));


            while (readerVal.Read())
                if (readerVal.NodeType == XmlNodeType.Element)
                    if (readerVal.Name == "Client")
                    {
                        MessageBox.Show(readerVal.GetAttribute("So-Name")+' '+readerVal.GetAttribute("Name")+". "+
                            readerVal.GetAttribute("Address")+", "+readerVal.GetAttribute("PhoneNum"));
                    }


По идее, программа должна выдать ошибку, так как я пометил все поля обязательные для заполнения, а в файле только одно из четырех полей заполнено. Но все работает нормально. Что я не так делаю?
PM MAIL   Вверх
Mad
Дата 15.10.2005, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: нет
Всего: 19



Цитата(Wiz @ 15.10.2005, 13:29)
<Client Name="" So-Name="" Address="" PhoneNum="www" />

тут у тебя все поля заполнены, просто 3 из них заполнены пустыми строками smile
вот если ты их полностью убереш, тогда вылетит ошибка


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0646 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.