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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема со схемой, key/keyrefference 
:(
    Опции темы
iveyk
Дата 15.4.2009, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здраствуйте, помогите пожалуйста разобратся со схемой, валидатор (Altova XMLSpy) пишет что сама схема в порядке, но потом когда пробую проверить, соответсвтует ли xml документ схеме, получаю ошибку: The selector 'sl:prodavec' of identity constraint 'sl:IDProdavca' must evaluate to a node set.
Вот схема:
Код

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sl="http://stas.Magazin.ru/seller" xmlns="http://stas.Magazin.ru/seller" targetNamespace="http://stas.Magazin.ru/seller" elementFormDefault="qualified">
    <xsd:element name="Magazin" type="personal">
        <xsd:key name="IDProdavca">
            <xsd:selector xpath="sl:prodavec"/>
            <xsd:field xpath="@id"/>
        </xsd:key>
        <xsd:keyref name="ssylkaNaProdavca" refer="IDProdavca">
            <xsd:selector xpath="sl:upravliajuscij"/>
            <xsd:field xpath="@id"/>
        </xsd:keyref>
    </xsd:element>
    <xsd:complexType name="personal">
        <xsd:sequence>
            <xsd:element ref="sl:prodavec" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="prodavec" type="sl:lichnost"/>
    <xsd:complexType name="lichnost">
        <xsd:sequence>
            <xsd:element ref="sl:imia"/>
            <xsd:element ref="sl:familija"/>
            <xsd:element ref="sl:kod"/>
            <xsd:element ref="sl:prodajot"/>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:integer" use="required"/>
    </xsd:complexType>
    <xsd:element name="imia" type="xsd:NCName"/>
    <xsd:element name="familija" type="xsd:NCName"/>
    <xsd:element name="kod" type="sl:KOD"/>
    <xsd:simpleType name="KOD">
        <xsd:restriction base="xsd:string">
            <xsd:length value="11"/>
            <xsd:pattern value="[0-9]{11}"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:element name="prodajot">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="sl:telefon" maxOccurs="unbounded"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="telefon">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="sl:proizvoditel"/>
                <xsd:element ref="sl:model"/>
                <xsd:element ref="sl:cena"/>
                <xsd:element ref="sl:dataProizvodstva"/>
                <xsd:choice minOccurs="0">
                    <xsd:element ref="sl:masa"/>
                </xsd:choice>
            </xsd:sequence>
            <xsd:attribute name="tip" type="xsd:NCName" use="required"/>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="proizvoditel" type="xsd:string"/>
    <xsd:element name="model" type="xsd:string"/>
    <xsd:element name="cena" type="xsd:decimal"/>
    <xsd:element name="dataProizvodstva" type="xsd:date"/>
    <xsd:element name="masa" type="xsd:decimal"/>
    <xsd:simpleType name="masa">
        <xsd:restriction base="xsd:decimal">
            <xsd:minExclusive value="0"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="polProdavca">
        <xsd:list>
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="muz"/>
                    <xsd:enumeration value="zen"/>
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:list>
    </xsd:simpleType>
    <xsd:complexType name="lichnostSPolom">
        <xsd:complexContent>
            <xsd:extension base="sl:lichnost">
                <xsd:sequence>
                    <xsd:element ref="sl:pol"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:element name="pol" type="sl:polProdavca"/>
    <xsd:complexType name="MeniuJazyk">
        <xsd:simpleContent>
            <xsd:extension base="xsd:token">
                <xsd:attribute name="jazyk" type="xsd:language"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <xsd:complexType name="MeniuJazykData">
        <xsd:simpleContent>
            <xsd:extension base="sl:MeniuJazyk">
                <xsd:attribute name="data" type="xsd:date"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
</xsd:schema>




хмл документ:
Код

<?xml version="1.0" encoding="UTF-8"?>
<sl:Magazin xsi:schemaLocation="http://stas.Magazin.ru/seller 1.xsd" xmlns:sl="http://stas.Magazin.ru/seller" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <sl:prodavec id="123547">
        <sl:imia>Andrej</sl:imia>
        <sl:familija>Kruglov</sl:familija>
        <sl:kod>65124587451</sl:kod>
        <sl:prodajot>
            <telefon tip="novyj" xmlns="http://stas.Magazin.ru/seller">
                <proizvoditel>Nokia</proizvoditel>
                <model>N95</model>
                <cena>649.50</cena>
                <dataProizvodstva>2008-08-17</dataProizvodstva>
                <masa>250</masa>
            </telefon>
            <telefon tip="novyj" xmlns="http://stas.Magazin.ru/seller">
                <proizvoditel>Nokia</proizvoditel>
                <model>6233</model>
                <cena>451</cena>
                <dataProizvodstva>2008-03-21</dataProizvodstva>
                <masa>250</masa>
            </telefon>
            <telefon tip="polzovanyj" xmlns="http://stas.Magazin.ru/seller">
                <proizvoditel>Nokia</proizvoditel>
                <model>N75</model>
                <cena>520.99</cena>
                <dataProizvodstva>2008-10-10</dataProizvodstva>
                <masa>250</masa>
            </telefon>
        </sl:prodajot>
    </sl:prodavec>
    <sl:prodavec id="124158">
        <sl:imia>Viktor</sl:imia>
        <sl:familija>familijanis</sl:familija>
        <sl:kod>65214521458</sl:kod>
        <sl:prodajot>
            <telefon tip="polzovanyj" xmlns="http://stas.Magazin.ru/seller">
                <proizvoditel>samsung</proizvoditel>
                <model>I780</model>
                <cena>700</cena>
                <dataProizvodstva>2008-11-11</dataProizvodstva>
            </telefon>
            <telefon tip="polzovanyj" xmlns="http://stas.Magazin.ru/seller">
                <proizvoditel>samsung</proizvoditel>
                <model>B220</model>
                <cena>104</cena>
                <dataProizvodstva>2007-04-15</dataProizvodstva>
            </telefon>
        </sl:prodajot>
    </sl:prodavec>
    <sl:prodavec id="126584">
        <sl:imia>Anton</sl:imia>
        <sl:familija>Antonov</sl:familija>
        <sl:kod>63210254758</sl:kod>
        <sl:prodajot>
            <telefon tip="novyj" xmlns="http://stas.Magazin.ru/seller">
                <proizvoditel>sonyericsson</proizvoditel>
                <model>C702</model>
                <cena>589.99</cena>
                <dataProizvodstva>2008-06-01</dataProizvodstva>
            </telefon>
            <telefon tip="novyj" xmlns="http://stas.Magazin.ru/seller">
                <proizvoditel>sonyericsson</proizvoditel>
                <model>W980i</model>
                <cena>1100</cena>
                <dataProizvodstva>2008-12-01</dataProizvodstva>
            </telefon>
        </sl:prodajot>
    </sl:prodavec>
</sl:Magazin>



хмл код, сгенерированный по схеме программой:

Код

<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSpy v2007 (http://www.altova.com)-->
<sl:Magazin xsi:schemaLocation="http://stas.Magazin.ru/seller 1.xsd" xmlns:sl="http://stas.Magazin.ru/seller" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <sl:prodavec id="0">
        <sl:imia>NCName</sl:imia>
        <sl:familija>NCName</sl:familija>
        <sl:kod>00000000000</sl:kod>
        <sl:prodajot>
            <sl:telefon tip="NCName">
                <sl:proizvoditel>String</sl:proizvoditel>
                <sl:model>String</sl:model>
                <sl:cena>0.0</sl:cena>
                <sl:dataProizvodstva>1967-08-13</sl:dataProizvodstva>
                <sl:masa>0.0</sl:masa>
            </sl:telefon>
            <sl:telefon tip="NCName">
                <sl:proizvoditel>String</sl:proizvoditel>
                <sl:model>String</sl:model>
                <sl:cena>0.0</sl:cena>
                <sl:dataProizvodstva>1967-08-13</sl:dataProizvodstva>
                <sl:masa>0.0</sl:masa>
            </sl:telefon>
        </sl:prodajot>
    </sl:prodavec>
    <sl:prodavec id="0">
        <sl:imia>NCName</sl:imia>
        <sl:familija>NCName</sl:familija>
        <sl:kod>00000000000</sl:kod>
        <sl:prodajot>
            <sl:telefon tip="NCName">
                <sl:proizvoditel>String</sl:proizvoditel>
                <sl:model>String</sl:model>
                <sl:cena>0.0</sl:cena>
                <sl:dataProizvodstva>1967-08-13</sl:dataProizvodstva>
                <sl:masa>0.0</sl:masa>
            </sl:telefon>
            <sl:telefon tip="NCName">
                <sl:proizvoditel>String</sl:proizvoditel>
                <sl:model>String</sl:model>
                <sl:cena>0.0</sl:cena>
                <sl:dataProizvodstva>1967-08-13</sl:dataProizvodstva>
                <sl:masa>0.0</sl:masa>
            </sl:telefon>
        </sl:prodajot>
    </sl:prodavec>
</sl:Magazin>


Сгенерированный хмл документ тоже непроходит валидауию :(
Подскажите пожалуйста, что неправильно и как можно исправить этот key и keyref, или подскажите, какой можно придумать ключ для данного хмл документа?
С Уважением, Станислав.

Это сообщение отредактировал(а) iveyk - 15.4.2009, 21:23
PM MAIL   Вверх
iveyk
Дата 16.4.2009, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ктонибуть может чтонибуть подсказать? smile  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


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

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