PDA

Показать полную графическую версию : XML validation troubles


Sharkky
23-09-2004, 23:07
Есть проблема - я не понимаю, что не правильно в приведённых ниже простых примерах.
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
Sharkky
если я правильно помнь спецификацию, то XML файл должен начинаться с нечто такого:

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




© OSzone.net 2001-2012