W3C home > Mailing lists > Public > www-xml-schema-comments@w3.org > January to March 2000

XML Schemas: lost "open content models"?

From: Roger L. Costello <costello@mitre.org>
Date: Thu, 24 Feb 2000 15:59:38 -0500
Message-ID: <38B59BBA.C970B88A@mitre.org>
To: www-xml-schema-comments@w3c.org, xml-dev@xml.org
CC: costello@mitre.org, "Schneider,John C." <jcs@mitre.org>, "Cokus,Michael S." <msc@mitre.org>, "Wang,David" <dwang@mitre.org>
Hi Folks,

In an earlier incarnation of the XML Schema spec it allowed you to state
that the content of an element is "open".  

My question is:  What happened to it?  Is it there in the current spec,
but under a different guise? Or, if it's not there, is it coming back in
the next version of the spec?

Below is some background on "open content models" for those who are
interested.  /Roger

Definition of "open content model": if an element is declared "open" in
the schema then in the instance document the element" can contain child
elements not listed in the schema.  For example, consider this XML
Schmema:

      <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"/>
           </type>
      </element>

This element declaration mandates that in an instance document a Book
element must contain five child elements - Title, Author, Date, ISBN,
and Publisher.  For example:

     <Book>
         <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>
     </Book>

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:

     <Book>
         <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>

An XML Schema parser will flag this instance document as invalid.  
Ideally, however, we would like for the XML Schema parser to ignore
elements that are not defined in the schema.  Thus, in this example it
would ignore the <AuthorsWebPage> element.  Applications that know how
to deal with <AuthorsWebPage> would have the benefit of having a
hyperlink to the author's web page.

This ability to add elements in the instance document beyond those
declared in the schema (and having the XML Schema parser ignore them) is
what is mean't by an "open content model".  Declaring the Book element
to be "open" would enable instance documents to add elements not
specified in the schema.
Received on Thursday, 24 February 2000 15:58:03 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Sunday, 6 December 2009 18:12:46 GMT