blob: cdd48c62899d59f92195cd3df97eee76eee2b8b4 [file] [log] [blame]
package org.apache.xml.dtm.ref;
import org.apache.xml.dtm.ref.DTMDocumentImpl;
import org.apache.xml.dtm.ref.TestDTMNodes;
import org.xml.sax.helpers.AttributesImpl;
/**
* Tests the DTM by creating
*
* REWRITTEN to use SAX2 ContentHandler APIs -- original draft used
* an incomplete/incorrect version of SAX1 DocumentHandler, which is
* being phased out as quickly as we can possibly manage it.
*
* %TBD% I _think_ the SAX convention is that "no namespace" is expressed
* as "" rather than as null (which is the DOM's convention). What should
* DTM expect? What should it do with the other?
*/
public class TestDTM {
public static void main(String argv[]) {
String text;
/* <?xml version="1.0"?>
* <top>
* <A>
* <B hat="new" car="Honda" dog="Boxer">Life is good</B>
* </A>
* <C>My Anaconda<D/>Words</C>
* </top> */
DTMDocumentImpl doc = new DTMDocumentImpl(null, 0, null,
org.apache.xpath.objects.XMLStringFactoryImpl.getFactory());
try
{
doc.startDocument();
doc.startElement("", "top", "top", null);
doc.startElement("", "A", "A", null);
AttributesImpl atts = new AttributesImpl();
atts.addAttribute("", "", "hat", "CDATA", "new");
atts.addAttribute("", "", "car", "CDATA", "Honda");
atts.addAttribute("", "", "dog", "CDATA", "Boxer");
doc.startElement("","B","B", atts);
text="Life is good";
doc.characters(text.toCharArray(),0,text.length());
doc.endElement("","B","B");
doc.endElement("","A","A");
doc.startElement("","C","C", null);
text="My Anaconda";
doc.characters(text.toCharArray(),0,text.length());
doc.startElement("","D","D",null);
doc.endElement("","D","D");
text="Words";
doc.characters(text.toCharArray(),0,text.length());
doc.endElement("", "C", "C");
boolean BUILDPURCHASEORDER=false;
if(BUILDPURCHASEORDER)
{
int root, h, c1, c2, c3, c4, c1_text, c2_text, c3_text, c4_text;
doc.startElement(null,"PurchaseOrderList","PurchaseOrderList", null);
for (int i = 0; i < 10; i++) {
doc.startElement("","PurchaseOrder","PurchaseOrder", null);
doc.startElement("","Item","Item", null);
text="Basketball" + " - " + i;
doc.characters(text.toCharArray(),0,text.length());
doc.endElement("", "Item", "Item");
doc.startElement("","Description","Description", null);
// c2.createAttribute();
text="Professional Leather Michael Jordan Signatured Basketball";
doc.characters(text.toCharArray(),0,text.length());
doc.endElement("", "Description", "Description");
doc.startElement("","UnitPrice","UnitPrice", null);
text="$12.99";
doc.characters(text.toCharArray(),0,text.length());
doc.endElement("", "UnitPrice", "UnitPrice");
doc.startElement("","Quantity","Quantity", null);
text="50";
doc.characters(text.toCharArray(),0,text.length());
doc.endElement("", "Quantity", "Quantity");
doc.endElement("", "PurchaseOrder", "PurchaseOrder");
}
doc.endElement("", "PurchaseOrderList", "PurchaseOrderList");
} // if(BUILDPURCHASEORDER)
doc.endElement("", "top", "top");
doc.endDocument();
}
catch(org.xml.sax.SAXException e)
{
e.printStackTrace();
}
TestDTMNodes.printNodeTable(doc);
}
}