[
Lists Home |
Date Index |
Thread Index
]
- From: ht@cogsci.ed.ac.uk (Henry S. Thompson)
- To: Brett McLaughlin <bmclaugh@algx.net>
- Date: 05 Jan 2000 23:41:00 +0000
Brett McLaughlin <bmclaugh@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.
> 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.
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@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@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@ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)
|