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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Непонятки с целевым пространством имён в xsd 
:(
    Опции темы
LostSoul2
Дата 8.10.2014, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А что вообще делают изначально - схему, и под неё пишут xml-документ, или наоборот, схему делают для готового документа?
PM MAIL   Вверх
diadiavova
Дата 8.10.2014, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5820
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Так от задачи зависит. Если ты точно себе представляешь, как должен выглядеть документ, то тожешь начать со схемы. Сейчас многие программы включают инструменты для генерации схемы из документа. Это, как правило, не совсем то, что надо , но ее потом можно слегка подредактировать и все. Иногда бывает, что схема и вовсе не нужна.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
LostSoul2
Дата 21.10.2014, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день. 

Есть xml-файл:
Код

<?xml version="1.0" ?>
<cont:contract xmlns:cont="http://blablabla">
  <type>TYPE</type>
  <name>NAME</name>
</cont:contract>


Составил для него схему:
Код

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://blablabla" xmlns:cont="http://blablabla">
  <element name="cont:contract">
   <complexType>
      <all>
         <element name="type" type="normalizedString" />
         <element name="name" type="normalizedString" />
      </all>
   </complexType>
  </element>
</schema>


Поверяю валидность вот здесь: http://www.freeformatter.com/xml-validator-xsd.html
И валидатор орёт, что ему в схеме не нравится имя "cont:contract". Если убрать префикс, то всё нормально. 
Почему писать "cont:contract неправильно? Ведь я здесь же в схеме прописал xmlns:cont="http://blablabla". Или это валидатор кривой?
А если префикс действительно здесь не нужен, зачем тогда объявлять его в схеме через xmlns:cont="http://blablabla"? Или это объявление совсем для чего-то другого делается?

Это сообщение отредактировал(а) LostSoul2 - 21.10.2014, 17:26
PM MAIL   Вверх
diadiavova
Дата 21.10.2014, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5820
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Префикс не является частью имени, а имя не может содержать двоеточий. Префикс указывает на принадлежность элемента или атрибута некоторому пространству имен и в принципе является внутренним инструментом документа. Схема в принципе не может диктовать какие префиксы в документе можно использовать, а какие нет. Тот префикс, который ты объявил в схеме, используется для разруливания пространств внутри самой схемы и никак не влияет на то, какой префикс будет использоваться в целевом документе для указания на пространство имен, описанное в этой схеме.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
LostSoul2
Дата 22.10.2014, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(diadiavova @  21.10.2014,  20:56 Найти цитируемый пост)
Тот префикс, который ты объявил в схеме, используется для разруливания пространств внутри самой схемы и никак не влияет на то, какой префикс будет использоваться в целевом документе для указания на пространство имен, описанное в этой схеме.


Да, с этим, я кажется, разобрался. Спасибо.
Но возникают новые траблы.

Есть xml-файл:
Код

<?xml version="1.0" ?>
<nsp1:root xmlns:nsp1="http://blablabla">
  <inner attr1="attr1value" attr2="attr2value"/>
</nsp1:root>




Схема:
Код

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://blablabla">
  <element name="root">
    <complexType>
      <all>
         <element name="inner">
           <complexType>
              <simpleContent>
                 <extension base="string">
                    <attribute name="attr1" type="string"/>
                    <attribute name="attr2" type="string"/>
                 </extension>
              </simpleContent>
           </complexType>
         </element>
      </all>
    </complexType>
  </element>
</schema>




Валидатор всё тот же - http://www.freeformatter.com/xml-validator-xsd.html
Впрочем, может, я зря всё время даю ссылку на валидатор? Может, они все одинаковые?

В вышеизложенном виде всё работает. Но если написать
Код

<nsp1:root xmlns:nsp1="http://blablabla">
  <nsp1:inner attr1="attr1value" attr2="attr2value"/>
</nsp1:root>

начинаются вопли, что Invalid Content Was Found Starting With Element 'nsp1:inner'. One Of '{inner}' Is Expected. Что здесь может быть не так? Во всех примерах xml-файлов, что я видел, преспокойно пишут префикс и во вложенных элементах. Хотя догадываюсь, что проблема в схеме, чего-то я там не указал...
PM MAIL   Вверх
diadiavova
Дата 22.10.2014, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5820
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Цитата(LostSoul2 @  22.10.2014,  14:23 Найти цитируемый пост)
 Хотя догадываюсь, что проблема в схеме, чего-то я там не указал... 

Вот если бы ты еще догадался что именно, то было бы вообще замечательно. Я ведь об этом уже писал и причем не далее как в этой самой теме.
http://forum.vingrad.ru/index.php?showtopi...t&p=2625240


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
LostSoul2
Дата 22.10.2014, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Благодарю. Разобрался.  Надо elementFormDefault="qualified" attributeFormDefault="qualified".
PM MAIL   Вверх
LostSoul2
Дата 23.10.2014, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый вечер.
Возник ещё вопрос: если в схеме не указано целевое пр-во имён, что это значит для xml-документа, соответствующего этой схеме (при условии, что документ валидный, т.е., действительно ей соответствует)? Что его элементы не должны принадлежать ни к каким пр-вам имён? Или что схема тупо описывает документ, не обращая внимания на пр-ва имён, к которым принадлежат элементы?
Спасибо.


Это сообщение отредактировал(а) LostSoul2 - 23.10.2014, 20:59
PM MAIL   Вверх
diadiavova
Дата 23.10.2014, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5820
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Элементы документа просто не будут сопоставлены схеме и вряд ли будет возможность объяснить валидатору на предмет чего выполняется проверка. Но если такая возможность всё же есть, то результат, видимо, от валидатора и будет зависеть.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
LostSoul2
Дата 23.10.2014, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Зачем же тогда вообще нужны такие схемы? Для чего придуман noNamespaceSchemaLocation? Для каких-то редких случаев?

Некоторые примеры, вот этот, в частности - http://wbex.ru/index.php/XML/XML_Schema/no...eSchemaLocation - заставляют думать, что элементы xml-документа для такой схемы именно не должны находиться в каких-либо пр-вах имён. Валидатор этот пример принял, после некоторых доделок, не связанных с пр-вами имён.

Это сообщение отредактировал(а) LostSoul2 - 23.10.2014, 23:31
PM MAIL   Вверх
LostSoul2
Дата 2.11.2014, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый вечер.
Посоветуйте, пожалуйста, какую-нибудь программу-валидатор, в которой можно было бы использовать схемы, состоящие из нескольких xsd-файлов, соединённых посредством xsd:import. Не шарю в этих программах совсем, а то, что видел в интернете, онлайн или для скачивания, не позволяет работать со схемами из нескольких файлов.
PM MAIL   Вверх
diadiavova
Дата 2.11.2014, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5820
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Я в закрепленной теме оставил ссылку на список программ. Поищи среди них.
http://forum.vingrad.ru/index.php?showtopi...t&p=2546715


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


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

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