Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использовать XML в XSD, можно ли в xsd ссылаться на xml 
:(
    Опции темы
JVM
Дата 21.3.2007, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 30.10.2006

Репутация: 4
Всего: 5



Допустим есть некоторый xml
Код

<a>
    <b>name1</b>
    <b>name2</b>
    <b>name3</b>
    <b>name4</b>
</a>


Как при описании другого xml при помощи xsd указать, что тег <name> может содержать толко какое-нибудь из значений тегов <b>?
PM MAIL   Вверх
LSD
Дата 21.3.2007, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 8
Всего: 538



Код
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:element name="a">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="b" maxOccurs="unbounded">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:enumeration value="name1"/>
              <xs:enumeration value="name2"/>
              <xs:enumeration value="name3"/>
              <xs:enumeration value="name4"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
JVM
Дата 21.3.2007, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 30.10.2006

Репутация: 4
Всего: 5



LSD, такой вариант не очень хорош. Дело в том, что если так делать то, после изменения исходного xml(который  с тегами <b>) надо будет вручную вносить изменения в xsd, а этого не хочется делать.
PM MAIL   Вверх
LSD
Дата 21.3.2007, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 8
Всего: 538



Тогда я не понял, что тебе надо сделать.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
JVM
Дата 21.3.2007, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 30.10.2006

Репутация: 4
Всего: 5



Допустим есть xml файл:
surname.xml
Код

<a>
    <b>Иванов</b>
    <b>Петров</b>
    <b>Сидоров</b>
    <b>Мухин</b>
</a>


Есть другой xml:
person.xml
Код

<persons>
    <person>
        <age>23</age>
        <surname>Иванов</surname>
    </person>
    <person>
        <age>27</age>
        <surname>Мухин</surname>
    </person>
    <person>
        <age>27</age>
        <surname>Ибрагимов</surname> <!--Ошибка, т.к. в surname.xml нет тега <b> значение которого Ибрагимов-->
    </person>
</persons>

PM MAIL   Вверх
LSD
Дата 21.3.2007, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 8
Всего: 538



Из стороннего XML врядли возможно, а вот из стороннего XSD можно.
Код
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="dictionary">
  <xs:simpleType name="name">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Иванов"/>
      <xs:enumeration value="Петров"/>
      <xs:enumeration value="Сидоров"/>
      <xs:enumeration value="Мухин"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

Код
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:import namespace="dictionary" schemaLocation="dic.xsd"/>
  <xs:element name="persons">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="person" maxOccurs="unbounded" xmlns:dc="dictionary">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="age" type="xs:positiveInteger"/>
              <xs:element name="surname" type="dc:name"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Код
<?xml version="1.0" encoding="UTF-8"?>
<persons xmlns:dc="dictionary" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="pers.xsd">
  <person>
    <age>23</age>
    <surname>Иванов</surname>
  </person>
  <person>
    <age>27</age>
    <surname>Мухин</surname>
  </person>
  <person>
    <age>27</age>
    <surname>Ибрагимов</surname>
  </person>
</persons>



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.1242 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.