powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Схема-XSD. С чего начать?
15 сообщений из 15, страница 1 из 1
Схема-XSD. С чего начать?
    #36790783
Альтаир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Раньше работала только с xslt, теперь понадобилось проверить валидность xml-файла, необходимо воспользоваться схемой xsd. Что для этого нужно?
Если раньше для визуализации xml необходимо было добавить в xml строку, связывающую xml с xslt. А как работать с xsd? Я так понимаю, что нужен xsd- редактор или без него можно обойтись? В общем, с чего начать изучение данной темы? Ссылки на литературу и советы приветствуются :)
...
Рейтинг: 0 / 0
Схема-XSD. С чего начать?
    #36791147
Фотография Anton_Demin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Альтаир,

http://lmgtfy.com/?q=xsd
...
Рейтинг: 0 / 0
Схема-XSD. С чего начать?
    #36791616
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Альтаирпонадобилось проверить валидность xml-файла, необходимо воспользоваться схемой xsd. Что для этого нужно?Все банально - нужна XSD схема и валидатор
АльтаирЕсли раньше для визуализации xml необходимо было добавить в xml строку, связывающую xml с xslt. А как работать с xsd?Все зависит от того умеет ли Ваш просмотрщик валидировать в XSD схеме. Если да, то нужно в корневой элемент XML-документа добавить атрибут schemaLocation или noNamespaceSchemaLocation в пространстве имени
Код: plaintext
http://www.w3.org/ 2001 /XMLSchema-instance
Если же не умеет и Вы будете валидировать вручную, то все равно присутствует ссылка на схему или нет
АльтаирЯ так понимаю, что нужен xsd- редактор или без него можно обойтись?Учитывая тот факт, что XSD-схема является XML документом, то подойдет любой XML-редактор. Лично я пользуюсь Oxygen, у него удобный Code completion для XSD и XSL, и, кроме того, в наличии имеется валидатор и XSLT отладчик
АльтаирСсылки на литературу и советы приветствуются :)Все банально - W3School и/или MSDN. Больше ничего не нужно
...
Рейтинг: 0 / 0
Схема-XSD. С чего начать?
    #36791677
Альтаир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы, всё более менее прояснилось, создала xsd-схему, скачала кучу валидаторов (XmlValidator-3.0.0.0). С этим всё пока ясно. А возможно ли обойтись без валидатора, то есть сделать это вручную, например для приложения, написанного на С++ или С#, существуют ли стандартные процедуры?
...
Рейтинг: 0 / 0
Схема-XSD. С чего начать?
    #36791699
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно. Для этого есть куча библиотек. Я работаю с MSXML. Для .net используют System.Xml. Еще, из популярных, есть libxml (но как у нее с поддержкой XSD не знаю)
...
Рейтинг: 0 / 0
Схема-XSD. С чего начать?
    #36793816
Альтаир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделала следующим образом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
using System;
using System.Xml;
using System.Xml.Schema;
using System.IO;

public class Sample
{

    public static void Main()
    {
        using (TextReader xmlSchema = new StringReader(AppDomain.CurrentDomain.BaseDirectory+"Shema.xsd"))
        {
            using (XmlReader schemaReader = XmlReader.Create(xmlSchema))
            {
                // Create the XmlSchemaSet class.
                XmlSchemaSet sc = new XmlSchemaSet();

                // Add the schema to the collection.
                sc.Add("", schemaReader);

                // Set the validation settings.
                XmlReaderSettings settings = new XmlReaderSettings();
                settings.ValidationType = ValidationType.Schema;
                settings.Schemas = sc;
                settings.ValidationType = ValidationType.Schema; 
                settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);

                using (TextReader xmlText = new StringReader(AppDomain.CurrentDomain.BaseDirectory + "1.xml"))
                {
                    // Create the XmlReader object.
                    using (XmlReader reader = XmlReader.Create(xmlText, settings))
                    {
                        // Parse the file. 
                        while (reader.Read()) ;
                    }
                }
            }
        }
    }

    // Display any validation errors.
    private static void ValidationCallBack(object sender, ValidationEventArgs e)
    {
        Console.WriteLine("Validation Error: {0}", e.Message);
    }
}

Но возникла ошибка:
An unhandled exception of type 'System.Xml.XmlException' occurred in System.Xml.dll

Additional information: Недопустимые данные на корневом уровне. Строка 1, позиция 1.
...
Рейтинг: 0 / 0
Схема-XSD. С чего начать?
    #36793961
Альтаир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В sc.Add какая-то проблема :(
...
Рейтинг: 0 / 0
Схема-XSD. С чего начать?
    #36794499
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тынц . Пространство имен он хочет. Без пространства имен никак. Указывать нужно то, которое объявлено в атрибуте targetNamespace схемы
...
Рейтинг: 0 / 0
Схема-XSD. С чего начать?
    #36794733
Альтаир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Атрибут targetNamespace у меня отсутствует.
xml-файл:
Код: plaintext
1.
2.
3.
4.
<?xml version="1.0" encoding="windows-1251"?>
<?FORM version="0.1"?>
<REPORT>
    ...
</REPORT>

xsd-файл:
Код: plaintext
1.
2.
3.
4.
5.
6.
<?xml version="1.0" encoding="windows-1251"?>
<?FORM version="0.1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">  
    <xsd:element name="REPORT" type="ReportType"/>
    ...
</xsd:schema>
Пробовала:
sc.Add("", schemaReader);
так:
sc.Add(null, schemaReader);
Также писала пространство имен и в процедуре и в схеме. Та же ошибка
...
Рейтинг: 0 / 0
Схема-XSD. С чего начать?
    #36794810
Альтаир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Причем если пользоваться стандартным валидатором, то Validation succesfully. То есть xml и xsd валидные.
...
Рейтинг: 0 / 0
Схема-XSD. С чего начать?
    #36796689
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Альтаир
Код: plaintext
1.
2.
3.
4.
5.
6.
<?xml version="1.0" encoding="windows-1251"?>
===><?FORM version="0.1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">  
    <xsd:element name="REPORT" type="ReportType"/>
    ...
</xsd:schema>
Это, что такое? Попробуйте убрать.
...
Рейтинг: 0 / 0
Схема-XSD. С чего начать?
    #36796691
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Альтаир
Код: plaintext
1.
2.
3.
4.
5.
6.
<?xml version="1.0" encoding="windows-1251"?>
<?FORM version="0.1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">  
    <xsd:element name="REPORT" type="ReportType"/>
    ...
</xsd:schema>
Это, что такое? Попробуйте убрать.
...
Рейтинг: 0 / 0
Схема-XSD. С чего начать?
    #36796695
Альтаир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Структура xml фиксированная, убрать не могу. Но если всё же убрать - та же самая ошибка. Раз стандартный валидатор ошибок не показал, то видимо ошибка не в файлах, а в программе.
...
Рейтинг: 0 / 0
Схема-XSD. С чего начать?
    #36796702
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не силен я в .net. Пробуйте валидатором в аттаче. Что он скажет?
...
Рейтинг: 0 / 0
Схема-XSD. С чего начать?
    #36796972
Альтаир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, не понадобилось. Заработало, когда написала так:
Код: plaintext
 sc.Add(null, AppDomain.CurrentDomain.BaseDirectory + "Shema.xsd");
и
Код: plaintext
1.
XmlReader reader = XmlReader.Create(AppDomain.CurrentDomain.BaseDirectory + "1.xml", settings))
                 
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Схема-XSD. С чего начать?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]