powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Запрос атрибутов из xlm схемы
13 сообщений из 13, страница 1 из 1
Запрос атрибутов из xlm схемы
    #38903312
fromdd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал таблицу со столбцом типа 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
Запрос атрибутов из xlm схемы
    #38904019
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fromdd"<anonymous>"Покажите xsd схему, где описан элемент AddressObjectType
...
Рейтинг: 0 / 0
Запрос атрибутов из xlm схемы
    #38905616
fromdd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_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
Запрос атрибутов из xlm схемы
    #38906010
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если попробовать так
Код: xml
1.
<xs:attribute name="LEVEL" use="required" type="xs:integer" />


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

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


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

Для того и придумана типизация, чтобы по пальцам стучать вот в таких случаях.
...
Рейтинг: 0 / 0
Запрос атрибутов из xlm схемы
    #38979145
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WilliamBlakeПодскажите плз, как в xsd прописать правило на возможное значения определенного тега, оно должно совпадать со значением атрибута корневого элементаНикак.
...
Рейтинг: 0 / 0
Запрос атрибутов из xlm схемы
    #38979166
WilliamBlake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если не привязываться к значению атрибута. Просто чтобы значения во всех тегах <tag> было одинаково, какое правило можно прописать?
...
Рейтинг: 0 / 0
Запрос атрибутов из xlm схемы
    #38979175
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
Запрос атрибутов из xlm схемы
    #38979268
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy
Код: xml
1.
<xs:pattern value="value"/>

А в value окажется управляющий символ из регэкспа
WilliamBlakeПросто чтобы значения во всех тегах <tag> было одинаково,А зачем такой элемент нужен?
...
Рейтинг: 0 / 0
Запрос атрибутов из xlm схемы
    #38979278
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyА чо тут думатьЯ сейчас перечитал весь тред. Странно. Вроде же был трезвый когда читал и писал это :)
...
Рейтинг: 0 / 0
Запрос атрибутов из xlm схемы
    #38979280
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_А в value окажется управляющий символ из регэкспаНу тогда enum.
...
Рейтинг: 0 / 0
Запрос атрибутов из xlm схемы
    #38979527
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
13 сообщений из 13, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Запрос атрибутов из xlm схемы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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