- From: Rick Jelliffe <ricko@allette.com.au>
- Date: Tue, 24 Jun 1997 02:34:20 +1000
- 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 UTC