Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSD complexType sequence/all / 7 сообщений из 7, страница 1 из 1
29.09.2011, 13:26
    #37460898
belykh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSD complexType sequence/all
Доброго времени суток!

Подскажите, как описать следующее правило:
кусок xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<icon>
	<elem1 id="x1" />
	<elem1 id="x2" />
	<elem2 id="x1" />
	<elem3 id="x1" />
	<elem3 id="x2" />
	<elem3 id="x3" />
</icon>
XSD:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
...
<xsd:element name="icon">
	<xsd:complexType>
		<xsd:sequence>
			<xsd:element name="elem1" type="IdType" minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="elem2" type="IdType" minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="elem3" type="IdType" minOccurs="0" maxOccurs="unbounded">
		</xsd:sequence>
	</xsd:complexType>
</xsd:element>

<xsd:complexType name="IdType">
	<xsd:attribute name="id" use="required">
		<xsd:simpleType>
			<xsd:restriction base="xsd:string">
				<xsd:enumeration value="x1"/>
				<xsd:enumeration value="x2"/>
				<xsd:enumeration value="x3"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:attribute>	
</xsd:complexType>
Смысл такой - внутри элемента <icon> может быть перечень элементов <elem1>, <elem2>, <elem3>, каждый из которых должен иметь атрибут "id" (значения из списка).
Проблема в следующем:
- Элементы могут повторяться,но не повторяющиеся элементы не должны содержать одинаковые "id"
- Элементы могут быть в разном порядке, но это не позволяет xsd:sequence. Можно сделать xsd:all, но тогда maxOccurs=1
...
Рейтинг: 0 / 0
29.09.2011, 13:27
    #37460906
belykh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSD complexType sequence/all
Поправка:
Элементы могут повторяться,но повторяющиеся элементы не должны содержать одинаковые "id"
...
Рейтинг: 0 / 0
29.09.2011, 14:43
    #37461197
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSD complexType sequence/all
2)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<xsd:element name="icon">
	<xsd:complexType  mixed="true">
		<xsd:group ref="elems" minOccurs="0" maxOccurs="1"/>
	</xsd:complexType>
</xsd:element>
	
<xsd:group name="elems">
	<xsd:all>
		<xsd:element name="elem1" type="IdType" minOccurs="0"/>
		<xsd:element name="elem2" type="IdType" minOccurs="0"/>
		<xsd:element name="elem3" type="IdType" minOccurs="0"/>
	</xsd:all>
</xsd:group>
...
Рейтинг: 0 / 0
29.09.2011, 14:53
    #37461218
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSD complexType sequence/all
А хотя нет...
...
Рейтинг: 0 / 0
29.09.2011, 15:09
    #37461281
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSD complexType sequence/all
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<xsd:element name="icon">
	<xsd:complexType>
		<xsd:sequence>
			<xsd:choice minOccurs="0" maxOccurs="unbounded">
				<xsd:element name="elem1" type="IdType" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element name="elem2" type="IdType" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element name="elem3" type="IdType" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:choice>
		</xsd:sequence>
	</xsd:complexType>
</xsd:element>
...
Рейтинг: 0 / 0
29.09.2011, 15:11
    #37461290
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSD complexType sequence/all
Или даже так.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<xsd:element name="icon">
	<xsd:complexType>
		<xsd:sequence>
			<xsd:choice minOccurs="0" maxOccurs="unbounded">
				<xsd:element name="elem1" type="IdType"/>
				<xsd:element name="elem2" type="IdType"/>
				<xsd:element name="elem3" type="IdType"/>
			</xsd:choice>
		</xsd:sequence>
	</xsd:complexType>
</xsd:element>
...
Рейтинг: 0 / 0
30.09.2011, 08:13
    #37462186
belykh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSD complexType sequence/all
Благодарю! По этой части заработало! :)
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSD complexType sequence/all / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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