Basic XMLSchema questions

Brett McLaughlin bmclaugh at algx.net
Thu Jan 6 00:22:46 GMT 2000



"Henry S. Thompson" wrote:
> 
> Brett McLaughlin <bmclaugh at algx.net> writes:
> 
> > Alan Santos wrote:
> > >
> > > > Dah!  I'm asleep today... the reason you need <type> is because you can
> > > > specify explicit named types:
> > > >
> > > > <type name="myType">
> > > >   <element name="nestedElement" type="string" />
> > > >   <element name="anotherNestedElement" type="integer" />
> > > > </type>
> > > >
> > > > <element name="myElement" type="myType" />
> > > >
> > > > There is no way without the <type> element construct to specify a name
> > > > for a non-primitive data type without really blowing away any idea of
> > > > congruity across the element space.  So we have the "type" element.
> > > >
> > > > Make sense?
> > > >
> > >
> > > Yes it does now.
> > >
> > > Syntactically it appears to be legal to simply have <type> on it's own,
> > > outside of any elements.  Is it simply a stylistic difference to define it
> > > inside another element?
> >
> > Nope.  This:
> >
> > <element name="element1">
> >   <type>
> >     <element name="element2" type="string" />
> >   </type>
> > </element>
> >
> > is an implicit element type.  It is used right there and not
> > referenceable by any other element.
> 
> Right.  I'd call it an anonymous complex type.
> 
> > This:
> >
> > <type name="type1">
> >   <element name="element2" type="string" />
> > </type>
> >
> > is an explicit element type and is referenceable by other elements:
> >
> > <element name="element1" type="type1" />
> 
> Right.  I'd call it a top-level or named complex type.
> 
> > This:
> >
> > <type>
> >   <element name="element2" type="String" />
> > </type>
> >
> > is absolutely useless, as it is not referenceable by any other element,
> > and is not implicitly assigned to any other element.
> 
> Furthermore, it's not allowed:  top-level types MUST have a name
> attribute.  The schema for schemas expresses this constraint.

Good, this is new in the 12-17 draft, right?  (I was great on the old
one, am getting the new one down ASAP...thanks for help).

> 
> > Finally, the last permutation:
> >
> > <element name="element1">
> >   <type name="type1">
> >     <element name="element2" type="string" />
> >   </type>
> > </element>
> >
> > is legal, and the type is referenceable by other elements, but is bad
> > form (IMHO).  If you have a type that will be used multiple times, put
> > it on its own (explicit type).  If it is only used once, use an implicit
> > type within the element definition.  Things like this are very
> > confusing.
> 
> First real misunderstanding:  this is NOT allowed:  only top-level
> types can have names.  Again, the schema for schemas expresses this
> constraint.

Again, good.  I know you could do this in archetypes under some parsers
(Schema-valid).  Happy to see this was cleared up.

-Brett

> 
> ht
> --
>   Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
>      2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
>             Fax: (44) 131 650-4587, e-mail: ht at cogsci.ed.ac.uk
>                      URL: http://www.ltg.ed.ac.uk/~ht/

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo at ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)





More information about the Xml-dev mailing list