[osis-core] namespaces and complexTypes - MYSTERY SOLVED.
Todd Tillinghast
osis-core@bibletechnologieswg.org
Sun, 5 Oct 2003 19:05:44 -0600
Patrick,
The issue is not with the namespaces of the complex types but with the
namespaces of the elements declared inline within the complex types (not
as direct children of <schema>). Following is the explanation.
According to http://www.w3.org/TR/xmlschema-1 section 3.3.2 <element>
declarations are declared with the "target namespace" based on the
"targetNamespace" attribute in the parent <schema> element.
So in OSIS 1.5 we declared all the named elements we had in the
namespace http://www.bibletechnologies.net/2003/OSIS/namespace.
According to http://www.w3.org/TR/xmlschema-1 section 3.4.2
<complexType> declarations are declared with the "target namespace"
based on the "targetNamespace" attribute of the parent <schema> element.
(The same as for <element>)
This causes our ComplexType declarations to be in the
http://www.bibletechnologies.net/2003/OSIS/namespace, the <element>s
declared within the complexType elements are subject to the following
found in section 3.3.2.
--- Start Quote From 3.3.2 ---
If form is present and its .actual value. is qualified, or if form is
absent and the .actual value. of elementFormDefault on the <schema>
ancestor is qualified, then the .actual value. of the targetNamespace
[attribute] of the parent <schema> element information item, or .absent.
if there is none, otherwise .absent..
--- End Quote From 3.3.2 ---
THE ANSWER: So if we change elementFormDefault on <schema> from
elementFormDefault="unqualified" to elementFormDefault="qualified" all
of the <element>s not declared as direct children of <schema> will be
declared to be in the targetNamespace of
http://www.bibletechnologies.net/2003/OSIS/namespace.
I tried changing elementFormDefault to "qualified" and we seem to be
back to the same behavior we had with OSIS 1.5! (I changed only the
schema name in an OSIS 1.5 document to osisCore.1.9.xsd and it was
valid.)
I think solves the mystery of the namespaces.
Todd
> -----Original Message-----
> From: osis-core-admin@bibletechnologieswg.org [mailto:osis-core-
> admin@bibletechnologieswg.org] On Behalf Of Patrick Durusau
> Sent: Thursday, October 02, 2003 2:14 PM
> To: osis-core@bibletechnologieswg.org
> Subject: [osis-core] namespaces and complexTypes
>
> Todd,
>
> Think I have found the answer to the namespace and complexType
question.
>
> Background: Todd had a file that was valid in 1.5 but not in 1.6,
unless
> he used osis:osis on the outermost element.
>
> The difference appears to be (I am working with a very bad cold today
so
> may be spacing on something really important) that:
>
> > Complex types definitions are identified by their {name} and {target
> namespace}.
>
> see: http://www.w3.org/TR/xmlschema-1/ under, 3.4.1 The Complex Type
> Definition Schema Component.
>
> The Recommendation says in a note following that section:
>
> > he {name} of a complex type is not ipso facto the [(local) name] of
the
> element information items .validated. by that definition.
>
> So, it looks like complexType names are going to require the name
space
> declaration.
>
> Anyone with some cycles should check behind me to make sure this makes
> sense.
>
> Hope everyone is having a great day!
>
> Patrick
>
> --
> Patrick Durusau
> Director of Research and Development
> Society of Biblical Literature
> Patrick.Durusau@sbl-site.org
> Chair, V1 - Text Processing: Office and Publishing Systems Interface
> Co-Editor, ISO 13250, Topic Maps -- Reference Model
>
> Topic Maps: Human, not artificial, intelligence at work!
>
>
> _______________________________________________
> osis-core mailing list
> osis-core@bibletechnologieswg.org
> http://www.bibletechnologieswg.org/mailman/listinfo/osis-core