powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, с XSD-схемой.
10 сообщений из 10, страница 1 из 1
Помогите, пожалуйста, с XSD-схемой.
    #37883753
demoniqus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На странице присутствуют следующие элементы: <organization> (корневой), <division>, <employee>, <duty>
Элементы <division> могут вкладываться в <organization> и сами в себя. Степень вложенности может быть любой.
Элементы <employee> могут вкладываться в <organization> и в <division>
Элементы <duty> вкладываются только в <employee>
Все элементы кроме <organization> имеют дополнительные атрибуты. необходимо составить XSD-схему. Далеко пока не продвинулся.
Код: 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.
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="organization">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="division" maxOccurs="unbounded" minOccurs="0" type='div'/>
        <xs:element name="employee" maxOccurs="unbounded" minOccurs="0" type='emp'/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name='div'>
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute type="xs:string" name="name" use="optional"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name='emp'>
    <xs:sequence>
      <xs:element name='duty' >
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:string">
              <xs:attribute type="xs:string" name="name" use="optional"/>
              <xs:attribute type="xs:string" name="FullName" use="optional"/>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>


Не получается совместить в одном объекте и аттрибуты и вложенные элементы. Спецификация от W3C на английском что-то не очень помогает, т.к. валидаторы посылают меня в дальние дали...
Помогите, пожалуйста. И, если кто знает толковые ссылки на информацию об XSD (хоть на китайском, хоть на языке мумба-юмба), где, глядя на пример, можно сварганить свой валидный вариант, поделитесь)))))
...
Рейтинг: 0 / 0
Помогите, пожалуйста, с XSD-схемой.
    #37883780
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demoniqusНе получается совместить в одном объекте и аттрибуты и вложенные элементыКакие элементы у Вас могут содержать обычный текст?
demoniqusИ, если кто знает толковые ссылки на информацию об XSDMSDN, w3school
...
Рейтинг: 0 / 0
Помогите, пожалуйста, с XSD-схемой.
    #37883830
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demoniqusНе получается совместить в одном объекте и аттрибуты и вложенные элементы
Код: xml
1.
2.
3.
4.
5.
6.
7.
<xsd:complexType>
  <xsd:sequence>
    ...........
  </xsd:sequence>
  <xsd:attribute .../>
  <xsd:attribute .../>
</xsd:complexType>
...
Рейтинг: 0 / 0
Помогите, пожалуйста, с XSD-схемой.
    #37883862
demoniqus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
блин, как же это геморройно. Решение найдено
Код: 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.
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="organization">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="division" maxOccurs="unbounded" minOccurs="0" type='div'/>
        <xs:element name="employee" maxOccurs="unbounded" minOccurs="0" type='emp'/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name='div'>
<xs:sequence>   
<xs:element name='division' minOccurs="0" maxOccurs="unbounded" type="div" />
<xs:element name='employee' minOccurs="0" maxOccurs="unbounded" type="emp" />
</xs:sequence>
<xs:attribute type='xs:string' name="name" use='optional' />
  </xs:complexType>
  <xs:complexType name='emp'>
    <xs:sequence>
      <xs:element name='duty' minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:string">
              <xs:attribute type="xs:string" name="name" use="optional"/>
              <xs:attribute type="xs:string" name="FullName" use="optional"/>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute type="xs:string" name="name" use="optional"/>
    <xs:attribute type="xs:string" name="DateOfBirth" use="optional"/>
    <xs:attribute type="xs:string" name="Position" use="optional"/>
    <xs:attribute type="xs:string" name="Email" use="optional"/>
    <xs:attribute type="xs:string" name="Phone" use="optional"/>
    <xs:attribute type="xs:string" name="ListedInESIA" use="optional"/>
  </xs:complexType>
</xs:schema>


Вдруг кому понадобится. Обратите внимание на указание maxOccurs - если предполагается наличие более, чем одноготакого элемента подряд. Из меня эта фиговина всю душу вытрясла.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, с XSD-схемой.
    #37883916
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demoniqusблин, как же это геморройно.Да ладно. Все стройно и очевидно. Нужно только привыкнуть. Я когда-то XSL не переваривал. А сейчас проникся
...
Рейтинг: 0 / 0
Помогите, пожалуйста, с XSD-схемой.
    #37883944
demoniqus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возник следующий вопрос: sequence говорит о том, что элементы должны следовать в указанном порядке,т.е.
Код: xml
1.
2.
3.
4.
5.
6.
7.
  <xs:complexType name='div'>
    <xs:sequence>   
      <xs:element name='division' minOccurs="0" maxOccurs="unbounded" type="div" />
      <xs:element name='employee' minOccurs="0" maxOccurs="unbounded" type="emp" />
    </xs:sequence>
    <xs:attribute type='xs:string' name="name" use='required' />
  </xs:complexType>


говорит о том, что сначала должны следовать <division>, а потом <employee>. А как ему сказать, что на самом деле элементы могут следовать в любом порядке и в любом количестве?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, с XSD-схемой.
    #37883959
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<xsd:all>
...
Рейтинг: 0 / 0
Помогите, пожалуйста, с XSD-схемой.
    #37883999
demoniqus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
<xs:all> позволяет появиться один раз вложенным элементам. А у меня их может быть любое количество...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, с XSD-схемой.
    #37884058
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demoniqus<xs:all> позволяет появиться один раз вложенным элементам. А у меня их может быть любое количество...
Код: xml
1.
2.
3.
4.
5.
<xs:complexType ...>
    <xs:sequence>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name='division' type="div" />
            <xs:element name='employee' type="emp" />
...
Рейтинг: 0 / 0
Помогите, пожалуйста, с XSD-схемой.
    #37884198
demoniqus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy , ЗАРАБОТАЛО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)))))))))))))))))))))))))))
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, с XSD-схемой.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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