powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Проблема с переменной XML-формата
13 сообщений из 13, страница 1 из 1
Проблема с переменной XML-формата
    #35518369
Владимир М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Создаю схему:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE XML SCHEMA COLLECTION [dbo].[SchemaSMS] AS 
N'<?xml version="1.0" encoding="utf-16"?>
<xs:schema targetNamespace="ServiceBroker" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="MSG">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="GUID" type="xs:string" />
        <xs:element name="Priority" type="xs:unsignedByte" />
        <xs:element name="DateTime" type="xs:dateTime" />
        <xs:element name="Source" type="xs:string" />
        <xs:element name="Destination" type="xs:unsignedLong" />
        <xs:element name="Message" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>';
2. Объявляю переменную:
Код: plaintext
declare @xml as XML (dbo.SchemaSMS)
3. Пытаюсь записать данные:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
set @xml = 
N'<?xml version="1.0" encoding="utf-16"?>
<MSG>
  <GUID>68459338-CC0B-4CDB-A5FF-9993468E9446</GUID>
  <Priority>1</Priority>
  <DateTime>2008-09-02T15:23:22.970Z</DateTime>
  <Source>SRC</Source>
  <Destination>DST</Destination>
  <Message>MSG</Message>
</MSG>';
4. Получаю ошибку:
Код: plaintext
XML Validation: Declaration not found for element 'MSG'. Location: /*:MSG[ 1 ]

Покопался в инете, ничего внятного не нашёл.
...
Рейтинг: 0 / 0
Проблема с переменной XML-формата
    #35518373
Владимир М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда объявляю переменную без схемы
Код: plaintext
declare @xml as XML 
то, всё работает.
...
Рейтинг: 0 / 0
Проблема с переменной XML-формата
    #35519174
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну Destination у Вас никак не unsignedLong. и я не уверен, что 2008-09-02T15:23:22.970Z валидный dateTime. Далее Вы объявляете в схеме targetNamespace, который в документе никак не дефинируете

С уважением, Vasilisk
...
Рейтинг: 0 / 0
Проблема с переменной XML-формата
    #35519517
Владимир М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Формат даты времени правильный!
2. На эту конструкцию
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
set @xml = N'<?xml version="1.0" encoding="utf-16"?>
<ServiceBroker:MSG>
    <GUID>68459338-CC0B-4CDB-A5FF-9993468E9446</GUID>
    <Priority>3</Priority>
    <DateTime>2008-09-02T15:23:22.970Z</DateTime>
    <Source>SRV001</Source>
    <Destination>79035494536</Destination>
    <Message>Test message!</Message>
</ServiceBroker:MSG>';

Ругается:
Код: plaintext
XML parsing: line  2 , character  19 , undeclared prefix
...
Рейтинг: 0 / 0
Проблема с переменной XML-формата
    #35519522
Владимир М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Ну Destination у Вас никак не unsignedLong.
Это верно, но и в случае, когда я объявляю его xs:string ситуация та же.
Ругается именно на отсутствие MSG :((
...
Рейтинг: 0 / 0
Проблема с переменной XML-формата
    #35519738
SoftParanoik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<?xml version="1.0" encoding="utf-16"?>
<sb:MSG xmlns:sb="ServiceBroker">
    <GUID> 68459338 -CC0B-4CDB-A5FF-9993468E9446</GUID>
    <Priority> 3 </Priority>
    <DateTime> 2008 - 09 -02T15: 23 : 22 .970Z</DateTime>
    <Source>SRV001</Source>
    <Destination> 79035494536 </Destination>
    <Message>Test message!</Message>
</sb:MSG>
...
Рейтинг: 0 / 0
Проблема с переменной XML-формата
    #35519813
Владимир М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот так работает (с указанием префиксов перед каждым элементом)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
set @xml = N'<?xml version="1.0" encoding="utf-16"?>
<sb:MSG xmlns:sb="ServiceBroker">
    <sb:GUID>68459338-CC0B-4CDB-A5FF-9993468E9446</sb:GUID>
    <sb:Priority>3</sb:Priority>
    <sb:DateTime>2008-09-02T15:23:22.970Z</sb:DateTime>
    <sb:Source>SRV001</sb:Source>
    <sb:Destination>79085494586</sb:Destination>
    <sb:Message>Test message!</sb:Message>
</sb:MSG>';
Большое спасибо!
...
Рейтинг: 0 / 0
Проблема с переменной XML-формата
    #35520216
Владимир М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Далее :

Пытаюсь читать из переменной (по аналогии примерам из хелпа):
Код: plaintext
1.
select @xml.value('/MSG[1]/Message[1]','VARCHAR(140)')
Получаю NULL

select @xml выводит:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<sb:MSG xmlns:sb="ServiceBroker">
  <sb:GUID> 68459338 -CC0B-4CDB-A5FF-9993468E9446</sb:GUID>
  <sb:Priority> 3 </sb:Priority>
  <sb:DateTime> 2008 - 09 -02T15: 23 : 22 .97Z</sb:DateTime>
  <sb:Source>SRV001</sb:Source>
  <sb:Destination> 79085494586 </sb:Destination>
  <sb:Message>Test message!</sb:Message>
</sb:MSG>
...
Рейтинг: 0 / 0
Проблема с переменной XML-формата
    #35520230
SoftParanoik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так?
Код: plaintext
select @xml.value('/sb:MSG[1]/sb:Message[1]','VARCHAR(140)')
...
Рейтинг: 0 / 0
Проблема с переменной XML-формата
    #35520235
Владимир М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пробовал так.
Получил:
XQuery [value()]: The name "sb" does not denote a namespace.
...
Рейтинг: 0 / 0
Проблема с переменной XML-формата
    #35520411
Владимир М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблему удалось решить избавившись от параметра "targetNamespace" в схеме.
И, соответственно, в текстах самого XML.
...
Рейтинг: 0 / 0
Проблема с переменной XML-формата
    #35521415
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<?xml version="1.0" encoding="utf-16"?>
<MSG xmlns="ServiceBroker">
    <GUID> 68459338 -CC0B-4CDB-A5FF-9993468E9446</GUID>
    <Priority> 3 </Priority>
    <DateTime> 2008 - 09 -02T15: 23 : 22 .970Z</DateTime>
    <Source>SRV001</Source>
    <Destination> 79035494536 </Destination>
    <Message>Test message!</Message>
</MSG>
И все
авторПытаюсь читать из переменной (по аналогии примерам из хелпа):
Не знаю чем Вы читаете, но, например, в MSXML есть метод selectionNamespace(), который и нужно вызвать в самом начале

авторПроблему удалось решить избавившись от параметра "targetNamespace" в схеме.
Вылечили головную боль гильотиной
...
Рейтинг: 0 / 0
Проблема с переменной XML-формата
    #35521964
Владимир М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_ Вылечили головную боль гильотиной
Оно конечно так.
Вот только необходимости в данном случае в пространстве имён я не вижу.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Проблема с переменной XML-формата
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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