[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] A Systematic Approach to using Simple XML Vocabularies to Implement Larg
Note: This is a continuation of the thread: XML Vocabularies for Large Systems - 3 Philosophically Different Approaches I have changed the title to reflect the narrowed focus. GOAL My goal is for us (the xml-dev group) to collectively define a systematic approach to using simple XML vocabularies to implement large (complex) systems. Yesterday Len and Peter outlined two strategies. I would like to flesh out their ideas. TWO SIMPLE VOCABULARIES Let's consider a concrete example. Suppose that the following two simple vocabularies have been created: 1. Postal Address Vocabulary: <PostalAddress>, <Addressee>, <Street>, <City>, <State>, <Zipcode> 2. Book Vocabulary: <Book>, <Title>, <Author>, <Date>, <ISBN>, <Publisher> CHALLENGE Imagine that a large system requires an Invoice XML vocabulary for a Book purchase. How can the above simple XML vocabularies be used to implement this Invoice vocabulary? Here is an example of an Invoice: <Invoice> <PostalAddress id="RLC"> <Addressee>Roger L. Costello</Addressee> <Street>38 Boylston St.</Street> <City>Boston</City> <State>MA</State> <Zipcode>01320</Zipcode> </PostalAddress> <Book id="Bach"> <Title>Illusions</Title> <Author>Richard Bach</Author> <Date>1977</Date> <ISBN>0-440-34319-4</ISBN> <Publisher>Dell Publishing Co.</Publisher> </Book> </Invoice> THE LEN BULLARD APPROACH The approach that Len suggested was to use a "metadata framework" which ties together the simple vocabularies. Let me try to make concrete Len's suggested approach using the above Invoice example. First, use the simple vocabularies to provide the basic information: <PostalAddress id="RLC"> <Addressee>Roger L. Costello</Addressee> <Street>38 Boylston St.</Street> <City>Boston</City> <State>MA</State> <Zipcode>01320</Zipcode> </PostalAddress> <Book id="Bach"> <Title>Illusions</Title> <Author>Richard Bach</Author> <Date>1977</Date> <ISBN>0-440-34319-4</ISBN> <Publisher>Dell Publishing Co.</Publisher> </Book> Second, create a "metadata framework" which brings cohesion to the simple vocabularies: <Invoice> <PurchasedBy href="RLC"/> <PurchasedItem type="book" href="Bach"/> </Invoice> Len noted that Topic Maps might be used as the metadata framework. Len, have I characterized your ideas correctly? THE PETER HUNSBERGER APPROACH In the above Invoice example tags that are specific to postal addresses and books were used. A disadvantage is that many domain-specific simple vocabularies must be created. Peter's approach is to provide a "generic set of tags", coupled with a rich set of ways to relate the generic tags. Below I have attempted to define the Invoice using generic tags coupled with "relationship tags". Obviously I don't know what I am doing. Peter, would you fix this please? <Collection id="RLC"> <Object>Roger L. Costello</Object> <Object>38 Boylston St.</Object> <Object>Boston</Object> <Object>MA</Object> <Object>01320</Object> </Collection> <Collection id="Bach"> <Object>Illusions</Object> <Object>Richard Bach</Object> <Object>1977</Object> <Object>0-440-34319-4</Object> <Object>Dell Publishing Co.</Object> </Collection> <Collection> <Object href="RLC"/> <Relation>Purchased By</Relation> <Object href="Bach"> </Collection> What do you (xml-dev'ers) think about all this? Can you think of other approaches? /Roger
|
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
|