Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSD: условная обязательность элементов / 2 сообщений из 2, страница 1 из 1
20.04.2009, 13:59
    #35941995
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSD: условная обязательность элементов
Имеется XML:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xml" href="gebwb.xsl" ?>
<Liste xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="gebwb.xsd">
	<w typ="verb">
		<de>gehen</de>
		<ru>идти</ru>
	</w>
	<w typ="subs">
		<de g="m">Trabant</de>
		<ru g="f">спутник</ru>
	</w>
</Liste>

И XSD к нему:

Код: 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.
46.
47.
48.
49.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="gebwb" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="Liste">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="w" minOccurs="0" maxOccurs="unbounded" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="w">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="de">
					<xs:complexType>
						<xs:simpleContent>
							<xs:extension base="xs:string">
								<xs:attribute name="g" type="GenusEnum" use="optional" />
							</xs:extension>
						</xs:simpleContent>
					</xs:complexType>
				</xs:element>
				<xs:element name="ru">
					<xs:complexType>
						<xs:simpleContent>
							<xs:extension base="xs:string">
								<xs:attribute name="g" type="GenusEnum" use="optional" />
							</xs:extension>
						</xs:simpleContent>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="typ" type="WortTyp" use="required" />
		</xs:complexType>
	</xs:element>
	<xs:simpleType name="WortTyp">
		<xs:restriction base="xs:string">
			<xs:enumeration value="subs" />
			<xs:enumeration value="verb" />
			<xs:enumeration value="adj" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="GenusEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="m" />
			<xs:enumeration value="f" />
			<xs:enumeration value="n" />
			<xs:enumeration value="pl" />
		</xs:restriction>
	</xs:simpleType>
</xs:schema>

Как сделать, чтобы атрибут "g" был обязательным, только если typ="subs", а при прочих типах его бы обязательно не было ?
...
Рейтинг: 0 / 0
20.04.2009, 22:48
    #35943072
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSD: условная обязательность элементов
BPKКак сделать, чтобы атрибут "g" был обязательным, только если typ="subs", а при прочих типах его бы обязательно не было ?Никак
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSD: условная обязательность элементов / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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