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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Валидация по XML Schema, импортируемые и включаемые схемы 
:(
    Опции темы
viii
Дата 22.1.2010, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте!
Никак не могу понять в чем ошибка:
Код

<?xml version="1.0" encoding="UTF-8"?>
<Форма25 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://www.ekka.com.ua/xmlns/f25/"
    xmlns:f25="http://www.ekka.com.ua/xmlns/f25/"
    xsi:schemaLocation="http://www.ekka.com.ua/xmlns/f25/ form25.xsd"
>
    <Резервуари>
        <Резервуар>
            <НомерРезервуара>2</НомерРезервуара>
            <ОфісКодПММ>7002</ОфісКодПММ>
            <НазваПММ>ДП</НазваПММ>
        </Резервуар>
        <Резервуар>
            <НомерРезервуара>1</НомерРезервуара>
            <ОфісКодПММ>7001</ОфісКодПММ>
            <НазваПММ>A-95</НазваПММ>
        </Резервуар>
    </Резервуари>
</Форма25>


form25.xsd
Код

<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="http://www.ekka.com.ua/xmlns/f25/"
    targetNamespace="http://www.ekka.com.ua/xmlns/f25/"
>
    <xsd:include schemaLocation="form25_type.xsd" />
    <xsd:element name="Форма25" type="Форма25" />
</xsd:schema>


form25_type.xsd
Код

<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:cmn="http://www.ekka.com.ua/xmlns/cmn/"
    xmlns:f25="http://www.ekka.com.ua/xmlns/f25/"
    xmlns="http://www.ekka.com.ua/xmlns/f25/"
    targetNamespace="http://www.ekka.com.ua/xmlns/f25/">
    <xsd:import 
        schemaLocation="commonTypes.xsd"
        namespace="http://www.ekka.com.ua/xmlns/cmn/" />
    <xsd:complexType name="Форма25">
        <xsd:sequence>
            <xsd:element name="Резервуари" type="f25:ОписРезервуарів" />
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="ОписРезервуарів">
        <xsd:sequence>
            <xsd:element name="Резервуар" type="cmn:ОписРезервуара"
                maxOccurs="7" />
        </xsd:sequence>
    </xsd:complexType>
</xsd:schema>


commonTypes.xsd
Код

<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="http://www.ekka.com.ua/xmlns/cmn/"
    targetNamespace="http://www.ekka.com.ua/xmlns/cmn/"
>
    <xsd:simpleType name="НомерРезервуара">
        <xsd:restriction base="xsd:decimal">
            <xsd:fractionDigits value="0" />
            <xsd:minInclusive value="1" />
            <xsd:maxInclusive value="7" />
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="НазваТовару">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="20" />
            <xsd:minLength value="1" />
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="Офіс-Код">
        <xsd:restriction base="xsd:decimal">
            <xsd:fractionDigits value="0" />
            <xsd:minExclusive value="0" />
            <xsd:maxInclusive value="99999" />
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType name="ОписРезервуара">
        <xsd:sequence>
            <xsd:element name="НомерРезервуара" type="НомерРезервуара" />
            <xsd:element name="ОфісКодПММ" type="Офіс-Код" />
            <xsd:element name="НазваПММ" type="НазваТовару" />
        </xsd:sequence>
    </xsd:complexType>
</xsd:schema>


При валидации ругается на 8ю строчку
и говорит, что:
Код

cvc-complex-type.2.4.a: Invalid content was found starting with element 'Резервуари'. One of '{Резервуари}' is expected.

PM MAIL   Вверх
diadiavova
Дата 22.1.2010, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



А не могло быть такого, что имя элемента ты написал когда языком ввода был русский?


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


Новичок



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

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



перепроверил 3 раза:
1. скопировал из схемы в инстанс
2. переписал заново в обоих
3. переписал инстанс, пользуясь intelli-sense среды разработки (Eclipse)

+еще раньше пробовал добавить в sequence типа Форма25 еще один элемент перед "Резервуари" и назвал его латиницей.

MSXML 6.0 выдает то-же самое:
Код

Согласно модели содержимого родительского элемента "{http://www.ekka.com.ua/xmlns/f25/}Форма25",
элемент "{http://www.ekka.com.ua/xmlns/f25/}Резервуари" является непредвиденным. 
Требуется: Резервуари.


Это сообщение отредактировал(а) viii - 22.1.2010, 13:35
PM MAIL   Вверх
viii
Дата 22.1.2010, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Нашлось решение  smile 

я попросил IDE сгенерировать мне инстанс по схеме и этот инстанс прошел валидацию
а после обработки напильником и сравнения с оригиналом, вот что я получил:
Код

<?xml version="1.0" encoding="UTF-8"?>
<f25:Форма25 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:f25="http://www.ekka.com.ua/xmlns/f25/"
    xsi:schemaLocation="http://www.ekka.com.ua/xmlns/f25/ form25.xsd"
>
    <Резервуари>
        <Резервуар>
            <НомерРезервуара>2</НомерРезервуара>
            <ОфісКодПММ>7002</ОфісКодПММ>
            <НазваПММ>ДП</НазваПММ>
        </Резервуар>
        <Резервуар>
            <НомерРезервуара>1</НомерРезервуара>
            <ОфісКодПММ>7001</ОфісКодПММ>
            <НазваПММ>A-95</НазваПММ>
        </Резервуар>
    </Резервуари>
</f25:Форма25>


в этом случае не указан namespace по умолчанию, откуда он берется?
типа, если у "Форма25" префикс "f25" то и у остальних предполагается такой-же?

и вообще, почему именно так, а не как я изначально написал?

Это сообщение отредактировал(а) viii - 22.1.2010, 13:49
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


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

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