|
[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: XML Schemas: Best Practices
Martin Bryan wrote:
>
> what about;
>
> <complexType name="BookType">
> <all>
> <element name="Title" type="string"/>
> <element name="Author" type="string"/>
> <element name="Date" type="year"/>
> <element name="ISBN" type="string"/>
> <element name="Publisher" type="string"/>
> </all>
> </complexType>
>
> <complexType name="BookTypePlusReviewerType">
> <complexContent>
> <extension base="c:BookType" >
> <element name="Reviewer" type="string"/>
> </extension>
> </complexContent>
> </complexType>
That is a most clever idea Martin! Unfortunately, that will
not work. Extension always appends to the end, even if the
base type is an unordered set. With your definition of
BookTypePlusReviewerType you are creating the following sequence
of elements:
( {Title, Author, Date, ISBN, Publisher}, (Reviewer) )
That is, there is a sequence of a set followed by a single
element, Reviewer. Within the set the order of the elements
is irrelevant.
There is no way to avoid the Location Restricted Extensibility
problem when using the type substitutability mechanism. The only
option is to use the <any> element if you want to enable extensibility
at the beginning of a content model, or in the middle, etc. /Roger
P.S. Sorry for the brief replies. I am on the road with limited
Internet access.
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|
|||||||||

Cart








