Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   XML validation troubles (http://forum.oszone.net/showthread.php?t=29438)

Sharkky 23-09-2004 23:07 203907

Есть проблема - я не понимаю, что не правильно в приведённых ниже простых примерах.
Xml-документ создан на основе схемы, которая использует другую схему.
Я пытался validate этот пример парсерами разных редакторов (IntelliJ Idea, XMLSpy and .Net XML Editor). Все говорят, что есть ошибка, но все указывают в разные места и пишут разные слова.
Вот пример:

simplebase.xsd:
Код:


1 * <xsi:schema targetNamespace="http://my.org/SimpleBase"
2 *                        xmlns:xsi="http://www.w3.org/2001/XMLSchema"
3 *                        xmlns="http://my.org/SimpleBase">
4 *        <xsi:element name="ElementOfBaseSchema" type="TBaseElement"/>
5 *        <xsi:complexType name="TBaseElement">
6 * *                <xsi:sequence>
7 *                        <xsi:element name="BaseFirst" type="xsi:string"/>
8 *                        <xsi:element name="BaseSecond" type="xsi:string"/>
9 *                </xsi:sequence>
10 *        </xsi:complexType>
11 *</xsi:schema>

dependent.xsd:
Код:


1 * <xsi:schema targetNamespace="http://my.org/Dependent"
2 *          * * * * *xmlns:base="http://my.org/SimpleBase"
3 * *        * * * * *xmlns:xsi="http://www.w3.org/2001/XMLSchema">
4 * *        <xsi:import namespace="http://my.org/SimpleBase" schemaLocation="D:\testdir\implebase.xsd"/>
5 *        <xsi:element name="DependentElement">
6 *                <xsi:complexType>
7 * *                        <xsi:sequence>
8 *                                <xsi:element name="BaseUsage" type="base:TBaseElement"/>
9 * *                        </xsi:sequence>
10 *                </xsi:complexType>
11 *        </xsi:element>
12 * </xsi:schema>

test.xml:
Код:


1 *<DependentElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2 *                                        xmlns="http://my.org/Dependent"
3 *                                        xmlns:base="http://my.org/SimpleBase"
4 *                                schemaLocation="D:\testdir\dependent.xsd ">
5 *        <BaseUsage>
6 *                <base:BaseFirst>First element in BaseElement sequence </base:BaseFirst>
7 *        </BaseUsage>
8 * </DependentElement>

IntelliJ Idea говорит, что ошибка находиться на линии 6 в файле test.xml (base:BaseFirst is not allowed here).
XMLSpy говорит, что неправильна 4 линия (Unable to determine location of schema components sets).
XML редактор dotNet'a считает, что неверна dependent.xsd - "Document Element tag xsi:schema must identify qualifier for the targetNamespace "http://my.org/Dependent""

Очень хочется, чтобы кто-нибудь объяснил, что же в действительности не так, и почему!!!

Vlad Drakula 25-09-2004 21:12 203908

Sharkky
если я правильно помнь спецификацию, то XML файл должен начинаться с нечто такого:

<?xml version="1.0" encoding="windows-1251" ?>


Время: 07:07.

Время: 07:07.
© OSzone.net 2001-