Building a Document from Pieces

One way to use external general entities is to build a document from pieces, treating each piece as a general entity. Here's an example. In this case, I'm including an entity that refers to the file ch04_06.xml in my document:

Listing ch04_05.xml
 <?xml version = "1.0" standalone="no"?> <!DOCTYPE DOCUMENT [ <!ELEMENT DOCUMENT (CUSTOMER)*> <!ELEMENT CUSTOMER (NAME,DATE,ORDERS)> <!ELEMENT NAME (LAST_NAME,FIRST_NAME)> <!ELEMENT LAST_NAME (#PCDATA)> <!ELEMENT FIRST_NAME (#PCDATA)> <!ELEMENT DATE (#PCDATA)> <!ELEMENT ORDERS (ITEM)*> <!ELEMENT ITEM (PRODUCT,NUMBER,PRICE)> <!ELEMENT PRODUCT (#PCDATA)> <!ELEMENT NUMBER (#PCDATA)> <!ELEMENT PRICE (#PCDATA)>  <!ENTITY data SYSTEM "ch04_06.xml">  ]> <DOCUMENT>  &data;  </DOCUMENT> 

The file ch04_06.xml itself holds the actual data for the document:

Listing ch04_06.xml
 <CUSTOMER>     <NAME>         <LAST_NAME>Smith</LAST_NAME>         <FIRST_NAME>Sam</FIRST_NAME>     </NAME>     <DATE>October 15, 2003</DATE>     <ORDERS>         <ITEM>             <PRODUCT>Tomatoes</PRODUCT>             <NUMBER>8</NUMBER>             <PRICE>.25</PRICE>         </ITEM>         <ITEM>             <PRODUCT>Oranges</PRODUCT>             <NUMBER>24</NUMBER>             <PRICE>.98</PRICE>         </ITEM>     </ORDERS> </CUSTOMER> <CUSTOMER>     <NAME>         <LAST_NAME>Jones</LAST_NAME>         <FIRST_NAME>Polly</FIRST_NAME>     </NAME>     <DATE>October 20, 2003</DATE>     <ORDERS>         <ITEM>             <PRODUCT>Bread</PRODUCT>             <NUMBER>12</NUMBER>             <PRICE>.95</PRICE>         </ITEM>         <ITEM>             <PRODUCT>Apples</PRODUCT>             <NUMBER>6</NUMBER>             <PRICE>.50</PRICE>         </ITEM>     </ORDERS> </CUSTOMER> <CUSTOMER>     <NAME>         <LAST_NAME>Weber</LAST_NAME>         <FIRST_NAME>Bill</FIRST_NAME>     </NAME>     <DATE>October 25, 2003</DATE>     <ORDERS>         <ITEM>             <PRODUCT>Asparagus</PRODUCT>             <NUMBER>12</NUMBER>             <PRICE>.95</PRICE>         </ITEM>         <ITEM>             <PRODUCT>Lettuce</PRODUCT>             <NUMBER>6</NUMBER>             <PRICE>.50</PRICE>         </ITEM>     </ORDERS> </CUSTOMER> 

In this way, you can put documents together from various pieces, choosing the pieces you want.



Real World XML
Real World XML (2nd Edition)
ISBN: 0735712867
EAN: 2147483647
Year: 2005
Pages: 440
Authors: Steve Holzner

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net