Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, с XSD-схемой. / 10 сообщений из 10, страница 1 из 1
18.07.2012, 14:20
    #37883753
demoniqus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с XSD-схемой.
На странице присутствуют следующие элементы: <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
18.07.2012, 14:28
    #37883780
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с XSD-схемой.
demoniqusНе получается совместить в одном объекте и аттрибуты и вложенные элементыКакие элементы у Вас могут содержать обычный текст?
demoniqusИ, если кто знает толковые ссылки на информацию об XSDMSDN, w3school
...
Рейтинг: 0 / 0
18.07.2012, 14:43
    #37883830
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с XSD-схемой.
demoniqusНе получается совместить в одном объекте и аттрибуты и вложенные элементы
Код: xml
1.
2.
3.
4.
5.
6.
7.
<xsd:complexType>
  <xsd:sequence>
    ...........
  </xsd:sequence>
  <xsd:attribute .../>
  <xsd:attribute .../>
</xsd:complexType>
...
Рейтинг: 0 / 0
18.07.2012, 14:50
    #37883862
demoniqus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с 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.
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
18.07.2012, 15:05
    #37883916
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с XSD-схемой.
demoniqusблин, как же это геморройно.Да ладно. Все стройно и очевидно. Нужно только привыкнуть. Я когда-то XSL не переваривал. А сейчас проникся
...
Рейтинг: 0 / 0
18.07.2012, 15:12
    #37883944
demoniqus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с XSD-схемой.
Возник следующий вопрос: 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
18.07.2012, 15:15
    #37883959
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с XSD-схемой.
<xsd:all>
...
Рейтинг: 0 / 0
18.07.2012, 15:28
    #37883999
demoniqus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с XSD-схемой.
<xs:all> позволяет появиться один раз вложенным элементам. А у меня их может быть любое количество...
...
Рейтинг: 0 / 0
18.07.2012, 15:48
    #37884058
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с XSD-схемой.
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
18.07.2012, 16:49
    #37884198
demoniqus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с XSD-схемой.
Antonariy , ЗАРАБОТАЛО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)))))))))))))))))))))))))))
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, с XSD-схемой. / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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