powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите с описанием элемента схемы.
6 сообщений из 6, страница 1 из 1
Помогите с описанием элемента схемы.
    #39026240
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

Не удается создать XSD схему когда нужно сначала объявить тип enumeration,
а потом описать структуру, которая может хранить НЕСКОЛЬКО элементов описаного типа enumeration


Вот, что хочется получить
Код: xml
1.
2.
3.
4.
<List>
  <Elem>1<Elem>
  <Elem>2<Elem>
</List>




Описываю так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
	<xs:complexType name="ListType">
		<xs:sequence>
			<!-- Список должен состоять из элементов числом от 1 до 3 -->
			<xs:element name="Elem" type="tns:ListElemType" minOccurs="1" maxOccurs="3" />
		</xs:sequence>
	</xs:complexType>			
	
	<xs:element name="ListElemType">
	<xs:simpleType>
		<xs:restriction base="xs:int"> <xs:minInclusive value="0"/> <xs:maxInclusive value="3"/>
			<xs:enumeration value="0"/>
			<xs:enumeration value="1"/>
			<xs:enumeration value="2"/>
			<xs:enumeration value="3"/>
		</xs:restriction>
	</xs:simpleType>
	</xs:element>



Ошибка валидации СХЕМЫ
Код: xml
1.
Not valid.Error - Line 64, 86: org.xml.sax.SAXParseException; lineNumber: 64; columnNumber: 86; src-resolve: Cannot resolve the name 'tns:ListElemType' to a(n) 'type definition' component.


как только убираю описание типа ListType, все проходит успешно
Код: xml
1.
<xs:element name="ListElem" type="tns:ListElemType" minOccurs="1" maxOccurs="3" />



Подскажите как правильно решить такое ?


PS. Хорошо бы, если можно в XSD ограничить, что не может быть повторов в таком списке. Т.е. чтобы отлавливались такие ОШИБКИ:

Код: xml
1.
2.
3.
4.
<List>
  <elem>1<elem>
  <elem>1<elem>
</List>



Думаю, что это схемой XSD уже не задать.
...
Рейтинг: 0 / 0
Помогите с описанием элемента схемы.
    #39026256
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek Ошибка валидации СХЕМЫПо-видимому не объявлено пространство tns. Почему <xsl:stylesheet зажали? :)
ProBiotek Подскажите как правильно решить такое ?Либо объявить либо избавиться от tns:
ProBiotek Хорошо бы, если можно в XSD ограничить, что не может быть повторов в таком списке. Т.е. чтобы отлавливались такие ОШИБКИ:xs:key
...
Рейтинг: 0 / 0
Помогите с описанием элемента схемы.
    #39026258
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите с описанием элемента схемы.
    #39026408
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Спасибо за помощь и за Key, буду изучать !
В общем я не знаю, что я сделал. Но вот так заработало:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
	<xs:complexType name="MyOuterType_">
		<xs:all>
			<xs:element name="MyType" type="tns:MyType_" minOccurs="1" maxOccurs="1" />
		</xs:all>
	</xs:complexType>


	<xs:complexType name="MyType_">
		<xs:sequence>
			<!-- Список должен состоять из элементов числом от 1 до 3 -->
			<xs:element name = "Color" type = "tns:clothesSizeType" minOccurs="1" maxOccurs="3" />
		</xs:sequence>
	</xs:complexType>				
	
	<xs:simpleType name="clothesSizeType">
       <xs:restriction base="xs:string">
          <xs:enumeration value="S" />
          <xs:enumeration value="M" />
          <xs:enumeration value="L" />
          <xs:enumeration value="XL" />
       </xs:restriction>
    </xs:simpleType>	




xsl:stylesheet - что это такое ?
Я XSD схему пишу, а не трансформацию (этим никогда не занимался вообще)

Оно ?
Код: xml
1.
2.
3.
4.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://tempuri.org/"
           xmlns:tns="http://tempuri.org/"
           elementFormDefault="qualified" attributeFormDefault="qualified">	



Не добавил в вопрос, т.к. уверен, что дело явно не в нем. Зачем захламлять вопрос ненужной информацией :)
А дело явно не в нем, т.к. проблема возникает с конкретным элементом. Когда он есть - проблема есть. Когда он нет - проблема тоже нет.
...
Рейтинг: 0 / 0
Помогите с описанием элемента схемы.
    #39026432
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek xsl:stylesheet - что это такое ?сорри, имел ввиду <xs:schema

ProBiotek Оно ?Да.

ProBiotek А дело явно не в нем, т.к. проблема возникает с конкретным элементом. Когда он есть - проблема есть. Когда он нет - проблема тоже нет.Не сразу заметил, дело в том, что объявлен <xs: element name="ListElemType">, а ссылка на type ="tns:ListElemType"
...
Рейтинг: 0 / 0
Помогите с описанием элемента схемы.
    #39031633
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyНе сразу заметил, дело в том, что объявлен <xs: element name="ListElemType">, а ссылка на type ="tns:ListElemType"Все правильно
ProBiotekВ общем я не знаю, что я сделал. Но вот так заработало:Скорее всего у Вас уже объявлен тип ListElemType или ListType в другом месте
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите с описанием элемента схемы.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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