Miscellaneous questions

I'm a newbie in XML Schema definitions, and I have some questions about it.
I'm sorry if the answers are trivial.

1- When we define more than one global element inside a schema, does it 
mean
that an XML instance validated by this schema may have different root 
elements
according to the defined global element.
Concretely, if I declare a schema
<schema>
	<element name="A" type="string"/>
	<element name="B" type="string"/>
</schema>
are both following document instances valid :

<?xml version="1.0"?>
<!-- doc1.xml -->
<A>value</A>

<?xml version="1.0"?>
<!-- doc2.xml -->
<B>value</B>

or, just the first one ?

2-This schema defined below is validated by the W3C xmlschema-check CGI :

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/1999/XMLSchema">
	<xsd:element name="root">
		<xsd:complexType>
			 <xsd:element name="B" type="xsd:string" minOccurs="0"/>
				<xsd:choice>
					<xsd:element name="A" type="xsd:integer"/>
					<xsd:element name="B" type="xsd:integer"/>
				</xsd:choice>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>

but, how can a parser do the difference between the use of the first 
element B and the use  the second element B which is defined into the 
choice group.
I thought this schema was not correct, due to an ambiguity.

3- This question is about targetNamespace and the <import> element

Suppose I have a schema which defined a complexType with a targetNamespace 
imported_schema_ns:

schema imp_schema.xsd:
<xsd:schema targetNamespace="imported_schema_ns">
	<xsd:complexType name="animal">
		<xsd:element name="name" type="xsd:string"/>
	</xsd:complexType>
</xsd:schema>

This schema is imported inside a main schema main_schema.xsd, which have a 
different targetNamespace main_schema_ns:

<xsd:schema targetNamespace="main_schema_ns"
	xmlns:imp="imported_schema_ns">
        <xsd:import namespace="imported_schema_ns"
schemaLocation="imp_schema.xsd"/>
	<xsd:element name="lion" type="imp:animal"/>
</xsd:schema>

Is the following XML document valid:

<x:MainTag xmlns:x="main_schema_ns"
	xsi:schemaLocation="main_schema_ns main_schema.xsd">
	<x:lion><x:name>Elsa</x:name></x:lion>
</x:MainTag>

or is this one better:

<x:MainTag xmlns:x="main_schema_ns"
	xmlns:y="imported_schema_ns"
	xsi:schemaLocation="main_schema_ns main_schema.xsd
				imported_schema_ns imp_schema.xsd">
	<x:lion><y:name>Elsa</y:name></x:lion>
</x:MainTag>

Thanks for the answers,

Regards,

Didier Perhirin
CosmosBay

Received on Tuesday, 13 June 2000 09:59:01 UTC