powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Наследование в XSD, если в родителе есть xs:all
1 сообщений из 1, страница 1 из 1
Наследование в XSD, если в родителе есть xs:all
    #35329634
foux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Надеюсь, что правильно выбрал раздел форума, т.к. очень нужна помощь. Проблема такая: в xml описываются объекты часть свойств у них одинаковая. Соответственно составляя схему хочу эти общие свойства вынести в отдельный тип и наследовать он него все остальные, при этом хочеться сохранить возможность писать теги в любом порядке (для этого и юзаю all). Вот как я делаю:
Это xml`ка:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0" encoding="utf-8"?>
<info>
  <data>
    <field1>test1_1</field1>
    <field2> 12 </field2>
    <field3>test1_3</field3>
  </data>
  
  <data>
    <field1>test2_1</field1>
    <field2> 22 </field2>
    <field3>test2_3</field3>
  </data>
</info>

Это схема:
Код: 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.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name="Papa" abstract="true">
    <xs:all>                                            <!-- VS ругается на этот тег: "'all' is not the only particle in a group, or is being used as an extention."-->
      <xs:element name="field1" type="xs:string" />
      <xs:element name="field2" type="xs:int" />
    </xs:all>
  </xs:complexType>

  <xs:complexType name="ChildOne">
    <xs:complexContent>
      <xs:extension base="Papa">
        <xs:all>
          <xs:element name="field3" type="xs:string" />
        </xs:all>
      </xs:extension>
    </xs:complexContent> 
  </xs:complexType>

  <xs:element name="info">
    <xs:complexType>
      <xs:sequence maxOccurs="unbounded">
        <xs:element name ="data" type="ChildOne" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>    
</xs:schema>

Если все all заменить на sequence то все работает, но теги идут в строго определенном порядке. Как мне быть?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Наследование в XSD, если в родителе есть xs:all
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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