- From: Guillaume Rousse <rousse@ccr.jussieu.fr>
- Date: Wed, 5 Dec 2001 20:31:51 +0100
- To: xmlschema-dev@w3.org
I got the following XML fragment
<locations id="loc">
<country id="loc1">
<name xml:lang="fr">Argentine</name>
<name xml:lang="en">Argentina</name>
<name xml:lang="es">Argentina</name>
<name xml:lang="pr">Argentina</name>
<code>ARG</code>
</country>
...
wich triggers the following validation messages from xerces-j
[Error] cipa.xml:29361:29: General Schema Error: Element name is declared
with a type that is abstract. Use xsi:type to specify a non-abstract type.
[Error] cipa.xml:29361:29: Attribute "xml:lang" must be declared for element
type "name".
[Error] cipa.xml:29361:45: The content of element type "name" must match
"(history)".
It seems xerces-j try to validate the <name> element as the global
definition, not as the local one. And curiously, this conflict only happens
here, whereas i have plenty of other local name elements elsewhere...
Here are the global elements definition:
<element name="locations" minOccurs="0" maxOccurs="1">
<complexType>
<sequence>
<element ref="model:location" minOccurs="1" maxOccurs="unbounded"/>
</sequence>
<attribute name="id" type="model:KeyType"/>
</complexType>
</element>
<element name="name" type="model:NameType"/>
<element name="location" type="model:LocationType"/>
<element name="country" type="model:CountryType"
substitutionGroup="model:location"/>
And here are the type
<complexType name="NameType" abstract="true">
<annotation>
<documentation>A scientific name</documentation>
</annotation>
<sequence>
<element name="history" minOccurs="1" maxOccurs="1" nillable="true">
<complexType>
<sequence>
<element name="creation" type="model:NameCreationType"
minOccurs="1" maxOccurs="1" nillable="true"/>
<element name="modification" type="model:NameModificationType"
minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
</sequence>
<attribute name="id" type="model:KeyType"/>
</complexType>
<complexType name="LocationType" abstract="true">
<annotation>
<documentation>An abstract location</documentation>
</annotation>
<sequence>
<element name="name" type="model:InternationalizedStringType"
minOccurs="1" maxOccurs="unbounded" nillable="true"/>
</sequence>
<attribute name="id" type="model:KeyType"/>
</complexType>
<complexType name="CountryType">
<annotation>
<documentation>A country location</documentation>
</annotation>
<complexContent>
<extension base="model:LocationType">
<sequence>
<element name="code" type="string" minOccurs="1" maxOccurs="1"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="InternationalizedStringType">
<simpleContent>
<extension base="string">
<attribute ref="xml:lang" default="en"/>
</extension>
</simpleContent>
</complexType>
--
Guillaume Rousse <rousse@ccr.jussieu.fr>
GPG key http://lis.snv.jussieu.fr/~rousse/gpgkey.html
Received on Wednesday, 5 December 2001 14:33:01 UTC