Re: XML Schemas: lost "open content models"?

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.

---------------------------------------------------------------------------------------------------------

I was under the impression that in order to include elements not
mentioned in the original schema, even with an open content model
explicitly declared (if such a declaration exists), they must be
assigned to a specific namespace (either with a prefix or in scope).
Is this indeed the case?
Perhaps I have distorted your definition of "open content model."

-Matt

Received on Thursday, 24 February 2000 16:47:14 UTC