Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как проверить XML на соответствие XSD  [new]
vdp
Member

Откуда:
Сообщений: 116
Добрый день,

есть ли возможность (кроме как написать расширенную процедуру) проверить XML на соответствие XSD ?

Задача: есть список XSD документов и список XML. Нужно узнать какому XSD соответствует каждый XML.

Сервер SQL 2005
2 дек 09, 13:04    [8007796]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6722
Откуда такая задача, если не секрет. Автоматизация?
2 дек 09, 14:07    [8008264]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
vdp
Member

Откуда:
Сообщений: 116
Она самая.
Так как ? Как я понимаю на SQL SERVER 2005 этого не сделать?
2 дек 09, 14:10    [8008286]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
Пробегающий
Guest
Возможность то есть, но лучше всё же через CLR процедуру, т.к. есть мелкие ньюансы, которые могут привести к появлению лишних костылей.
2 дек 09, 14:13    [8008309]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6722
vdp
Она самая.
А xml у вас своего формата?
2 дек 09, 14:27    [8008418]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
vdp
Member

Откуда:
Сообщений: 116
да
2 дек 09, 14:36    [8008489]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6722
Нафиг тогда вам XSD?

У "меня" также xml (топорно-минималистического формата) как основное средство закачки/выкачки (ещё есть TXT). Для каждой "стандартной" закачки своя табличка и она же является описанием для XSD файла (генерится автоматом).

Но опять таки, для "нестандартного" XML свой XSD, но это не повод разводить бардак. Имена файлов/каталогов, имена/коды закачки в системе.
Вашей задачей о поиске файла не пахнет никак!
2 дек 09, 14:53    [8008662]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
vdp
Member

Откуда:
Сообщений: 116
Mnior,

Дело в том что система рабочая. На данный момент принадлежность XML к XSD проверяется на уровне EXE приложения. Необходимо перенести в SQL.

Уже сделал через CLR. Но, хотелось бы без использования CLR.
3 дек 09, 11:55    [8012971]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6722
vdp
Уже сделал через CLR.
Зачем? Зачем EXE? Да и при чём здесь они. Этож закачка XML - чистые средства сиквела.

Наверно я вас совершенно неправильно понял.
3 дек 09, 14:24    [8014399]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
vdp
Member

Откуда:
Сообщений: 116
Скорей всего неправильно :)
3 дек 09, 14:32    [8014469]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
vdp
Member

Откуда:
Сообщений: 116
В системе зарегестрированы документы описанные с помощью XSD.
На входе в систему подаются файлы XML. В зависимости от того к какому XSD они относятся производятся те или иные действия (прописанные в XSD, XSL в том числе).
3 дек 09, 14:41    [8014551]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6722
Блин, я подумал про закачку (XmlBulkInsert) Может у вас надо запрограммировать конкретный процесс, а не их автоматизацию?

vdp
В системе зарегестрированы документы описанные с помощью XSD.
На входе в систему подаются файлы XML. В зависимости от того к какому XSD они относятся производятся те или иные действия (прописанные в XSD, XSL в том числе).
А что значит действия прописаны в XSD? В XSLT понимаю, а вот в XSD не очень.
Во вторых, можно узнать валиден ли конкретный XML конкретному XSD. Причём связывание XML и XSD первично, а не наоборот. И более того в XML можно указать каким XSD он обязан быть валиден.
Как это так - иметь сам XML и заранее (извне или прописано в нём) не знать кому валиден???
Тут прямое нарушение причинно-следственных связей.

Можно было рассказывать про XML схемы в сиквеле, но сама задача то идиотская.
И как у вас решается вопрос, если XML валиден нескольким XSD?

А проверка валидности схеме делается автоматом, как только присваивается значение переменной или во время вставки/изменении в таблице. Ну то есть когда преобразуется строка во внутренний формат сиквела.
3 дек 09, 21:52    [8016900]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
uncle_max
Member

Откуда:
Сообщений: 70
vdp
есть ли возможность (кроме как написать расширенную процедуру) проверить XML на соответствие XSD ?


В подобной ситуации я делал так - "https://www.sql.ru/forum/actualthread.aspx?tid=56767". Посмотрите, может, натолкнет на мысль
4 дек 09, 06:10    [8017405]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
uncle_max
Member

Откуда:
Сообщений: 70
uncle_max
"https://www.sql.ru/forum/actualthread.aspx?tid=56767"

оппс - циферку в линку потерял - "https://www.sql.ru/forum/actualthread.aspx?tid=567674"
4 дек 09, 06:13    [8017407]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
vdp
Member

Откуда:
Сообщений: 116
Mnior
Блин, я подумал про закачку (XmlBulkInsert) Может у вас надо запрограммировать конкретный процесс, а не их автоматизацию?

vdp
В системе зарегестрированы документы описанные с помощью XSD.
На входе в систему подаются файлы XML. В зависимости от того к какому XSD они относятся производятся те или иные действия (прописанные в XSD, XSL в том числе).
А что значит действия прописаны в XSD? В XSLT понимаю, а вот в XSD не очень.
Во вторых, можно узнать валиден ли конкретный XML конкретному XSD. Причём связывание XML и XSD первично, а не наоборот. И более того в XML можно указать каким XSD он обязан быть валиден.
Как это так - иметь сам XML и заранее (извне или прописано в нём) не знать кому валиден???
Тут прямое нарушение причинно-следственных связей.

Можно было рассказывать про XML схемы в сиквеле, но сама задача то идиотская.
И как у вас решается вопрос, если XML валиден нескольким XSD?

А проверка валидности схеме делается автоматом, как только присваивается значение переменной или во время вставки/изменении в таблице. Ну то есть когда преобразуется строка во внутренний формат сиквела.


Условно говоря в XSD прописаны "собственные скрипты" по обработке данных.

То что в XML есть ссылка на конкретный XSD не означает что он валиден. Поэтому необходимо проверить - в этом и стоит вопрос. Как проверить средствами SQL Server 2005 не используя расгиренных процедур.
4 дек 09, 10:31    [8018277]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
vdp
Member

Откуда:
Сообщений: 116
uncle_max
uncle_max
"https://www.sql.ru/forum/actualthread.aspx?tid=56767"

оппс - циферку в линку потерял - "https://www.sql.ru/forum/actualthread.aspx?tid=567674"


Спасибо, смотрел уже перед созданием темы - но это насколько понял не то.
4 дек 09, 10:32    [8018283]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6722
vdp
То что в XML есть ссылка на конкретный XSD не означает что он валиден.
Ясень пень. Но тогда нет никакой задачи поиска XSD, с которой вы начали тему!

vdp
Поэтому необходимо проверить - в этом и стоит вопрос.
Коль вы наконец определились с вопросом, повторюсь:
Валидность проверяется автоматически в рамках указанной (при декларации переменной/колонки) схемы и с некоторыми ограничениями.
Автоматически, при парсинге - т.к. внутреннее представление XML-я разное (оптимальное) для каждой схемы. Соответственно типизированные XML "работают лучше", чем не-типизированные.
4 дек 09, 21:31    [8022637]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
vdp
Member

Откуда:
Сообщений: 116
Mnior
vdp
То что в XML есть ссылка на конкретный XSD не означает что он валиден.
Ясень пень. Но тогда нет никакой задачи поиска XSD, с которой вы начали тему!

Я вроде в первом сообщение все прямо написал:
есть ли возможность (кроме как написать расширенную процедуру) проверить XML на соответствие XSD ?
7 дек 09, 10:38    [8026810]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить XML на соответствие XSD  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6722
vdp
Я вроде в первом сообщение все прямо написал:
есть ли возможность (кроме как написать расширенную процедуру) проверить XML на соответствие XSD ?
Вот не нада. Вы написали чётко:
vdp
Задача: есть список XSD документов и список XML. Нужно узнать какому XSD соответствует каждый XML.
Но потом оказалось что задача надуманна и мы перешли на реальну задачу.
Самое главное это постановка задачи, а не болтовня по ходу.

Если уж так пошло, отвечу грубо: мне не интересно какие задачи описывают топикастеры, мне интересны реальные задачи. Очень часто проблемы надуманны.
Не принимайте это чисто на свой счёт.
7 дек 09, 16:12    [8030183]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить