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""
Очень хочется, чтобы кто-нибудь объяснил, что же в действительности не так, и почему!!!
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""
Очень хочется, чтобы кто-нибудь объяснил, что же в действительности не так, и почему!!!