W3C home > Mailing lists > Public > w3c-sgml-wg@w3.org > June 1997

XML-data and SGML

From: Rick Jelliffe <ricko@allette.com.au>
Date: Tue, 24 Jun 1997 02:34:20 +1000
Message-Id: <199706231632.CAA17553@jawa.chilli.net.au>
To: "Jean Paoli" <jeanpa@microsoft.com>, "'w3c-sgml-wg@w3.org'" <w3c-sgml-wg@w3.org>
Cc: "Andrew Layman" <andrewl@microsoft.com>, "Thomas Reardon" <thomasre@microsoft.com>, "Adam Bosworth" <adamb@microsoft.com>, "Hadi Partovi" <hadip@microsoft.com>
> From: Jean Paoli <jeanpa@microsoft.com>
  
> I am pleased to present XML-Data, a Position Paper from Microsoft.
> XML-Data is an application of XML for exchanging 
> structured data and metadata on the Internet. 
 

Here are the xml-data SCHEMA examples, expressed as usual SGML 
declarations: if the argument that you need XML-data because
you cannot do schemas, type-extension and schema-extension in
SGML, then I think you may be wrong, at least as far as the
examples.  

I may be wrong here, of course, because I have not 
gone through all the paper to see what else xml-data does in 
addition, but the SGML declarations seem far clearer than using
element tags. There can be good reasons to reinvent the wheel,
sometimes of course.

------------------------------------------ 
First, your schema is equivalent to the SGML declarations.
If you can build all the smarts to use your schema
conventions, there is only a small step to using standard
syntax.

   <!-- Here are all the element types, their contents,
       attributes and relations. -->
<!ELEMENT ORDER (SOLD-TO, SOLD-ON, ITEM* )>
  
<!ELEMENT SOLD-TO ( PERSON+ )>

<!ELEMENT SOLD-ON  (#PCDATA)>  
<!ATTLIST SOLD-ON
     lextype CDATA "DATE.ISO8061" #FIXED>  

<!ELEMENT PERSON ( LASTNAME, FIRSTNAME )"> 

<!ELEMENT LASTNAME (#PCDATA)>

<!ELEMENT FIRSTNAME (#PCDATA)>

<!ELEMENT PRICE (#PCDATA)> 

<!ELEMENT ITEM (PRICE, (BOOK | RECORD | COFFEE))>
  
<!ELEMENT BOOK (TITLE, AUTHOR)>
  
<!ELEMENT RECORD ( TITLE | ARTIST )>

<!ELEMENT SIZE  (#PCDATA)>

<!ELEMENT STYLE  (#PCDATA)>
 
<!ELEMENT COFFEE (SIZE, STYLE)>
 
<!ELEMENT TITLE  ( #PCDATA | COMPOSER )*>

<!ELEMENT AUTHOR  (#PCDATA)>

<!ELEMENT ARTIST  (#PCDATA)> 
   
<!ELEMENT COMPOSER (#PCDATA)>

-----------------------------------------------
To get the type extensability, use PEs. E.g  

<!ENTITY % artistic-work "TITLE">
<!ELEMENT artistic-work ( %artistic-work; )>

<!ENTITY % BOOK  ( %artistic-work;, AUTHOR )>
<!ELEMENT BOOK ( %BOOK; )>


----------------------------------------------
To get schema extensibility, in the original have:

<!ENTITY % order-extension "">
<!ENTITY % order " sold-to, sold-on ">
<!ELEMENT order ( %order;, %order-extension; )>

and in the prolog:

<!ENTITY % order-extension " item* ">

 

Rick Jelliffe
Received on Monday, 23 June 1997 12:33:47 EDT

This archive was generated by hypermail pre-2.1.9 : Wednesday, 24 September 2003 10:04:44 EDT