|
[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: XML Schemas: lost "open content models"?
"Roger L. Costello" wrote:
>
> In an earlier incarnation of the XML Schema spec it allowed you to state
> that the content of an element is "open".
AFAIK, the open content model is replaced by putting <any> into the type.
> Suppose that, in the instance document, you wanted to add another child
> element of Book - perhaps you would like to add a link to Richard Bach's
> web page:
You can do this in several ways:
1. allowing <any> at the end of the Book type definition
2. derive a new element from Book (e.g.
<element name="XBook" equivClass="Book">...)
3. derive a new type from the Book type definition
1. has the disadvantage that you can put anything into the
<Book> element and thus there is no possibility for e.g. an
editor to determine if it makes sense.
2 and 3 have the disadvantage that you would need to use
a different, extended schema, but AFAIK there is no way
for parsers expecting schema X to determine that schema
Y is a compatible extension of schema X.
1.:
<element name="Book">
<type>
<element name="Title" type="string"/>
<element name="Author" type="string"/>
<element name="Date" type="string"/>
<element name="ISBN" type="string"/>
<element name="Publisher" type="string"/>
<any minOccurs="0" maxOccurs="*"/>
</type>
</element>
2 and 3 would require that Book has a named
type separated from the Book element
definition:
<type name="Book">
<element name="Title" type="string"/>
<element name="Author" type="string"/>
<element name="Date" type="string"/>
<element name="ISBN" type="string"/>
<element name="Publisher" type="string"/>
</type>
<element name="Book" type="Book"/>
The schema extension for 2. would look like:
<element name="XBook" equivClass="Book">
<type source="Book" derivedBy="extension">
<element name="AuthorsWebPage">
....
</element>
</type>
</element>
usage example:
<XBook>
<Title>Illusions The Adventures of a Reluctant Messiah</Title>
<Author>Richard Bach</Author>
<Date>1977</Date>
<ISBN>0-440-34319-4</ISBN>
<Publisher>Dell Publishing Co.</Publisher>
<AuthorsWebPage xlink:href="http://www.rbach.com"/>
</XBook>
The schema extension for 3. would look like:
<type name="XBook" source="Book" derivedBy="extension">
<element name="AuthorsWebPage">
</element>
</type>
usage example:
<Book xsi:type="XBook">
<Title>Illusions The Adventures of a Reluctant Messiah</Title>
<Author>Richard Bach</Author>
<Date>1977</Date>
<ISBN>0-440-34319-4</ISBN>
<Publisher>Dell Publishing Co.</Publisher>
<AuthorsWebPage xlink:href="http://www.rbach.com"/>
</Book>
Best regards
Stefan
--
Stefan Haustein
University of Dortmund
Computer Science VIII
www-ai.cs.uni-dortmund.de
***************************************************************************
This is xml-dev, the mailing list for XML developers.
To unsubscribe, mailto:majordomo@x...&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/threads.html
***************************************************************************
|
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








