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