powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите с xsd схемой
6 сообщений из 6, страница 1 из 1
Помогите с xsd схемой
    #38411592
Здравствуйте!
Есть такой xml:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0" encoding="UTF-8"?>
<form>
    <layout direction="horizontal">
        <component name="button"/>
        <layout direction="vertical">
            <component name="combobox"/>
            <layout>
                ...
            </layout>
            <component name="text"/>
        </layout>
        <component name="edit"/>
    </layout>
</form>



Проблема в том что я не знаю как описать что внутри слоя могут идти компоненты внутри другого слоя. Дело не в рекурсии. Как описать рекурсию я знаю, а дело именно в последовательности <component>, <layout>, <component>. Как её описать? Спасибо!
...
Рейтинг: 0 / 0
Помогите с xsd схемой
    #38411598
Прошу прощения...Я имел ввиду что на определенном уровне могут идти компоненты ВОКРУГ другого слоя
...
Рейтинг: 0 / 0
Помогите с xsd схемой
    #38411720
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий Арутюнянна определенном уровнеНикак.
Юрий АрутюнянВОКРУГ Не имеет смысла. Внутри layout может быть либо любая последовательность из layout и component, либо не любая, не любая должна быть задана более формально.
...
Рейтинг: 0 / 0
Помогите с xsd схемой
    #38411878
Тогда пожалуйста объясните почему когда я описываю xml к примеру так:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<xs:element name="layout" minOccurs="1" maxOccurs="1">

  <xs:complexType>
    <xs:sequence>

      <xs:element name="widget" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="layout" type="layoutType" minOccurs="0" maxOccurs="unbounded"/>

    </xs:sequence>
  </xs:complexType>

</xs:element>



А в xml пишу так:

Код: xml
1.
2.
3.
4.
5.
6.
  <layout>
    <widget/>
    <layout>
      <widget/>
    </layout>
  </layout>



то ошибки нет
А если так:
Код: xml
1.
2.
3.
4.
5.
  <layout>
    <widget/>
    <layout><widget/></layout>
    <widget/>
  </layout>



То PHP-шная функция DOMDocument::schemaValidate выдает ошибку
...
Рейтинг: 0 / 0
Помогите с xsd схемой
    #38412014
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что xs:sequence определяет строгую последовательность типов элементов.
Нужно написать <xs:sequence maxOccurs="unbounded">, тогда widget - layout - widget будет восприниматься как две последовательности widget - layout.
...
Рейтинг: 0 / 0
Помогите с xsd схемой
    #38412065
Большое спасибо !!!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите с xsd схемой
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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