Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Запрос атрибутов из xlm схемы / 13 сообщений из 13, страница 1 из 1
13.03.2015, 08:43
    #38903312
fromdd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос атрибутов из xlm схемы
Создал таблицу со столбцом типа xml(связал его с коллекцией схем созданной ранее на основе xsd схемы), затем сам xml загрузил в это поле.

Вот пример xml
Код: xml
1.
2.
3.
4.
5.
<AddressObjectTypes>
  <AddressObjectType LEVEL="0" SOCRNAME="" KOD_T_ST="0" />
  <AddressObjectType LEVEL="1" SOCRNAME="Автономный округ" SCNAME="АО" KOD_T_ST="101" />
  <AddressObjectType LEVEL="1" SOCRNAME="Автономная область" SCNAME="Аобл" KOD_T_ST="102" />
  <AddressObjectType LEVEL="1" SOCRNAME="Город" SCNAME="г" KOD_T_ST="103" />



Теперь пробую извлечь оттуда значения атрибутов.
Код: sql
1.
2.
3.
select 
x.value('(/AddressObjectTypes/AddressObjectType[@LEVEL="2"]/@SOCRNAME)[1]','varchar(10)') 
from T



Ошибка Оператор "=" невозможно применить к операндам "<anonymous>" и "xs:string".

Что я делаю не так?

Возможно ли выбрать все атрибуты SOCRNAME у которых level=1?
...
Рейтинг: 0 / 0
13.03.2015, 15:13
    #38904019
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос атрибутов из xlm схемы
fromdd"<anonymous>"Покажите xsd схему, где описан элемент AddressObjectType
...
Рейтинг: 0 / 0
16.03.2015, 10:53
    #38905616
fromdd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос атрибутов из xlm схемы
_Vasilisk_fromdd"<anonymous>"Покажите xsd схему, где описан элемент AddressObjectType

Код: xml
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.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2009 sp1 (http://www.altova.com) by Буравцев_А (EMBRACE) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:usch="http://www.unisoftware.ru/schematron-extensions" xmlns:sql="urn:schemas-microsoft-com:mapping-schema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="AddressObjectTypes">
		<xs:annotation>
			<xs:documentation>Состав и структура файла с информацией по типам адресных объектов в БД ФИАС</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="AddressObjectType" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Тип адресного объекта</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:attribute name="LEVEL" use="required">
							<xs:annotation>
								<xs:documentation>Уровень адресного объекта</xs:documentation>
							</xs:annotation>
							<xs:simpleType>
								<xs:restriction base="xs:integer">
									<xs:totalDigits value="10"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:attribute>
						<xs:attribute name="SCNAME" use="optional">
							<xs:annotation>
								<xs:documentation>Краткое наименование типа объекта</xs:documentation>
							</xs:annotation>
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:minLength value="0"/>
									<xs:maxLength value="10"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:attribute>
						<xs:attribute name="SOCRNAME" use="required">
							<xs:annotation>
								<xs:documentation>Полное наименование типа объекта</xs:documentation>
							</xs:annotation>
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:minLength value="0"/>
									<xs:maxLength value="50"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:attribute>
						<xs:attribute name="KOD_T_ST" use="required">
							<xs:annotation>
								<xs:documentation>Ключевое поле</xs:documentation>
							</xs:annotation>
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:minLength value="1"/>
									<xs:maxLength value="4"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:attribute>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>
...
Рейтинг: 0 / 0
16.03.2015, 15:26
    #38906010
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос атрибутов из xlm схемы
А если попробовать так
Код: xml
1.
<xs:attribute name="LEVEL" use="required" type="xs:integer" />


Если заработает, тогда будем думать дальше
...
Рейтинг: 0 / 0
08.06.2015, 15:16
    #38979119
WilliamBlake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос атрибутов из xlm схемы
Подскажите плз, как в xsd прописать правило на возможное значения определенного тега, оно должно совпадать со значением атрибута корневого элемента, т.е. xml что-то типа такого:
<main id="q">
....
<tag>value</tag>
...
</main>

Нужна проверка value , чтобы оно было равно q.
...
Рейтинг: 0 / 0
08.06.2015, 15:22
    #38979136
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос атрибутов из xlm схемы
_Vasilisk_А если попробовать так
Код: xml
1.
<xs:attribute name="LEVEL" use="required" type="xs:integer" />


Если заработает, тогда будем думать дальшеА чо тут думать, он же вопреки xs:integer явную строку сравнивает: @LEVEL="2".
Парсер скорее всего даже и не пытается выяснить, число в кавычки поместили или не число.

Для того и придумана типизация, чтобы по пальцам стучать вот в таких случаях.
...
Рейтинг: 0 / 0
08.06.2015, 15:26
    #38979145
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос атрибутов из xlm схемы
WilliamBlakeПодскажите плз, как в xsd прописать правило на возможное значения определенного тега, оно должно совпадать со значением атрибута корневого элементаНикак.
...
Рейтинг: 0 / 0
08.06.2015, 15:36
    #38979166
WilliamBlake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос атрибутов из xlm схемы
А если не привязываться к значению атрибута. Просто чтобы значения во всех тегах <tag> было одинаково, какое правило можно прописать?
...
Рейтинг: 0 / 0
08.06.2015, 15:43
    #38979175
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос атрибутов из xlm схемы
Код: xml
1.
2.
3.
4.
5.
6.
7.
  <xs:element name="tag" default="value">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="value"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
...
Рейтинг: 0 / 0
08.06.2015, 16:31
    #38979268
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос атрибутов из xlm схемы
Antonariy
Код: xml
1.
<xs:pattern value="value"/>

А в value окажется управляющий символ из регэкспа
WilliamBlakeПросто чтобы значения во всех тегах <tag> было одинаково,А зачем такой элемент нужен?
...
Рейтинг: 0 / 0
08.06.2015, 16:34
    #38979278
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос атрибутов из xlm схемы
AntonariyА чо тут думатьЯ сейчас перечитал весь тред. Странно. Вроде же был трезвый когда читал и писал это :)
...
Рейтинг: 0 / 0
08.06.2015, 16:34
    #38979280
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос атрибутов из xlm схемы
_Vasilisk_А в value окажется управляющий символ из регэкспаНу тогда enum.
...
Рейтинг: 0 / 0
08.06.2015, 19:02
    #38979527
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос атрибутов из xlm схемы
WilliamBlakeПодскажите плз, как в xsd прописать правило на возможное значения определенного тега, оно должно совпадать со значением атрибута корневого элемента, т.е. xml что-то типа такого:
<main id="q">
....
<tag>value</tag>
...
</main>

Нужна проверка value , чтобы оно было равно q.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="main">
    
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:element name="tag" type="xs:string" />
      </xs:sequence>
      <xs:attribute name="id" type="xs:string" use="required" />
    </xs:complexType>
    
    <xs:key name="mainId">
      <xs:selector xpath="."/>
      <xs:field xpath="@id"/>
    </xs:key>

    <xs:keyref name="mainIdRef" refer="mainId">
      <xs:selector xpath="."/>
      <xs:field xpath="tag"/>
    </xs:keyref>
    
  </xs:element>
</xs:schema>
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Запрос атрибутов из xlm схемы / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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