You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlbeans.apache.org by kk...@apache.org on 2005/01/05 22:09:13 UTC
svn commit: r124274 - in xmlbeans/trunk/test/perf: . bin cases cases/xsd src src/org src/org/apache src/org/apache/xmlbeans src/org/apache/xmlbeans/test src/org/apache/xmlbeans/test/performance src/org/apache/xmlbeans/test/performance/castor src/org/apache/xmlbeans/test/performance/jaxb src/org/apache/xmlbeans/test/performance/jibx src/org/apache/xmlbeans/test/performance/jibx/binding src/org/apache/xmlbeans/test/performance/utils src/org/apache/xmlbeans/test/performance/v1 src/org/apache/xmlbeans/test/performance/v2 src/org/apache/xmlbeans/test/performance/xerces src/org/apache/xmlbeans/test/tools
Author: kkrouse
Date: Wed Jan 5 13:09:10 2005
New Revision: 124274
URL: http://svn.apache.org/viewcvs?view=rev&rev=124274
Log:
Initial checkin of perf benchmark tools.
Contributed by Jamie Zyskowski
Added:
xmlbeans/trunk/test/perf/
xmlbeans/trunk/test/perf/bin/
xmlbeans/trunk/test/perf/bin/castor.bat (contents, props changed)
xmlbeans/trunk/test/perf/bin/castor.properties
xmlbeans/trunk/test/perf/bin/castor.sh
xmlbeans/trunk/test/perf/bin/jaxb.bat
xmlbeans/trunk/test/perf/bin/jaxb.sh
xmlbeans/trunk/test/perf/bin/jibx.bat (contents, props changed)
xmlbeans/trunk/test/perf/bin/jibx.sh
xmlbeans/trunk/test/perf/bin/run_all.bat
xmlbeans/trunk/test/perf/bin/run_all.sh
xmlbeans/trunk/test/perf/bin/run_castor.bat
xmlbeans/trunk/test/perf/bin/run_castor.sh
xmlbeans/trunk/test/perf/bin/run_jaxb.bat
xmlbeans/trunk/test/perf/bin/run_jaxb.sh
xmlbeans/trunk/test/perf/bin/run_jibx.bat
xmlbeans/trunk/test/perf/bin/run_jibx.sh
xmlbeans/trunk/test/perf/bin/run_v1.bat
xmlbeans/trunk/test/perf/bin/run_v1.sh
xmlbeans/trunk/test/perf/bin/run_v2.bat
xmlbeans/trunk/test/perf/bin/run_v2.sh
xmlbeans/trunk/test/perf/bin/run_xerces.bat
xmlbeans/trunk/test/perf/bin/run_xerces.sh
xmlbeans/trunk/test/perf/bin/v1.bat (contents, props changed)
xmlbeans/trunk/test/perf/bin/v1.sh
xmlbeans/trunk/test/perf/bin/v2.bat (contents, props changed)
xmlbeans/trunk/test/perf/bin/v2.sh
xmlbeans/trunk/test/perf/bin/xerces.bat
xmlbeans/trunk/test/perf/bin/xerces.sh
xmlbeans/trunk/test/perf/build.xml
xmlbeans/trunk/test/perf/cases/
xmlbeans/trunk/test/perf/cases/xsd/
xmlbeans/trunk/test/perf/cases/xsd/non-primitives.xsd
xmlbeans/trunk/test/perf/cases/xsd/perf-results.xsd
xmlbeans/trunk/test/perf/cases/xsd/primitives.xsd
xmlbeans/trunk/test/perf/cases/xsd/purchase-order-1.xml
xmlbeans/trunk/test/perf/cases/xsd/purchase-order-2.xml
xmlbeans/trunk/test/perf/cases/xsd/purchase-order-3.xml
xmlbeans/trunk/test/perf/cases/xsd/purchase-order-4.xml
xmlbeans/trunk/test/perf/cases/xsd/purchase-order-5.xml
xmlbeans/trunk/test/perf/cases/xsd/purchase-order-6.xml
xmlbeans/trunk/test/perf/cases/xsd/purchase-order-7.xml
xmlbeans/trunk/test/perf/cases/xsd/purchase-order-jibxbinding.xml
xmlbeans/trunk/test/perf/cases/xsd/purchase-order.xsd
xmlbeans/trunk/test/perf/env.bat (contents, props changed)
xmlbeans/trunk/test/perf/env.sh (contents, props changed)
xmlbeans/trunk/test/perf/results.xml
xmlbeans/trunk/test/perf/src/
xmlbeans/trunk/test/perf/src/org/
xmlbeans/trunk/test/perf/src/org/apache/
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/NPrimTopDownCastor.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POReadAllCastor.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POReadOneCastor.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POTopDownCastor.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POTopDownSaveCastor.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/PrimTopDownCastor.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/NPrimTopDownJaxb.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POReadAllJaxb.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POReadOneJaxb.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POTopDownJaxb.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POTopDownSaveJaxb.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/PrimTopDownJaxb.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/POReadAllJibx.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/POReadOneJibx.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/Customer.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/JibxPurchaseOrder.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/Lineitem.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/Shipper.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/utils/
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/utils/Constants.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/utils/PerfUtil.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/BisLoadV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetAttributeV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetElementV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetSetGetAttributeV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetSetGetElementV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorWalkV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/DomWalkNLV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/DomWalkV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/NPrimTopDownV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POGetCustNameV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POGetSetGetCustNameV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POReadAllV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POReadOneV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POTopDownSaveV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POTopDownV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POValidateXmlObjV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/PrimTopDownV1.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/BisLoadV2.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetAttributeV2.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetElementV2.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetSetGetAttributeV2.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetSetGetElementV2.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorWalkV2.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/DomWalkNLV2.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/DomWalkV2.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/NPrimTopDownV2.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POReadAllV2.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POReadOneV2.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POTopDownSaveV2.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POTopDownV2.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POValidateXmlObjV2.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/PrimTopDownV2.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/BisLoadXercesDom.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/BisLoadXercesSax.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/DomWalkNLXerces.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/DomWalkXerces.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadAllXercesDom.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadAllXercesSax.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadOneXercesDom.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadOneXercesSax.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POTopDownXercesDom.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POTopDownXercesSax.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POValidateXerces.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/tools/
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/tools/PerfResultTask.java
xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/tools/PerfResultUtil.java
Added: xmlbeans/trunk/test/perf/bin/castor.bat
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/castor.bat?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/castor.bat Wed Jan 5 13:09:10 2005
@@ -0,0 +1 @@
+java -Xmx64m -Xbootclasspath/p:%XMLBEANS_PERFROOT%\3rdparty\xerces\xerces-2_6_2\xml-apis.jar;%XMLBEANS_PERFROOT%\3rdparty\xerces\xerces-2_6_2\xercesImpl.jar -classpath %XMLBEANS_PERFROOT%\build;%XMLBEANS_PERFROOT%\schema_build\castor-purchase-order.jar;%XMLBEANS_PERFROOT%\schema_build\castor-primitives.jar;%XMLBEANS_PERFROOT%\schema_build\castor-non-primitives.jar;%XMLBEANS_PERFROOT%\3rdparty\castor\castor-0.9.5.4.jar -DPERF_ROOT=%XMLBEANS_PERFROOT% org.apache.xmlbeans.test.performance.castor.%*
Added: xmlbeans/trunk/test/perf/bin/castor.properties
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/castor.properties?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/castor.properties Wed Jan 5 13:09:10 2005
@@ -0,0 +1 @@
+org.exolab.castor.marshalling.validation=false
Added: xmlbeans/trunk/test/perf/bin/castor.sh
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/castor.sh?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/castor.sh Wed Jan 5 13:09:10 2005
@@ -0,0 +1,3 @@
+#/bin/sh
+
+java -Xmx64m -Xbootclasspath/p:$XMLBEANS_PERFROOT/3rdparty/xerces/xerces-2_6_2/xml-apis.jar:$XMLBEANS_PERFROOT/3rdparty/xerces/xerces-2_6_2/xercesImpl.jar -classpath $XMLBEANS_PERFROOT/build:$XMLBEANS_PERFROOT/schema_build/castor-purchase-order.jar:$XMLBEANS_PERFROOT/schema_build/castor-primitives.jar:$XMLBEANS_PERFROOT/schema_build/castor-non-primitives.jar:$XMLBEANS_PERFROOT/3rdparty/castor/castor-0.9.5.4.jar -DPERF_ROOT=$XMLBEANS_PERFROOT org.apache.xmlbeans.test.performance.castor.$*
Added: xmlbeans/trunk/test/perf/bin/jaxb.bat
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/jaxb.bat?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/jaxb.bat Wed Jan 5 13:09:10 2005
@@ -0,0 +1 @@
+java -Xmx64m -Xbootclasspath/p:%XMLBEANS_PERFROOT%\3rdparty\xerces\xerces-2_6_2\xml-apis.jar:%XMLBEANS_PERFROOT%\3rdparty\xerces\xerces-2_6_2\xercesImpl.jar -classpath %XMLBEANS_PERFROOT%\build;%XMLBEANS_PERFROOT%\schema_build\jaxb-purchase-order.jar;%XMLBEANS_PERFROOT%\schema_build\jaxb-primitives.jar;%XMLBEANS_PERFROOT%\schema_build\jaxb-non-primitives.jar;%JAXB_LIBDIR%\jaxb-libs.jar;%JAXB_LIBDIR%\jaxb-impl.jar;%JAXB_LIBDIR%\jaxb-api.jar;%JAXB_LIBDIR%\relaxngDatatype.jar;%JAXB_LIBDIR%\xsdlib.jar -DPERF_ROOT=%XMLBEANS_PERFROOT% org.apache.xmlbeans.test.performance.jaxb.%*
Added: xmlbeans/trunk/test/perf/bin/jaxb.sh
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/jaxb.sh?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/jaxb.sh Wed Jan 5 13:09:10 2005
@@ -0,0 +1,3 @@
+#/bin/sh
+
+java -Xmx64m -Xbootclasspath/p:$XMLBEANS_PERFROOT/3rdparty/xerces/xerces-2_6_2/xml-apis.jar:$XMLBEANS_PERFROOT/3rdparty/xerces/xerces-2_6_2/xercesImpl.jar -classpath $XMLBEANS_PERFROOT/build:$XMLBEANS_PERFROOT/schema_build/jaxb-purchase-order.jar:$XMLBEANS_PERFROOT/schema_build/jaxb-primitives.jar:$XMLBEANS_PERFROOT/schema_build/jaxb-non-primitives.jar:$JAXB_LIBDIR/jaxb-libs.jar:$JAXB_LIBDIR/jaxb-impl.jar:$JAXB_LIBDIR/jaxb-api.jar:$JAXB_LIBDIR/relaxngDatatype.jar:$JAXB_LIBDIR/xsdlib.jar -DPERF_ROOT=$XMLBEANS_PERFROOT org.apache.xmlbeans.test.performance.jaxb.$*
Added: xmlbeans/trunk/test/perf/bin/jibx.bat
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/jibx.bat?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/jibx.bat Wed Jan 5 13:09:10 2005
@@ -0,0 +1 @@
+java -Xmx64m -classpath %XMLBEANS_PERFROOT%\build;%XMLBEANS_PERFROOT%\schema_build\jibx-purchase-order.jar;%XMLBEANS_PERFROOT%\3rdparty\jibx\jibx\lib\jibx-run.jar;%XMLBEANS_PERFROOT%\3rdparty\jibx\jibx\lib\xpp3.jar -DPERF_ROOT=%XMLBEANS_PERFROOT% org.apache.xmlbeans.test.performance.jibx.%*
Added: xmlbeans/trunk/test/perf/bin/jibx.sh
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/jibx.sh?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/jibx.sh Wed Jan 5 13:09:10 2005
@@ -0,0 +1,3 @@
+#/bin/sh
+
+java -Xmx64m -classpath $XMLBEANS_PERFROOT/build:$XMLBEANS_PERFROOT/schema_build/jibx-purchase-order.jar:$XMLBEANS_PERFROOT/3rdparty/jibx/jibx//lib/jibx-run.jar:$XMLBEANS_PERFROOT/3rdparty/jibx/jibx/lib/xpp3.jar -DPERF_ROOT=$XMLBEANS_PERFROOT org.apache.xmlbeans.test.performance.jibx.$*
Added: xmlbeans/trunk/test/perf/bin/run_all.bat
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/run_all.bat?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/run_all.bat Wed Jan 5 13:09:10 2005
@@ -0,0 +1,6 @@
+call run_v2.bat
+call run_v1.bat
+call run_castor.bat
+call run_jaxb.bat
+call run_jibx.bat
+call run_xerces.bat
Added: xmlbeans/trunk/test/perf/bin/run_all.sh
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/run_all.sh?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/run_all.sh Wed Jan 5 13:09:10 2005
@@ -0,0 +1,6 @@
+sh ./run_v2.sh
+sh ./run_v1.sh
+sh ./run_castor.sh
+sh ./run_jaxb.sh
+sh ./run_jibx.sh
+sh ./run_xerces.sh
Added: xmlbeans/trunk/test/perf/bin/run_castor.bat
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/run_castor.bat?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/run_castor.bat Wed Jan 5 13:09:10 2005
@@ -0,0 +1,18 @@
+call castor.bat POReadAllCastor 1
+call castor.bat POReadAllCastor 2
+call castor.bat POReadAllCastor 3
+call castor.bat POReadAllCastor 4
+call castor.bat POReadAllCastor 5
+call castor.bat POReadAllCastor 6
+call castor.bat POReadAllCastor 7
+call castor.bat POReadOneCastor 1
+call castor.bat POReadOneCastor 2
+call castor.bat POReadOneCastor 3
+call castor.bat POReadOneCastor 4
+call castor.bat POReadOneCastor 5
+call castor.bat POReadOneCastor 6
+call castor.bat POReadOneCastor 7
+call castor.bat POTopDownCastor
+call castor.bat POTopDownSaveCastor
+call castor.bat PrimTopDownCastor
+call castor.bat NPrimTopDownCastor
Added: xmlbeans/trunk/test/perf/bin/run_castor.sh
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/run_castor.sh?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/run_castor.sh Wed Jan 5 13:09:10 2005
@@ -0,0 +1,18 @@
+sh ./castor.sh POReadAllCastor 1
+sh ./castor.sh POReadAllCastor 2
+sh ./castor.sh POReadAllCastor 3
+sh ./castor.sh POReadAllCastor 4
+sh ./castor.sh POReadAllCastor 5
+sh ./castor.sh POReadAllCastor 6
+sh ./castor.sh POReadAllCastor 7
+sh ./castor.sh POReadOneCastor 1
+sh ./castor.sh POReadOneCastor 2
+sh ./castor.sh POReadOneCastor 3
+sh ./castor.sh POReadOneCastor 4
+sh ./castor.sh POReadOneCastor 5
+sh ./castor.sh POReadOneCastor 6
+sh ./castor.sh POReadOneCastor 7
+sh ./castor.sh POTopDownCastor
+sh ./castor.sh POTopDownSaveCastor
+sh ./castor.sh PrimTopDownCastor
+sh ./castor.sh NPrimTopDownCastor
Added: xmlbeans/trunk/test/perf/bin/run_jaxb.bat
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/run_jaxb.bat?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/run_jaxb.bat Wed Jan 5 13:09:10 2005
@@ -0,0 +1,18 @@
+call jaxb.bat POReadAllJaxb 1
+call jaxb.bat POReadAllJaxb 2
+call jaxb.bat POReadAllJaxb 3
+call jaxb.bat POReadAllJaxb 4
+call jaxb.bat POReadAllJaxb 5
+call jaxb.bat POReadAllJaxb 6
+call jaxb.bat POReadAllJaxb 7
+call jaxb.bat POReadOneJaxb 1
+call jaxb.bat POReadOneJaxb 2
+call jaxb.bat POReadOneJaxb 3
+call jaxb.bat POReadOneJaxb 4
+call jaxb.bat POReadOneJaxb 5
+call jaxb.bat POReadOneJaxb 6
+call jaxb.bat POReadOneJaxb 7
+call jaxb.bat POTopDownJaxb
+call jaxb.bat POTopDownSaveJaxb
+call jaxb.bat PrimTopDownJaxb
+call jaxb.bat NPrimTopDownJaxb
Added: xmlbeans/trunk/test/perf/bin/run_jaxb.sh
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/run_jaxb.sh?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/run_jaxb.sh Wed Jan 5 13:09:10 2005
@@ -0,0 +1,18 @@
+sh ./jaxb.sh POReadAllJaxb 1
+sh ./jaxb.sh POReadAllJaxb 2
+sh ./jaxb.sh POReadAllJaxb 3
+sh ./jaxb.sh POReadAllJaxb 4
+sh ./jaxb.sh POReadAllJaxb 5
+sh ./jaxb.sh POReadAllJaxb 6
+sh ./jaxb.sh POReadAllJaxb 7
+sh ./jaxb.sh POReadOneJaxb 1
+sh ./jaxb.sh POReadOneJaxb 2
+sh ./jaxb.sh POReadOneJaxb 3
+sh ./jaxb.sh POReadOneJaxb 4
+sh ./jaxb.sh POReadOneJaxb 5
+sh ./jaxb.sh POReadOneJaxb 6
+sh ./jaxb.sh POReadOneJaxb 7
+sh ./jaxb.sh POTopDownJaxb
+sh ./jaxb.sh POTopDownSaveJaxb
+sh ./jaxb.sh PrimTopDownJaxb
+sh ./jaxb.sh NPrimTopDownJaxb
Added: xmlbeans/trunk/test/perf/bin/run_jibx.bat
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/run_jibx.bat?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/run_jibx.bat Wed Jan 5 13:09:10 2005
@@ -0,0 +1,14 @@
+call jibx.bat POReadAllJibx 1
+call jibx.bat POReadAllJibx 2
+call jibx.bat POReadAllJibx 3
+call jibx.bat POReadAllJibx 4
+call jibx.bat POReadAllJibx 5
+call jibx.bat POReadAllJibx 6
+call jibx.bat POReadAllJibx 7
+call jibx.bat POReadOneJibx 1
+call jibx.bat POReadOneJibx 2
+call jibx.bat POReadOneJibx 3
+call jibx.bat POReadOneJibx 4
+call jibx.bat POReadOneJibx 5
+call jibx.bat POReadOneJibx 6
+call jibx.bat POReadOneJibx 7
Added: xmlbeans/trunk/test/perf/bin/run_jibx.sh
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/run_jibx.sh?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/run_jibx.sh Wed Jan 5 13:09:10 2005
@@ -0,0 +1,14 @@
+sh ./jibx.sh POReadAllJibx 1
+sh ./jibx.sh POReadAllJibx 2
+sh ./jibx.sh POReadAllJibx 3
+sh ./jibx.sh POReadAllJibx 4
+sh ./jibx.sh POReadAllJibx 5
+sh ./jibx.sh POReadAllJibx 6
+sh ./jibx.sh POReadAllJibx 7
+sh ./jibx.sh POReadOneJibx 1
+sh ./jibx.sh POReadOneJibx 2
+sh ./jibx.sh POReadOneJibx 3
+sh ./jibx.sh POReadOneJibx 4
+sh ./jibx.sh POReadOneJibx 5
+sh ./jibx.sh POReadOneJibx 6
+sh ./jibx.sh POReadOneJibx 7
Added: xmlbeans/trunk/test/perf/bin/run_v1.bat
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/run_v1.bat?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/run_v1.bat Wed Jan 5 13:09:10 2005
@@ -0,0 +1,90 @@
+echo off
+call v1.bat POReadAllV1 1
+echo
+call v1.bat POReadAllV1 2
+echo
+call v1.bat POReadAllV1 3
+echo
+call v1.bat POReadAllV1 4
+echo
+call v1.bat POReadAllV1 5
+echo
+call v1.bat POReadAllV1 6
+echo
+call v1.bat POReadAllV1 7
+echo
+call v1.bat POReadOneV1 1
+echo
+call v1.bat POReadOneV1 2
+echo
+call v1.bat POReadOneV1 3
+echo
+call v1.bat POReadOneV1 4
+echo
+call v1.bat POReadOneV1 5
+echo
+call v1.bat POReadOneV1 6
+echo
+call v1.bat POReadOneV1 7
+echo
+call v1.bat POTopDownV1
+echo
+call v1.bat POTopDownSaveV1
+echo
+call v1.bat POValidateXmlObjV1
+echo
+call v1.bat PrimTopDownV1
+echo
+call v1.bat NPrimTopDownV1
+echo
+call v1.bat CursorWalkV1 deep-attributes
+echo
+call v1.bat CursorWalkV1 deep-elements
+echo
+call v1.bat CursorWalkV1 wide-attributes
+echo
+call v1.bat CursorWalkV1 wide-elements
+echo
+call v1.bat CursorWalkV1 wide-text
+echo
+call v1.bat CursorGetAttributeV1 deep-attributes
+echo
+call v1.bat CursorGetAttributeV1 wide-attributes
+echo
+call v1.bat CursorGetSetGetAttributeV1 deep-attributes
+echo
+call v1.bat CursorGetSetGetAttributeV1 wide-attributes
+echo
+call v1.bat CursorGetElementV1
+echo
+call v1.bat CursorGetSetGetElementV1
+echo
+call v1.bat BisLoadV1 deep-attributes
+echo
+call v1.bat BisLoadV1 deep-elements
+echo
+call v1.bat BisLoadV1 wide-attributes
+echo
+call v1.bat BisLoadV1 wide-elements
+echo
+call v1.bat BisLoadV1 wide-text
+echo
+call v1.bat DomWalkV1 deep-attributes
+echo
+call v1.bat DomWalkV1 deep-elements
+echo
+call v1.bat DomWalkV1 wide-attributes
+echo
+call v1.bat DomWalkV1 wide-elements
+echo
+call v1.bat DomWalkV1 wide-text
+echo
+call v1.bat DomWalkNLV1 deep-attributes
+echo
+call v1.bat DomWalkNLV1 deep-elements
+echo
+call v1.bat DomWalkNLV1 wide-attributes
+echo
+call v1.bat DomWalkNLV1 wide-elements
+echo
+call v1.bat DomWalkNLV1 wide-text
Added: xmlbeans/trunk/test/perf/bin/run_v1.sh
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/run_v1.sh?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/run_v1.sh Wed Jan 5 13:09:10 2005
@@ -0,0 +1,90 @@
+sh ./v1.sh POReadAllV1 1
+echo ""
+sh ./v1.sh POReadAllV1 2
+echo ""
+sh ./v1.sh POReadAllV1 3
+echo ""
+sh ./v1.sh POReadAllV1 4
+echo ""
+sh ./v1.sh POReadAllV1 5
+echo ""
+sh ./v1.sh POReadAllV1 6
+echo ""
+sh ./v1.sh POReadAllV1 7
+echo ""
+sh ./v1.sh POReadOneV1 1
+echo ""
+sh ./v1.sh POReadOneV1 2
+echo ""
+sh ./v1.sh POReadOneV1 3
+echo ""
+sh ./v1.sh POReadOneV1 4
+echo ""
+sh ./v1.sh POReadOneV1 5
+echo ""
+sh ./v1.sh POReadOneV1 6
+echo ""
+sh ./v1.sh POReadOneV1 7
+echo ""
+sh ./v1.sh POTopDownV1
+echo ""
+sh ./v1.sh POTopDownSaveV1
+echo ""
+sh ./v1.sh POValidateXmlObjV1
+echo ""
+sh ./v1.sh PrimTopDownV1
+echo ""
+sh ./v1.sh NPrimTopDownV1
+echo ""
+sh ./v1.sh CursorWalkV1 deep-attributes
+echo ""
+sh ./v1.sh CursorWalkV1 deep-elements
+echo ""
+sh ./v1.sh CursorWalkV1 wide-attributes
+echo ""
+sh ./v1.sh CursorWalkV1 wide-elements
+echo ""
+sh ./v1.sh CursorWalkV1 wide-text
+echo ""
+sh ./v1.sh CursorGetAttributeV1 deep-attributes
+echo ""
+sh ./v1.sh CursorGetAttributeV1 wide-attributes
+echo ""
+sh ./v1.sh CursorGetSetGetAttributeV1 deep-attributes
+echo ""
+sh ./v1.sh CursorGetSetGetAttributeV1 wide-attributes
+echo ""
+sh ./v1.sh CursorGetElementV1
+echo ""
+sh ./v1.sh CursorGetSetGetElementV1
+echo ""
+sh ./v1.sh BisLoadV1 deep-attributes
+echo ""
+sh ./v1.sh BisLoadV1 deep-elements
+echo ""
+sh ./v1.sh BisLoadV1 wide-attributes
+echo ""
+sh ./v1.sh BisLoadV1 wide-elements
+echo ""
+sh ./v1.sh BisLoadV1 wide-text
+echo ""
+sh ./v1.sh DomWalkV1 deep-attributes
+echo ""
+sh ./v1.sh DomWalkV1 deep-elements
+echo ""
+sh ./v1.sh DomWalkV1 wide-attributes
+echo ""
+sh ./v1.sh DomWalkV1 wide-elements
+echo ""
+sh ./v1.sh DomWalkV1 wide-text
+echo ""
+sh ./v1.sh DomWalkNLV1 deep-attributes
+echo ""
+sh ./v1.sh DomWalkNLV1 deep-elements
+echo ""
+sh ./v1.sh DomWalkNLV1 wide-attributes
+echo ""
+sh ./v1.sh DomWalkNLV1 wide-elements
+echo ""
+sh ./v1.sh DomWalkNLV1 wide-text
+echo ""
Added: xmlbeans/trunk/test/perf/bin/run_v2.bat
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/run_v2.bat?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/run_v2.bat Wed Jan 5 13:09:10 2005
@@ -0,0 +1,90 @@
+echo off
+call v2.bat POReadAllV2 1
+echo
+call v2.bat POReadAllV2 2
+echo
+call v2.bat POReadAllV2 3
+echo
+call v2.bat POReadAllV2 4
+echo
+call v2.bat POReadAllV2 5
+echo
+call v2.bat POReadAllV2 6
+echo
+call v2.bat POReadAllV2 7
+echo
+call v2.bat POReadOneV2 1
+echo
+call v2.bat POReadOneV2 2
+echo
+call v2.bat POReadOneV2 3
+echo
+call v2.bat POReadOneV2 4
+echo
+call v2.bat POReadOneV2 5
+echo
+call v2.bat POReadOneV2 6
+echo
+call v2.bat POReadOneV2 7
+echo
+call v2.bat POTopDownV2
+echo
+call v2.bat POTopDownSaveV2
+echo
+call v2.bat POValidateXmlObjV2
+echo
+call v2.bat PrimTopDownV2
+echo
+call v2.bat NPrimTopDownV2
+echo
+call v2.bat CursorWalkV2 deep-attributes
+echo
+call v2.bat CursorWalkV2 deep-elements
+echo
+call v2.bat CursorWalkV2 wide-attributes
+echo
+call v2.bat CursorWalkV2 wide-elements
+echo
+call v2.bat CursorWalkV2 wide-text
+echo
+call v2.bat CursorGetAttributeV2 deep-attributes
+echo
+call v2.bat CursorGetAttributeV2 wide-attributes
+echo
+call v2.bat CursorGetSetGetAttributeV2 deep-attributes
+echo
+call v2.bat CursorGetSetGetAttributeV2 wide-attributes
+echo
+call v2.bat CursorGetElementV2
+echo
+call v2.bat CursorGetSetGetElementV2
+echo
+call v2.bat BisLoadV2 deep-attributes
+echo
+call v2.bat BisLoadV2 deep-elements
+echo
+call v2.bat BisLoadV2 wide-attributes
+echo
+call v2.bat BisLoadV2 wide-elements
+echo
+call v2.bat BisLoadV2 wide-text
+echo
+call v2.bat DomWalkV2 deep-attributes
+echo
+call v2.bat DomWalkV2 deep-elements
+echo
+call v2.bat DomWalkV2 wide-attributes
+echo
+call v2.bat DomWalkV2 wide-elements
+echo
+call v2.bat DomWalkV2 wide-text
+echo
+call v2.bat DomWalkNLV2 deep-attributes
+echo
+call v2.bat DomWalkNLV2 deep-elements
+echo
+call v2.bat DomWalkNLV2 wide-attributes
+echo
+call v2.bat DomWalkNLV2 wide-elements
+echo
+call v2.bat DomWalkNLV2 wide-text
Added: xmlbeans/trunk/test/perf/bin/run_v2.sh
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/run_v2.sh?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/run_v2.sh Wed Jan 5 13:09:10 2005
@@ -0,0 +1,90 @@
+sh ./v2.sh POReadAllV2 1
+echo ""
+sh ./v2.sh POReadAllV2 2
+echo ""
+sh ./v2.sh POReadAllV2 3
+echo ""
+sh ./v2.sh POReadAllV2 4
+echo ""
+sh ./v2.sh POReadAllV2 5
+echo ""
+sh ./v2.sh POReadAllV2 6
+echo ""
+sh ./v2.sh POReadAllV2 7
+echo ""
+sh ./v2.sh POReadOneV2 1
+echo ""
+sh ./v2.sh POReadOneV2 2
+echo ""
+sh ./v2.sh POReadOneV2 3
+echo ""
+sh ./v2.sh POReadOneV2 4
+echo ""
+sh ./v2.sh POReadOneV2 5
+echo ""
+sh ./v2.sh POReadOneV2 6
+echo ""
+sh ./v2.sh POReadOneV2 7
+echo ""
+sh ./v2.sh POTopDownV2
+echo ""
+sh ./v2.sh POTopDownSaveV2
+echo ""
+sh ./v2.sh POValidateXmlObjV2
+echo ""
+sh ./v2.sh PrimTopDownV2
+echo ""
+sh ./v2.sh NPrimTopDownV2
+echo ""
+sh ./v2.sh CursorWalkV2 deep-attributes
+echo ""
+sh ./v2.sh CursorWalkV2 deep-elements
+echo ""
+sh ./v2.sh CursorWalkV2 wide-attributes
+echo ""
+sh ./v2.sh CursorWalkV2 wide-elements
+echo ""
+sh ./v2.sh CursorWalkV2 wide-text
+echo ""
+sh ./v2.sh CursorGetAttributeV2 deep-attributes
+echo ""
+sh ./v2.sh CursorGetAttributeV2 wide-attributes
+echo ""
+sh ./v2.sh CursorGetSetGetAttributeV2 deep-attributes
+echo ""
+sh ./v2.sh CursorGetSetGetAttributeV2 wide-attributes
+echo ""
+sh ./v2.sh CursorGetElementV2
+echo ""
+sh ./v2.sh CursorGetSetGetElementV2
+echo ""
+sh ./v2.sh BisLoadV2 deep-attributes
+echo ""
+sh ./v2.sh BisLoadV2 deep-elements
+echo ""
+sh ./v2.sh BisLoadV2 wide-attributes
+echo ""
+sh ./v2.sh BisLoadV2 wide-elements
+echo ""
+sh ./v2.sh BisLoadV2 wide-text
+echo ""
+sh ./v2.sh DomWalkV2 deep-attributes
+echo ""
+sh ./v2.sh DomWalkV2 deep-elements
+echo ""
+sh ./v2.sh DomWalkV2 wide-attributes
+echo ""
+sh ./v2.sh DomWalkV2 wide-elements
+echo ""
+sh ./v2.sh DomWalkV2 wide-text
+echo ""
+sh ./v2.sh DomWalkNLV2 deep-attributes
+echo ""
+sh ./v2.sh DomWalkNLV2 deep-elements
+echo ""
+sh ./v2.sh DomWalkNLV2 wide-attributes
+echo ""
+sh ./v2.sh DomWalkNLV2 wide-elements
+echo ""
+sh ./v2.sh DomWalkNLV2 wide-text
+echo ""
Added: xmlbeans/trunk/test/perf/bin/run_xerces.bat
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/run_xerces.bat?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/run_xerces.bat Wed Jan 5 13:09:10 2005
@@ -0,0 +1,51 @@
+call xerces.bat POReadAllXercesSax 1
+call xerces.bat POReadAllXercesDom 1
+call xerces.bat POReadAllXercesSax 2
+call xerces.bat POReadAllXercesDom 2
+call xerces.bat POReadAllXercesSax 3
+call xerces.bat POReadAllXercesDom 3
+call xerces.bat POReadAllXercesSax 4
+call xerces.bat POReadAllXercesDom 4
+call xerces.bat POReadAllXercesSax 5
+call xerces.bat POReadAllXercesDom 5
+call xerces.bat POReadAllXercesSax 6
+call xerces.bat POReadAllXercesDom 6
+call xerces.bat POReadAllXercesSax 7
+call xerces.bat POReadAllXercesDom 7
+call xerces.bat POReadOneXercesSax 1
+call xerces.bat POReadOneXercesDom 1
+call xerces.bat POReadOneXercesSax 2
+call xerces.bat POReadOneXercesDom 2
+call xerces.bat POReadOneXercesSax 3
+call xerces.bat POReadOneXercesDom 3
+call xerces.bat POReadOneXercesSax 4
+call xerces.bat POReadOneXercesDom 4
+call xerces.bat POReadOneXercesSax 5
+call xerces.bat POReadOneXercesDom 5
+call xerces.bat POReadOneXercesSax 6
+call xerces.bat POReadOneXercesDom 6
+call xerces.bat POReadOneXercesSax 7
+call xerces.bat POReadOneXercesDom 7
+call xerces.bat POTopDownXercesSax
+call xerces.bat POTopDownXercesDom
+call xerces.bat POValidateXerces
+call xerces.bat BisLoadXercesDom deep-attributes
+call xerces.bat BisLoadXercesSax deep-attributes
+call xerces.bat BisLoadXercesDom deep-elements
+call xerces.bat BisLoadXercesSax deep-elements
+call xerces.bat BisLoadXercesDom wide-attributes
+call xerces.bat BisLoadXercesSax wide-attributes
+call xerces.bat BisLoadXercesDom wide-elements
+call xerces.bat BisLoadXercesSax wide-elements
+call xerces.bat BisLoadXercesDom wide-text
+call xerces.bat BisLoadXercesSax wide-text
+call xerces.bat DomWalkXerces deep-attributes
+call xerces.bat DomWalkXerces deep-elements
+call xerces.bat DomWalkXerces wide-attributes
+call xerces.bat DomWalkXerces wide-elements
+call xerces.bat DomWalkXerces wide-text
+call xerces.bat DomWalkNLXerces deep-attributes
+call xerces.bat DomWalkNLXerces deep-elements
+call xerces.bat DomWalkNLXerces wide-attributes
+call xerces.bat DomWalkNLXerces wide-elements
+call xerces.bat DomWalkNLXerces wide-text
Added: xmlbeans/trunk/test/perf/bin/run_xerces.sh
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/run_xerces.sh?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/run_xerces.sh Wed Jan 5 13:09:10 2005
@@ -0,0 +1,51 @@
+sh ./xerces.sh POReadAllXercesSax 1
+sh ./xerces.sh POReadAllXercesDom 1
+sh ./xerces.sh POReadAllXercesSax 2
+sh ./xerces.sh POReadAllXercesDom 2
+sh ./xerces.sh POReadAllXercesSax 3
+sh ./xerces.sh POReadAllXercesDom 3
+sh ./xerces.sh POReadAllXercesSax 4
+sh ./xerces.sh POReadAllXercesDom 4
+sh ./xerces.sh POReadAllXercesSax 5
+sh ./xerces.sh POReadAllXercesDom 5
+sh ./xerces.sh POReadAllXercesSax 6
+sh ./xerces.sh POReadAllXercesDom 6
+sh ./xerces.sh POReadAllXercesSax 7
+sh ./xerces.sh POReadAllXercesDom 7
+sh ./xerces.sh POReadOneXercesSax 1
+sh ./xerces.sh POReadOneXercesDom 1
+sh ./xerces.sh POReadOneXercesSax 2
+sh ./xerces.sh POReadOneXercesDom 2
+sh ./xerces.sh POReadOneXercesSax 3
+sh ./xerces.sh POReadOneXercesDom 3
+sh ./xerces.sh POReadOneXercesSax 4
+sh ./xerces.sh POReadOneXercesDom 4
+sh ./xerces.sh POReadOneXercesSax 5
+sh ./xerces.sh POReadOneXercesDom 5
+sh ./xerces.sh POReadOneXercesSax 6
+sh ./xerces.sh POReadOneXercesDom 6
+sh ./xerces.sh POReadOneXercesSax 7
+sh ./xerces.sh POReadOneXercesDom 7
+sh ./xerces.sh POTopDownXercesSax
+sh ./xerces.sh POTopDownXercesDom
+sh ./xerces.sh POValidateXerces
+sh ./xerces.sh BisLoadXercesDom deep-attributes
+sh ./xerces.sh BisLoadXercesSax deep-attributes
+sh ./xerces.sh BisLoadXercesDom deep-elements
+sh ./xerces.sh BisLoadXercesSax deep-elements
+sh ./xerces.sh BisLoadXercesDom wide-attributes
+sh ./xerces.sh BisLoadXercesSax wide-attributes
+sh ./xerces.sh BisLoadXercesDom wide-elements
+sh ./xerces.sh BisLoadXercesSax wide-elements
+sh ./xerces.sh BisLoadXercesDom wide-text
+sh ./xerces.sh BisLoadXercesSax wide-text
+sh ./xerces.sh DomWalkXerces deep-attributes
+sh ./xerces.sh DomWalkXerces deep-elements
+sh ./xerces.sh DomWalkXerces wide-attributes
+sh ./xerces.sh DomWalkXerces wide-elements
+sh ./xerces.sh DomWalkXerces wide-text
+sh ./xerces.sh DomWalkNLXerces deep-attributes
+sh ./xerces.sh DomWalkNLXerces deep-elements
+sh ./xerces.sh DomWalkNLXerces wide-attributes
+sh ./xerces.sh DomWalkNLXerces wide-elements
+sh ./xerces.sh DomWalkNLXerces wide-text
Added: xmlbeans/trunk/test/perf/bin/v1.bat
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/v1.bat?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/v1.bat Wed Jan 5 13:09:10 2005
@@ -0,0 +1,3 @@
+set V1_LIB=%XMLBEANS_PERFROOT%\3rdparty\v1\xmlbeans-1.0.3\lib
+
+java -Xmx64m -classpath %XMLBEANS_PERFROOT%\build;%XMLBEANS_PERFROOT%\schema_build\v1-purchase-order.jar;%XMLBEANS_PERFROOT%\schema_build\v1-primitives.jar;%XMLBEANS_PERFROOT%\schema_build\v1-non-primitives.jar;%V1_LIB%\xbean.jar;%XMLBEANS_HOME%\external\lib\piccolo_apache_dist_20040629_v2.jar -DPERF_ROOT=%XMLBEANS_PERFROOT% org.apache.xmlbeans.test.performance.v1.%*
Added: xmlbeans/trunk/test/perf/bin/v1.sh
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/v1.sh?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/v1.sh Wed Jan 5 13:09:10 2005
@@ -0,0 +1,4 @@
+V1_LIB=$XMLBEANS_PERFROOT/3rdparty/v1/xmlbeans-1.0.3/lib
+export V1_LIB
+
+java -Xmx64m -classpath $XMLBEANS_PERFROOT/build:$XMLBEANS_PERFROOT/schema_build/v1-purchase-order.jar:$XMLBEANS_PERFROOT/schema_build/v1-primitives.jar:$XMLBEANS_PERFROOT/schema_build/v1-non-primitives.jar:$V1_LIB/xbean.jar:$XMLBEANS_HOME/external/lib/piccolo_apache_dist_20040629_v2.jar -DPERF_ROOT=$XMLBEANS_PERFROOT org.apache.xmlbeans.test.performance.v1.$*
Added: xmlbeans/trunk/test/perf/bin/v2.bat
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/v2.bat?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/v2.bat Wed Jan 5 13:09:10 2005
@@ -0,0 +1 @@
+java -Xmx64m -classpath %XMLBEANS_PERFROOT%\build;%XMLBEANS_PERFROOT%\schema_build\v2-purchase-order.jar;%XMLBEANS_PERFROOT%\schema_build\v2-primitives.jar;%XMLBEANS_PERFROOT%\schema_build\v2-non-primitives.jar;%XMLBEANS_HOME%\build\lib\xbean.jar;%XMLBEANS_HOME%\build\lib\jsr173_api.jar;%XMLBEANS_HOME%\external\lib\piccolo_apache_dist_20040629_v2.jar -DPERF_ROOT=%XMLBEANS_PERFROOT% org.apache.xmlbeans.test.performance.v2.%*
Added: xmlbeans/trunk/test/perf/bin/v2.sh
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/v2.sh?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/v2.sh Wed Jan 5 13:09:10 2005
@@ -0,0 +1 @@
+java -Xmx64m -classpath $XMLBEANS_PERFROOT/build:$XMLBEANS_PERFROOT/schema_build/v2-purchase-order.jar:$XMLBEANS_PERFROOT/schema_build/v2-primitives.jar:$XMLBEANS_PERFROOT/schema_build/v2-non-primitives.jar:$XMLBEANS_HOME/build/lib/xbean.jar:$XMLBEANS_HOME/build/lib/jsr173_api.jar:$XMLBEANS_HOME/external/lib/piccolo_apache_dist_20040629_v2.jar -DPERF_ROOT=$XMLBEANS_PERFROOT org.apache.xmlbeans.test.performance.v2.$*
Added: xmlbeans/trunk/test/perf/bin/xerces.bat
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/xerces.bat?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/xerces.bat Wed Jan 5 13:09:10 2005
@@ -0,0 +1 @@
+java -Xmx64m -Xbootclasspath/p:%XMLBEANS_PERFROOT%\3rdparty\xerces\xerces-2_6_2\xml-apis.jar;%XMLBEANS_PERFROOT%\3rdparty\xerces\xerces-2_6_2\xercesImpl.jar -classpath %XMLBEANS_PERFROOT%\build -DPERF_ROOT=%XMLBEANS_PERFROOT% org.apache.xmlbeans.test.performance.xerces.%*
Added: xmlbeans/trunk/test/perf/bin/xerces.sh
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/bin/xerces.sh?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/bin/xerces.sh Wed Jan 5 13:09:10 2005
@@ -0,0 +1,3 @@
+#/bin/sh
+
+java -Xbootclasspath/p:$XMLBEANS_PERFROOT/3rdparty/xerces/xerces-2_6_2/xml-apis.jar:$XMLBEANS_PERFROOT/3rdparty/xerces/xerces-2_6_2/xercesImpl.jar -Xmx64m -classpath $XMLBEANS_PERFROOT/build -DPERF_ROOT=$XMLBEANS_PERFROOT org.apache.xmlbeans.test.performance.xerces.$*
Added: xmlbeans/trunk/test/perf/build.xml
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/build.xml?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/build.xml Wed Jan 5 13:09:10 2005
@@ -0,0 +1,543 @@
+<!-- build file -->
+<project name="xmlbeans-perf" default="usage">
+
+ <target name="usage">
+ <echo>
+ Main Usage:
+ bootstrap - download and unzip benchmark jars - REQUIRED FOR BENCHMARKS
+ [re]build.all - builds all schema jars and test classes
+ [re]build - builds test and tool classes only
+ [re]build.schema.jars - that's what it does :->
+ clean.all - clean all schema jars and test/tools classes
+ clean - clean test and tools classes
+ clean.schema.jars - clean schema jars
+
+ Schema Builds:
+ v2.schema.jars - required for tools build and v2 perf
+ v1.schema.jars
+ castor.schema.jars
+ jaxb.schema.jars
+ jibx.schema.jars
+
+ Perf Builds:
+ build.tools - perf tools
+ build.v2.perf
+ build.v1.perf
+ build.castor.perf
+ build.jaxb.perf
+ build.jibx.perf
+ build.xerces.perf
+ </echo>
+ </target>
+
+ <property environment="env"/>
+
+ <!-- root properties used for finding everything -->
+ <property name="xmlbeans.perf.root" value="${basedir}"/>
+ <!-- TODO: CVS point to relative v2 build -->
+ <property name="v2.xmlbeans.root" value="${env.XMLBEANS_HOME}"/>
+
+ <property name="src.dir" value="${xmlbeans.perf.root}/src"/>
+ <property name="build.dir" value="${xmlbeans.perf.root}/build"/>
+ <property name="doc.dir" value="${xmlbeans.perf.root}/build/doc"/>
+ <property name="test.case.dir" value="${xmlbeans.perf.root}/cases"/>
+ <property name="temp.dir" value="${xmlbeans.perf.root}/temp"/>
+ <property name="schema.jar.build.dir" value="${xmlbeans.perf.root}/schema_build"/>
+ <property name="3rdparty.dir" value="${xmlbeans.perf.root}/3rdparty"/>
+
+ <!-- benchmark directories -->
+ <property name="v2.dir" value="${v2.xmlbeans.root}"/>
+ <!-- TODO: CVS - point to relative v1 line -->
+ <property name="v1.dir" value="${3rdparty.dir}/v1"/>
+ <property name="castor.dir" value="${3rdparty.dir}/castor"/>
+ <property name="jibx.dir" value="${3rdparty.dir}/jibx"/>
+ <property name="xerces.dir" value="${3rdparty.dir}/xerces"/>
+ <!-- can't download jaxb on the fly, so user has to setup this env var -->
+ <property name="jaxb.dir" value="${env.JAXB_LIBDIR}"/>
+
+ <!-- castor -->
+ <!-- TODO: CVS - crack castor jar and turn off validation -->
+ <property name="castor.jar" value="${castor.dir}/castor-0.9.5.4.jar"/>
+ <property name="castor.url" value="ftp://ftp.exolab.org/pub/castor/castor_0.9.5.4/castor-0.9.5.4.jar"/>
+
+ <!-- jibx -->
+ <property name="jibx.zip" value="${jibx.dir}/jibx-beta3c.zip"/>
+ <property name="jibx.url" value="http://umn.dl.sourceforge.net/sourceforge/jibx/jibx-beta3c.zip"/>
+
+ <!-- v1 -->
+ <property name="v1.zip" value="${v1.dir}/xmlbeans-1.0.3.zip"/>
+ <property name="v1.url" value="http://www.apache.org/dist/xml/xmlbeans/v1.0.3/bin/xmlbeans-1.0.3.zip"/>
+
+ <!-- xerces -->
+ <property name="xercesImpl.jar" value="${xerces.dir}/xerces-2_6_2/xercesImpl.jar"/>
+ <property name="xerces.zip" value="${xerces.dir}/Xerces-J-bin.2.6.2.zip"/>
+ <property name="xerces.url" value="http://www.apache.org/dist/xml/xerces-j/Xerces-J-bin.2.6.2.zip"/>
+
+ <!-- user-defined schema jars for SOM runtime perf tests -->
+ <property name="v2-purchase-order.jar" value="${schema.jar.build.dir}/v2-purchase-order.jar"/>
+ <property name="v2-primitives.jar" value="${schema.jar.build.dir}/v2-primitives.jar"/>
+ <property name="v2-non-primitives.jar" value="${schema.jar.build.dir}/v2-non-primitives.jar"/>
+ <property name="v1-purchase-order.jar" value="${schema.jar.build.dir}/v1-purchase-order.jar"/>
+ <property name="v1-primitives.jar" value="${schema.jar.build.dir}/v1-primitives.jar"/>
+ <property name="v1-non-primitives.jar" value="${schema.jar.build.dir}/v1-non-primitives.jar"/>
+ <property name="castor-purchase-order.jar" value="${schema.jar.build.dir}/castor-purchase-order.jar"/>
+ <property name="castor-primitives.jar" value="${schema.jar.build.dir}/castor-primitives.jar"/>
+ <property name="castor-non-primitives.jar" value="${schema.jar.build.dir}/castor-non-primitives.jar"/>
+ <property name="jibx-purchase-order.jar" value="${schema.jar.build.dir}/jibx-purchase-order.jar"/>
+ <property name="jaxb-purchase-order.jar" value="${schema.jar.build.dir}/jaxb-purchase-order.jar"/>
+ <property name="jaxb-primitives.jar" value="${schema.jar.build.dir}/jaxb-primitives.jar"/>
+ <property name="jaxb-non-primitives.jar" value="${schema.jar.build.dir}/jaxb-non-primitives.jar"/>
+
+ <!-- util schema jar(s) -->
+ <property name="perf-results.jar" value="${schema.jar.build.dir}/perf-results.jar"/>
+
+ <!-- classpaths -->
+ <path id="tools.classpath">
+ <fileset dir="${v2.dir}/build/lib" includes="*.jar"/>
+ <pathelement path="${perf-results.jar}"/>
+ <pathelement path="${build.dir}"/>
+ </path>
+
+ <path id="v2.classpath">
+ <fileset dir="${v2.dir}/build/lib" includes="*.jar"/>
+ <fileset dir="${v2.dir}/external/lib" includes="*.jar"/>
+ <pathelement path="${v2-purchase-order.jar}"/>
+ <pathelement path="${v2-primitives.jar}"/>
+ <pathelement path="${v2-non-primitives.jar}"/>
+ <pathelement path="${build.dir}"/>
+ <pathelement path="${perf-results.jar}"/>
+ </path>
+
+ <path id="v1.classpath">
+ <fileset dir="${v1.dir}/xmlbeans-1.0.3/lib" includes="*.jar"/>
+ <pathelement path="${v1-purchase-order.jar}"/>
+ <pathelement path="${v1-primitives.jar}"/>
+ <pathelement path="${v1-non-primitives.jar}"/>
+ <pathelement path="${build.dir}"/>
+ </path>
+
+ <path id="castor.classpath">
+ <pathelement path="${castor.jar}"/>
+ <pathelement path="${xercesImpl.jar}"/>
+ <pathelement path="${castor-purchase-order.jar}"/>
+ <pathelement path="${castor-primitives.jar}"/>
+ <pathelement path="${castor-non-primitives.jar}"/>
+ <pathelement path="${build.dir}"/>
+ </path>
+
+ <path id="jibx.classpath">
+ <fileset dir="${jibx.dir}/jibx/lib" includes="*.jar"/>
+ <pathelement path="${jibx-purchase-order.jar}"/>
+ <pathelement path="${build.dir}"/>
+ </path>
+ <!-- used when building the schema jar -->
+ <path id="jibx.binding.classpath">
+ <fileset dir="${jibx.dir}/jibx/lib" includes="*.jar"/>
+ <pathelement path="${temp.dir}"/>
+ </path>
+
+ <path id="jaxb.classpath">
+ <fileset dir="${jaxb.dir}/endorsed" includes="*.jar"/>
+ <fileset dir="${jaxb.dir}" includes="*.jar"/>
+ <pathelement path="${jaxb-purchase-order.jar}"/>
+ <pathelement path="${jaxb-primitives.jar}"/>
+ <pathelement path="${jaxb-non-primitives.jar}"/>
+ <pathelement path="${build.dir}"/>
+ </path>
+
+ <path id="xerces.classpath">
+ <pathelement path="${xercesImpl.jar}"/>
+ <pathelement path="${build.dir}"/>
+ </path>
+
+ <!-- main build targets -->
+ <target name="build.all" depends="build.schema.jars,build"/>
+ <target name="clean.all" depends="clean.schema.jars,clean"/>
+ <target name="rebuild.all" depends="rebuild.schema.jars,rebuild"/>
+
+
+ <!-- conveinence src build targets -->
+ <target name="build" depends="build.tools,build.v2.perf,build.v1.perf,build.castor.perf,build.jibx.perf,build.xerces.perf,build.jaxb.perf"/>
+
+ <target name="clean">
+ <delete dir="${build.dir}"/>
+ <delete dir="${temp.dir}"/>
+ </target>
+
+ <target name="rebuild" depends="clean,build"/>
+
+
+ <!-- conveinence schema jar build targets -->
+ <target name="build.schema.jars" depends="v2.schema.jars,v1.schema.jars,castor.schema.jars,jibx.schema.jars,jaxb.schema.jars"/>
+
+ <target name="clean.schema.jars">
+ <delete dir="${schema.jar.build.dir}"/>
+ </target>
+
+ <target name="rebuild.schema.jars" depends="clean.schema.jars,build.schema.jars"/>
+
+
+ <!-- specific build targets -->
+ <target name="clean.bootstrap">
+ <delete dir="${3rdparty.dir}"/>
+ </target>
+ <target name="bootstrap">
+ <mkdir dir="${castor.dir}"/>
+ <get src="${castor.url}" dest="${castor.jar}" verbose="true"/>
+
+ <mkdir dir="${jibx.dir}"/>
+ <get src="${jibx.url}" dest="${jibx.zip}" verbose="true"/>
+ <unzip src="${jibx.zip}" dest="${jibx.dir}"/>
+
+ <mkdir dir="${v1.dir}"/>
+ <get src="${v1.url}" dest="${v1.zip}" verbose="true"/>
+ <unzip src="${v1.zip}" dest="${v1.dir}"/>
+
+ <mkdir dir="${xerces.dir}"/>
+ <get src="${xerces.url}" dest="${xerces.zip}" verbose="true"/>
+ <unzip src="${xerces.zip}" dest="${xerces.dir}"/>
+
+ <echo message="FOR JAXB SETUP, DONLOAD WSDP 1.5 AND PLACE THESE JAXB JARS IN ${jaxb.dir}"/>
+ <echo message="
+activation.jar
+commons-beanutils.jar
+commons-collections.jar
+commons-digester.jar
+commons-logging.jar
+jaas.jar
+jax-qname.jar
+jaxb-api.jar
+jaxb-impl.jar
+jaxb-libs.jar
+jaxb-xjc.jar
+jta-spec1_0_1.jar
+mail.jar
+namespace.jar
+relaxngDatatype.jar
+xsdlib.jar
+endorsed/dom.jar
+endorsed/sax.jar
+endorsed/xalan.jar
+endorsed/xercesImpl.jar
+endorsed/xsltc.jar
+"/>
+ <echo message="THEN SET JAXB_LIBDIR IN YOUR ENVIRONMENT TO POINT TO ${jaxb.dir}"/>
+
+ </target>
+
+ <target name="build.tools">
+ <mkdir dir="${build.dir}"/>
+ <javac srcdir="${src.dir}"
+ destdir="${build.dir}"
+ debug="on"
+ fork="yes"
+ memoryMaximumSize="1000M"
+ compiler="modern"
+ executable="${env.JAVA_HOME}/bin/javac"
+ classpathref="tools.classpath"
+ includes="org/apache/xmlbeans/test/tools/**"
+ source="1.4">
+ </javac>
+ </target>
+
+ <target name="build.v2.perf">
+ <mkdir dir="${build.dir}"/>
+ <javac srcdir="${src.dir}"
+ destdir="${build.dir}"
+ debug="on"
+ fork="yes"
+ memoryMaximumSize="1000M"
+ compiler="modern"
+ executable="${env.JAVA_HOME}/bin/javac"
+ classpathref="v2.classpath"
+ includes="org/apache/xmlbeans/test/performance/v2/**,org/apache/xmlbeans/test/performance/utils/**"
+ source="1.4">
+ </javac>
+ </target>
+
+ <target name="build.v1.perf">
+ <mkdir dir="${build.dir}"/>
+ <javac srcdir="${src.dir}"
+ destdir="${build.dir}"
+ debug="on"
+ fork="yes"
+ memoryMaximumSize="1000M"
+ compiler="modern"
+ executable="${env.JAVA_HOME}/bin/javac"
+ classpathref="v1.classpath"
+ includes="org/apache/xmlbeans/test/performance/v1/**,org/apache/xmlbeans/test/performance/utils/**"
+ source="1.4">
+ </javac>
+ </target>
+
+ <target name="build.castor.perf">
+ <mkdir dir="${build.dir}"/>
+ <javac srcdir="${src.dir}"
+ destdir="${build.dir}"
+ debug="on"
+ fork="yes"
+ memoryMaximumSize="1000M"
+ compiler="modern"
+ executable="${env.JAVA_HOME}/bin/javac"
+ classpathref="castor.classpath"
+ includes="org/apache/xmlbeans/test/performance/castor/**,org/apache/xmlbeans/test/performance/utils/**"
+ source="1.4">
+ </javac>
+ </target>
+
+ <target name="build.jibx.perf">
+ <mkdir dir="${build.dir}"/>
+ <javac srcdir="${src.dir}"
+ destdir="${build.dir}"
+ debug="on"
+ fork="yes"
+ memoryMaximumSize="1000M"
+ compiler="modern"
+ executable="${env.JAVA_HOME}/bin/javac"
+ classpathref="jibx.classpath"
+ includes="org/apache/xmlbeans/test/performance/jibx/**,org/apache/xmlbeans/test/performance/utils/**"
+ excludes="org/apache/xmlbeans/test/performance/jibx/binding/**"
+ source="1.4">
+ </javac>
+ </target>
+
+ <target name="build.jaxb.perf" if="jaxb.libdir.exists" depends="check.jaxb.libdir">
+ <mkdir dir="${build.dir}"/>
+ <javac srcdir="${src.dir}"
+ destdir="${build.dir}"
+ debug="on"
+ fork="yes"
+ memoryMaximumSize="1000M"
+ compiler="modern"
+ executable="${env.JAVA_HOME}/bin/javac"
+ classpathref="jaxb.classpath"
+ includes="org/apache/xmlbeans/test/performance/jaxb/**,org/apache/xmlbeans/test/performance/utils/**"
+ source="1.4">
+ </javac>
+ </target>
+
+ <target name="build.xerces.perf">
+ <mkdir dir="${build.dir}"/>
+ <javac srcdir="${src.dir}"
+ destdir="${build.dir}"
+ debug="on"
+ fork="yes"
+ memoryMaximumSize="1000M"
+ compiler="modern"
+ executable="${env.JAVA_HOME}/bin/javac"
+ classpathref="xerces.classpath"
+ includes="org/apache/xmlbeans/test/performance/xerces/**,org/apache/xmlbeans/test/performance/utils/**"
+ source="1.4">
+ </javac>
+ </target>
+
+ <!-- specific schema compile targets -->
+ <target name="os.init">
+ <condition property="scomp" value="${v2.xmlbeans.root}\bin\scomp.cmd">
+ <os family="windows"/>
+ </condition>
+ <condition property="scomp" value="${v2.xmlbeans.root}/bin/scomp">
+ <os family="unix"/>
+ </condition>
+ <echo message="scomp variable=${scomp}"/>
+ </target>
+
+
+ <!-- v2 schema jars -->
+ <target name="v2.schema.jars">
+ <antcall target="v2.schema.build">
+ <param name="xsd.name" value="purchase-order.xsd"/>
+ <param name="jar.name" value="v2-purchase-order.jar"/>
+ </antcall>
+ <antcall target="v2.schema.build">
+ <param name="xsd.name" value="primitives.xsd"/>
+ <param name="jar.name" value="v2-primitives.jar"/>
+ </antcall>
+ <antcall target="v2.schema.build">
+ <param name="xsd.name" value="non-primitives.xsd"/>
+ <param name="jar.name" value="v2-non-primitives.jar"/>
+ </antcall>
+ <antcall target="v2.schema.build">
+ <param name="xsd.name" value="perf-results.xsd"/>
+ <param name="jar.name" value="perf-results.jar"/>
+ </antcall>
+ </target>
+
+ <target name="v2.schema.build" depends="os.init">
+ <echo message="starting"/>
+ <mkdir dir="${temp.dir}"/>
+ <mkdir dir="${schema.jar.build.dir}"/>
+ <chmod file="${v2.xmlbeans.root}/bin/scomp" perm="755"/>
+ <exec dir="${temp.dir}"
+ executable="${scomp}"
+ output="${temp.dir}/scomp_output.txt">
+ <env key="XMLBEANS_HOME" value="${v2.xmlbeans.root}"/>
+ <arg line="-out ${jar.name}"/>
+ <arg line="-d ${temp.dir}"/>
+ <arg line="${test.case.dir}/xsd/${xsd.name}"/>
+ </exec>
+ <copy file="${temp.dir}/${jar.name}" todir="${schema.jar.build.dir}"/>
+ <delete dir="${temp.dir}"/>
+ <echo message="done"/>
+ </target>
+
+
+ <!-- v1 schema jars -->
+ <target name="v1.schema.jars">
+ <antcall target="v1.schema.build">
+ <param name="xsd.name" value="purchase-order.xsd"/>
+ <param name="jar.name" value="v1-purchase-order.jar"/>
+ </antcall>
+ <antcall target="v1.schema.build">
+ <param name="xsd.name" value="primitives.xsd"/>
+ <param name="jar.name" value="v1-primitives.jar"/>
+ </antcall>
+ <antcall target="v1.schema.build">
+ <param name="xsd.name" value="non-primitives.xsd"/>
+ <param name="jar.name" value="v1-non-primitives.jar"/>
+ </antcall>
+ </target>
+
+ <target name="v1.schema.build" depends="os.init">
+ <mkdir dir="${temp.dir}"/>
+ <mkdir dir="${schema.jar.build.dir}"/>
+ <java classname="org.apache.xmlbeans.impl.tool.SchemaCompiler"
+ fork="true"
+ dir="${xmlbeans.perf.root}"
+ classpathref="v1.classpath">
+ <arg line="-out ${temp.dir}/${jar.name}"/>
+ <arg line="-d ${temp.dir}"/>
+ <arg line="${test.case.dir}/xsd/${xsd.name}"/>
+ </java>
+ <copy file="${temp.dir}/${jar.name}" todir="${schema.jar.build.dir}"/>
+ <delete dir="${temp.dir}"/>
+ </target>
+
+ <!-- castor schema jars -->
+ <target name="castor.schema.jars">
+ <antcall target="castor.schema.build">
+ <param name="xsd.name" value="purchase-order.xsd"/>
+ <param name="jar.name" value="castor-purchase-order.jar"/>
+ <param name="ns" value="org.openuri.easypo"/>
+ </antcall>
+ <antcall target="castor.schema.build">
+ <param name="xsd.name" value="primitives.xsd"/>
+ <param name="jar.name" value="castor-primitives.jar"/>
+ <param name="ns" value="org.openuri.primitives"/>
+ </antcall>
+ <antcall target="castor.schema.build">
+ <param name="xsd.name" value="non-primitives.xsd"/>
+ <param name="jar.name" value="castor-non-primitives.jar"/>
+ <param name="ns" value="org.openuri.nonprimitives"/>
+ </antcall>
+ </target>
+
+ <target name="castor.schema.build">
+ <mkdir dir="${temp.dir}"/>
+ <mkdir dir="${schema.jar.build.dir}"/>
+ <java classname="org.exolab.castor.builder.SourceGenerator"
+ fork="true"
+ dir="${xmlbeans.perf.root}"
+ classpathref="castor.classpath">
+ <arg line="-i ${test.case.dir}/xsd/${xsd.name}"/>
+ <arg line="-package ${ns}"/>
+ <arg line="-dest ${temp.dir}"/>
+ <arg line="-f"/>
+ <arg line="-verbose"/>
+ </java>
+ <javac srcdir="${temp.dir}"
+ destdir="${temp.dir}"
+ debug="on"
+ fork="true"
+ memoryMaximumSize="1000M"
+ compiler="modern"
+ executable="${env.JAVA_HOME}/bin/javac"
+ source="1.4"
+ classpathref="castor.classpath"/>
+ <jar destfile="${schema.jar.build.dir}/${jar.name}"
+ basedir="${temp.dir}"/>
+ <delete dir="${temp.dir}"/>
+ </target>
+
+
+ <!-- jibx schema jars -->
+ <target name="jibx.schema.jars">
+ <mkdir dir="${temp.dir}"/>
+ <mkdir dir="${schema.jar.build.dir}"/>
+ <javac srcdir="${src.dir}"
+ destdir="${temp.dir}"
+ debug="on"
+ fork="yes"
+ memoryMaximumSize="1000M"
+ compiler="modern"
+ executable="${env.JAVA_HOME}/bin/javac"
+ classpathref="jibx.binding.classpath"
+ includes="org/apache/xmlbeans/test/performance/jibx/binding/**"
+ excludes="org/apache/xmlbeans/test/performance/castor/**,org/apache/xmlbeans/test/performance/v2/**,org/apache/xmlbeans/test/performance/utils/**"
+ source="1.4">
+ </javac>
+ <java classname="org.jibx.binding.Compile"
+ fork="true"
+ dir="${xmlbeans.perf.root}"
+ classpathref="jibx.binding.classpath">
+ <arg line="-v"/>
+ <arg line="${test.case.dir}/xsd/purchase-order-jibxbinding.xml"/>
+ </java>
+ <jar destfile="${jibx-purchase-order.jar}"
+ basedir="${temp.dir}"/>
+ <delete dir="${temp.dir}"/>
+ </target>
+
+
+ <!-- jaxb schema jars -->
+ <target name="jaxb.schema.jars" if="jaxb.libdir.exists" depends="check.jaxb.libdir">
+ <antcall target="jaxb.schema.build">
+ <param name="xsd.name" value="purchase-order.xsd"/>
+ <param name="jar.name" value="jaxb-purchase-order.jar"/>
+ <param name="ns" value="org.openuri.easypo"/>
+ </antcall>
+ <antcall target="jaxb.schema.build">
+ <param name="xsd.name" value="primitives.xsd"/>
+ <param name="jar.name" value="jaxb-primitives.jar"/>
+ <param name="ns" value="org.openuri.primitives"/>
+ </antcall>
+ <antcall target="jaxb.schema.build">
+ <param name="xsd.name" value="non-primitives.xsd"/>
+ <param name="jar.name" value="jaxb-non-primitives.jar"/>
+ <param name="ns" value="org.openuri.nonprimitives"/>
+ </antcall>
+ </target>
+
+ <target name="check.jaxb.libdir">
+ <available property="jaxb.libdir.exists"
+ file="${jaxb.dir}" type="dir" />
+ </target>
+
+ <target name="jaxb.schema.build">
+ <mkdir dir="${temp.dir}"/>
+ <mkdir dir="${schema.jar.build.dir}"/>
+ <java classname="com.sun.tools.xjc.Driver"
+ fork="true"
+ classpathref="jaxb.classpath"
+ failonerror="true">
+ <arg line="-p ${ns}"/>
+ <arg line="-d ${temp.dir}"/>
+ <arg line="${test.case.dir}/xsd/${xsd.name}"/>
+ </java>
+ <javac srcdir="${temp.dir}"
+ destdir="${temp.dir}"
+ debug="on"
+ fork="yes"
+ memoryMaximumSize="1000M"
+ compiler="modern"
+ executable="${env.JAVA_HOME}/bin/javac"
+ classpathref="jaxb.classpath"
+ source="1.4">
+ </javac>
+ <jar destfile="${schema.jar.build.dir}/${jar.name}"
+ basedir="${temp.dir}"/>
+ <delete dir="${temp.dir}"/>
+ </target>
+
+
+</project>
Added: xmlbeans/trunk/test/perf/cases/xsd/non-primitives.xsd
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/cases/xsd/non-primitives.xsd?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/cases/xsd/non-primitives.xsd Wed Jan 5 13:09:10 2005
@@ -0,0 +1,24 @@
+<xs:schema targetNamespace="http://openuri.org/nonprimitives"
+ xmlns:nonpri="http://openuri.org/nonprimitives"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified">
+ <xs:element name="non-primitives">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="numerics" type="nonpri:numerics" maxOccurs="unbounded"/>
+ <xs:element name="mydate" type="xs:date"/>
+ <xs:element name="mystring" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:complexType name="numerics">
+ <xs:sequence>
+ <xs:element name="mydecimal" type="xs:decimal"/>
+ <xs:element name="myinteger" type="xs:integer"/>
+ <xs:element name="myneginteger" type="xs:negativeInteger"/>
+ <xs:element name="mynonneginteger" type="xs:nonNegativeInteger"/>
+ <xs:element name="mynonposinteger" type="xs:nonPositiveInteger"/>
+ <xs:element name="myposinteger" type="xs:positiveInteger"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
Added: xmlbeans/trunk/test/perf/cases/xsd/perf-results.xsd
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/cases/xsd/perf-results.xsd?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/cases/xsd/perf-results.xsd Wed Jan 5 13:09:10 2005
@@ -0,0 +1,43 @@
+<xs:schema targetNamespace="http://openuri.org/perf"
+ xmlns:perf="http://openuri.org/perf"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified">
+
+ <xs:element name="result-set">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="environment" type="perf:environment" maxOccurs="1"/>
+ <xs:element name="result" type="perf:result" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:complexType name="result">
+ <xs:sequence>
+ <xs:element name="id" type="xs:long"/>
+ <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="time" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="memory" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="hash" type="xs:int" maxOccurs="1"/>
+ <xs:element name="note" type="xs:string"/>
+ <xs:element name="custom" type="perf:custom" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="custom">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="value" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="environment">
+ <xs:sequence>
+ <xs:element name="hostname" type="xs:string"/>
+ <xs:element name="os" type="xs:string"/>
+ <xs:element name="jvm" type="xs:string"/>
+ <xs:element name="date" type="xs:dateTime"/>
+ </xs:sequence>
+ </xs:complexType>
+
+</xs:schema>
Added: xmlbeans/trunk/test/perf/cases/xsd/primitives.xsd
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/cases/xsd/primitives.xsd?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/cases/xsd/primitives.xsd Wed Jan 5 13:09:10 2005
@@ -0,0 +1,29 @@
+<xs:schema targetNamespace="http://openuri.org/primitives"
+ xmlns:pri="http://openuri.org/primitives"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified">
+ <xs:element name="primitives">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="numerics" type="pri:numerics" maxOccurs="unbounded"/>
+ <xs:element name="misc" type="pri:misc"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:complexType name="numerics">
+ <xs:sequence>
+ <xs:element name="mybyte" type="xs:byte"/>
+ <xs:element name="myint" type="xs:int"/>
+ <xs:element name="mylong" type="xs:long"/>
+ <xs:element name="myshort" type="xs:short"/>
+ <xs:element name="myhexbin" type="xs:hexBinary"/>
+ <xs:element name="mydouble" type="xs:double"/>
+ <xs:element name="myfloat" type="xs:float"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="misc">
+ <xs:sequence>
+ <xs:element name="mybool" type="xs:boolean"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
Added: xmlbeans/trunk/test/perf/cases/xsd/purchase-order-1.xml
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/cases/xsd/purchase-order-1.xml?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/cases/xsd/purchase-order-1.xml Wed Jan 5 13:09:10 2005
@@ -0,0 +1,23 @@
+<po:purchase-order xmlns:po="http://openuri.org/easypo">
+ <po:customer>
+ <po:name>Gladys Kravitz</po:name>
+ <po:address>Anytown, PA</po:address>
+ </po:customer>
+ <po:date>2003-01-07T14:16:00-05:00</po:date>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+<po:shipper>
+ <po:name>ZipShip</po:name>
+ <po:per-ounce-rate>0.74</po:per-ounce-rate>
+ </po:shipper>
+</po:purchase-order>
Added: xmlbeans/trunk/test/perf/cases/xsd/purchase-order-2.xml
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/cases/xsd/purchase-order-2.xml?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/cases/xsd/purchase-order-2.xml Wed Jan 5 13:09:10 2005
@@ -0,0 +1,383 @@
+<po:purchase-order xmlns:po="http://openuri.org/easypo">
+ <po:customer>
+ <po:name>Gladys Kravitz</po:name>
+ <po:address>Anytown, PA</po:address>
+ </po:customer>
+ <po:date>2003-01-07T14:16:00-05:00</po:date>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:shipper>
+ <po:name>ZipShip</po:name>
+ <po:per-ounce-rate>0.74</po:per-ounce-rate>
+ </po:shipper>
+</po:purchase-order>
Added: xmlbeans/trunk/test/perf/cases/xsd/purchase-order-3.xml
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/cases/xsd/purchase-order-3.xml?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/cases/xsd/purchase-order-3.xml Wed Jan 5 13:09:10 2005
@@ -0,0 +1,815 @@
+<po:purchase-order xmlns:po="http://openuri.org/easypo">
+ <po:customer>
+ <po:name>Gladys Kravitz</po:name>
+ <po:address>Anytown, PA</po:address>
+ </po:customer>
+ <po:date>2003-01-07T14:16:00-05:00</po:date>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:shipper>
+ <po:name>ZipShip</po:name>
+ <po:per-ounce-rate>0.74</po:per-ounce-rate>
+ </po:shipper>
+</po:purchase-order>
Added: xmlbeans/trunk/test/perf/cases/xsd/purchase-order-4.xml
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/cases/xsd/purchase-order-4.xml?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/cases/xsd/purchase-order-4.xml Wed Jan 5 13:09:10 2005
@@ -0,0 +1,1535 @@
+<po:purchase-order xmlns:po="http://openuri.org/easypo">
+ <po:customer>
+ <po:name>Gladys Kravitz</po:name>
+ <po:address>Anytown, PA</po:address>
+ </po:customer>
+ <po:date>2003-01-07T14:16:00-05:00</po:date>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:shipper>
+ <po:name>ZipShip</po:name>
+ <po:per-ounce-rate>0.74</po:per-ounce-rate>
+ </po:shipper>
+</po:purchase-order>
Added: xmlbeans/trunk/test/perf/cases/xsd/purchase-order-5.xml
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/cases/xsd/purchase-order-5.xml?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/cases/xsd/purchase-order-5.xml Wed Jan 5 13:09:10 2005
@@ -0,0 +1,2075 @@
+<po:purchase-order xmlns:po="http://openuri.org/easypo">
+ <po:customer>
+ <po:name>Gladys Kravitz</po:name>
+ <po:address>Anytown, PA</po:address>
+ </po:customer>
+ <po:date>2003-01-07T14:16:00-05:00</po:date>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:shipper>
+ <po:name>ZipShip</po:name>
+ <po:per-ounce-rate>0.74</po:per-ounce-rate>
+ </po:shipper>
+</po:purchase-order>
Added: xmlbeans/trunk/test/perf/cases/xsd/purchase-order-6.xml
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/cases/xsd/purchase-order-6.xml?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/cases/xsd/purchase-order-6.xml Wed Jan 5 13:09:10 2005
@@ -0,0 +1,2675 @@
+<po:purchase-order xmlns:po="http://openuri.org/easypo">
+ <po:customer>
+ <po:name>Gladys Kravitz</po:name>
+ <po:address>Anytown, PA</po:address>
+ </po:customer>
+ <po:date>2003-01-07T14:16:00-05:00</po:date>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:shipper>
+ <po:name>ZipShip</po:name>
+ <po:per-ounce-rate>0.74</po:per-ounce-rate>
+ </po:shipper>
+</po:purchase-order>
Added: xmlbeans/trunk/test/perf/cases/xsd/purchase-order-7.xml
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/cases/xsd/purchase-order-7.xml?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/cases/xsd/purchase-order-7.xml Wed Jan 5 13:09:10 2005
@@ -0,0 +1,3311 @@
+<po:purchase-order xmlns:po="http://openuri.org/easypo">
+ <po:customer>
+ <po:name>Gladys Kravitz</po:name>
+ <po:address>Anytown, PA</po:address>
+ </po:customer>
+ <po:date>2003-01-07T14:16:00-05:00</po:date>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 1</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>21.79</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:line-item>
+ <po:description>Burnham's Celestial Handbook, Vol 2</po:description>
+ <po:per-unit-ounces>5</po:per-unit-ounces>
+ <po:price>19.89</po:price>
+ <po:quantity>2</po:quantity>
+ </po:line-item>
+ <po:shipper>
+ <po:name>ZipShip</po:name>
+ <po:per-ounce-rate>0.74</po:per-ounce-rate>
+ </po:shipper>
+</po:purchase-order>
Added: xmlbeans/trunk/test/perf/cases/xsd/purchase-order-jibxbinding.xml
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/cases/xsd/purchase-order-jibxbinding.xml?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/cases/xsd/purchase-order-jibxbinding.xml Wed Jan 5 13:09:10 2005
@@ -0,0 +1,22 @@
+<binding>
+ <mapping name="purchase-order" class="org.apache.xmlbeans.test.performance.jibx.binding.JibxPurchaseOrder">
+ <namespace uri="http://openuri.org/easypo" default="elements"/>
+ <structure name="customer" field="customer">
+ <value name="name" field="name"/>
+ <value name="address" field="address"/>
+ </structure>
+ <value name="date" field="date"/>
+ <collection field="lineitems">
+ <structure name="line-item" type="org.apache.xmlbeans.test.performance.jibx.binding.Lineitem">
+ <value name="description" field="description"/>
+ <value name="per-unit-ounces" field="perunitounces"/>
+ <value name="price" field="price"/>
+ <value name="quantity" field="quantity"/>
+ </structure>
+ </collection>
+ <structure name="shipper" field="shipper">
+ <value name="name" field="name"/>
+ <value name="per-ounce-rate" field="perouncerate"/>
+ </structure>
+ </mapping>
+</binding>
Added: xmlbeans/trunk/test/perf/cases/xsd/purchase-order.xsd
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/cases/xsd/purchase-order.xsd?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/cases/xsd/purchase-order.xsd Wed Jan 5 13:09:10 2005
@@ -0,0 +1,36 @@
+<xs:schema targetNamespace="http://openuri.org/easypo"
+ xmlns:po="http://openuri.org/easypo"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified">
+
+ <xs:element name="purchase-order">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="customer" type="po:customer"/>
+ <xs:element name="date" type="xs:dateTime"/>
+ <xs:element name="line-item" type="po:line-item" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="shipper" type="po:shipper" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:complexType name="customer">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string"/>
+ <xs:element name="address" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="line-item">
+ <xs:sequence>
+ <xs:element name="description" type="xs:string"/>
+ <xs:element name="per-unit-ounces" type="xs:decimal"/>
+ <xs:element name="price" type="xs:double"/>
+ <xs:element name="quantity" type="xs:int"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="shipper">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string"/>
+ <xs:element name="per-ounce-rate" type="xs:decimal"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
Added: xmlbeans/trunk/test/perf/env.bat
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/env.bat?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/env.bat Wed Jan 5 13:09:10 2005
@@ -0,0 +1,3 @@
+set XMLBEANS_PERFROOT=%~dp0.
+
+echo "MAKE SURE TO SET JAXB_LIBDIR IN YOUR ENVIRONMENT"
Added: xmlbeans/trunk/test/perf/env.sh
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/env.sh?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/env.sh Wed Jan 5 13:09:10 2005
@@ -0,0 +1,4 @@
+XMLBEANS_PERFROOT=`pwd`
+export XMLBEANS_PERFROOT
+
+echo "MAKE SURE TO SET JAXB_LIBDIR IN YOUR ENVIRONMENT"
Added: xmlbeans/trunk/test/perf/results.xml
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/results.xml?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/results.xml Wed Jan 5 13:09:10 2005
@@ -0,0 +1,73 @@
+<!-- build file -->
+<project name="xmlbeans-perf" default="usage">
+
+ <target name="usage">
+ <echo>
+ This utility takes a flat file and emits an instance of perf-results.xsd.
+ The ant task extends the MatchingTask class, so many files may be processed
+ at a time. The format of a flat perf test result is like the following (all on one line):
+
+ [delimeter] [testname] time [long time value] hash [int hash value] customparam=customparamvalue
+
+ or
+
+ [delimeter] [testname] memory [long memory value] hash [int hash value] customparam=customparamvalue
+
+ ----------------------------------------------------
+ For example, a file call foo.log that contains this:
+
+ TEST: mytest time 100 hash -1234 color=blue type=invalid
+
+ could be processed like this:
+
+ ant generate.results -Ddelimeter="TEST:" -Dsrcdir="." -Dincludes="foo.log"
+
+ This would emit a file called foo.log.xml.
+
+ There are default values for all possible parameters. View contents of this file to see them.
+
+ </echo>
+ </target>
+
+
+ <property environment="env"/>
+
+ <!-- root properties used for finding everything -->
+ <property name="xmlbeans.perf.root" value="${basedir}"/>
+ <property name="v2.xmlbeans.root" value="${env.XMLBEANS_HOME}"/>
+ <property name="build.dir" value="${xmlbeans.perf.root}/build"/>
+
+ <!-- default properties for results generation -->
+ <property name="srcdir" value="${xmlbeans.perf.root}/bin"/>
+ <property name="gendir" value="${xmlbeans.perf.root}/reports"/>
+ <property name="includes" value="*.log"/>
+ <property name="hostname" value="cg2kperf05.beanw.com"/>
+ <property name="cpuinfo" value="2 x 2.7Ghz"/>
+ <property name="sysmem" value="2G"/>
+ <property name="delimiter" value="TEST: "/>
+
+ <!-- lib directories -->
+ <property name="v2.lib.dir" value="${v2.xmlbeans.root}/build/lib"/>
+
+ <!-- util schema jar(s) -->
+ <property name="perf-results.jar" value="${xmlbeans.perf.root}/schema_build/perf-results.jar"/>
+
+ <!-- classpath(s) -->
+ <path id="result.classpath">
+ <fileset dir="${v2.lib.dir}" includes="*.jar"/>
+ <pathelement path="${build.dir}"/>
+ <pathelement path="${perf-results.jar}"/>
+ <pathelement path="${ant.jar}"/>
+ </path>
+
+
+ <taskdef name="perf-result" classname="org.apache.xmlbeans.test.tools.PerfResultTask" classpathref="result.classpath"/>
+ <target name="generate.results">
+ <perf-result srcdir="${srcdir}"
+ includes="${includes}"
+ gendir="${gendir}"
+ delimiter="${delimiter}"
+ hostname="${hostname}"/>
+ </target>
+
+</project>
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/NPrimTopDownCastor.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/NPrimTopDownCastor.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/NPrimTopDownCastor.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,87 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.castor;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// castor-specific date type
+import org.exolab.castor.types.Date;
+
+// from castor-generated schema jar(s)
+import org.openuri.nonprimitives.NonPrimitives;
+import org.openuri.nonprimitives.Numerics;
+
+public class NPrimTopDownCastor
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+
+ NPrimTopDownCastor test = new NPrimTopDownCastor();
+ long cputime;
+ int hash = 0;
+ Date date = new Date();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(date);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(date);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+NPrimTopDownCastor.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(Date p_date) throws Exception
+ {
+ // create the doc
+ NonPrimitives nprim = new NonPrimitives();
+
+ // create and initialize numeric elements
+ Numerics[] numerics = new Numerics[Constants.PO_NUM_LINEITEMS];
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ numerics[i] = new Numerics();
+ numerics[i].setMydecimal(Constants.myBigDecimal);
+ numerics[i].setMyinteger(Constants.myInt);
+ numerics[i].setMyneginteger(Constants.myNegInt);
+ numerics[i].setMynonneginteger(Constants.myInt);
+ numerics[i].setMynonposinteger(Constants.myNegInt);
+ numerics[i].setMyposinteger(Constants.myInt);
+ }
+ nprim.setNumerics(numerics);
+
+ // set the date and string fields
+ nprim.setMydate(p_date);
+ nprim.setMystring(Constants.myString);
+
+
+ // calculate a hash to return
+ int hash = ( nprim.getNumerics().length ) * 17;
+ return hash;
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POReadAllCastor.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POReadAllCastor.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POReadAllCastor.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,119 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.castor;
+
+//import java.io.File;
+import java.io.CharArrayReader;
+//import java.io.FileReader;
+//import java.io.BufferedReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// from castor-generated schema jar(s)
+import org.openuri.easypo.PurchaseOrder;
+import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+import org.openuri.easypo.Shipper;
+
+
+public class POReadAllCastor
+{
+ public static void main(String[] args) throws Exception
+ {
+ final int iterations = Constants.ITERATIONS;
+
+ String filename;
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POReadAllCastor test = new POReadAllCastor();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POReadAllCastor.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ int iSumStrings = 0;
+ // unmarshall/retreive the purchase order
+ PurchaseOrder po = (PurchaseOrder)PurchaseOrder.unmarshal(reader);
+ // retreive the customer element
+ Customer customer = po.getCustomer();
+ iSumStrings += customer.getAddress().length();
+ iSumStrings += customer.getName().length();
+ // retreive the date
+ po.getDate();
+ // retreive all line items (castor returns an array if
+ // no index is specified
+ LineItem[] lineitems = po.getLineItem();
+ // sum the line item prices and get the other childs
+ float sum = 0;
+ for(int i=0; i<lineitems.length; i++){
+ iSumStrings += lineitems[i].getDescription().length();
+ lineitems[i].getPerUnitOunces();
+ lineitems[i].getQuantity();
+ sum += lineitems[i].getPrice();
+ }
+ // retreive the shipper element
+ Shipper shipper = po.getShipper();
+ iSumStrings += shipper.getName().length();
+ shipper.getPerOunceRate();
+
+ return iSumStrings;
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POReadOneCastor.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POReadOneCastor.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POReadOneCastor.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,98 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.castor;
+
+//import java.io.File;
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// from castor-generated schema jar(s)
+import org.openuri.easypo.PurchaseOrder;
+//import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+//import org.openuri.easypo.Shipper;
+
+
+public class POReadOneCastor
+{
+ public static void main(String[] args) throws Exception
+ {
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POReadOneCastor test = new POReadOneCastor();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POReadOneCastor.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ // unmarshall/retreive the purchase order
+ PurchaseOrder po = (PurchaseOrder)PurchaseOrder.unmarshal(reader);
+
+ // retreive the first line item
+ LineItem lineitem = po.getLineItem(0);
+
+ // return the char length of the description
+ return lineitem.getDescription().length();
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POTopDownCastor.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POTopDownCastor.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POTopDownCastor.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,95 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.castor;
+
+import java.util.Date;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// from castor-generated schema jar(s)
+import org.openuri.easypo.PurchaseOrder;
+import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+import org.openuri.easypo.Shipper;
+
+public class POTopDownCastor
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+
+ POTopDownCastor test = new POTopDownCastor();
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POTopDownCastor.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the purchase order
+ PurchaseOrder po = new PurchaseOrder();
+
+ // create and initialize the customer
+ Customer customer = new Customer();
+ customer.setName(Constants.PO_CUSTOMER_NAME);
+ customer.setAddress(Constants.PO_CUSTOMER_ADDR);
+ po.setCustomer(customer);
+
+ // set the date
+ po.setDate(new Date());
+
+ // create and initialize the line item array
+ LineItem[] lineitems = new LineItem[Constants.PO_NUM_LINEITEMS];
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ lineitems[i] = new LineItem();
+ lineitems[i].setDescription(Constants.PO_LI_DESC);
+ lineitems[i].setPerUnitOunces(Constants.PO_LI_PUO);
+ lineitems[i].setPrice(Constants.PO_LI_PRICE);
+ lineitems[i].setQuantity(Constants.PO_LI_QUANTITY);
+ }
+ po.setLineItem(lineitems);
+
+ // create and initialize the shipper
+ Shipper shipper = new Shipper();
+ shipper.setName(Constants.PO_SHIPPER_NAME);
+ shipper.setPerOunceRate(Constants.PO_SHIPPER_POR);
+ po.setShipper(shipper);
+
+ // calculate a hash to return
+ int hash = ( po.getLineItem().length ) * 17;
+ return hash;
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POTopDownSaveCastor.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POTopDownSaveCastor.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/POTopDownSaveCastor.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,102 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.castor;
+
+import java.io.StringWriter;
+import java.util.Date;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// from castor-generated schema jar(s)
+import org.openuri.easypo.PurchaseOrder;
+import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+import org.openuri.easypo.Shipper;
+
+public class POTopDownSaveCastor
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+
+ POTopDownSaveCastor test = new POTopDownSaveCastor();
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POTopDownSaveCastor.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the purchase order
+ PurchaseOrder po = new PurchaseOrder();
+
+ // create and initialize the customer
+ Customer customer = new Customer();
+ customer.setName(Constants.PO_CUSTOMER_NAME);
+ customer.setAddress(Constants.PO_CUSTOMER_ADDR);
+ po.setCustomer(customer);
+
+ // set the date
+ po.setDate(new Date());
+
+ // create and initialize the line item array
+ LineItem[] lineitems = new LineItem[Constants.PO_NUM_LINEITEMS];
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ lineitems[i] = new LineItem();
+ lineitems[i].setDescription(Constants.PO_LI_DESC);
+ lineitems[i].setPerUnitOunces(Constants.PO_LI_PUO);
+ lineitems[i].setPrice(Constants.PO_LI_PRICE);
+ lineitems[i].setQuantity(Constants.PO_LI_QUANTITY);
+ }
+ po.setLineItem(lineitems);
+
+ // create and initialize the shipper
+ Shipper shipper = new Shipper();
+ shipper.setName(Constants.PO_SHIPPER_NAME);
+ shipper.setPerOunceRate(Constants.PO_SHIPPER_POR);
+ po.setShipper(shipper);
+
+ // grab the instance that was constructed
+ StringWriter writer = new StringWriter();
+ po.marshal(writer);
+ writer.toString();
+ writer.close();
+
+ // calculate a hash to return
+ int hash = ( po.getLineItem().length ) * 17;
+ return hash;
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/PrimTopDownCastor.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/PrimTopDownCastor.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/castor/PrimTopDownCastor.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,86 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.castor;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// from castor-generated schema jar(s)
+import org.openuri.primitives.Primitives;
+import org.openuri.primitives.Numerics;
+import org.openuri.primitives.Misc;
+
+public class PrimTopDownCastor
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+
+ PrimTopDownCastor test = new PrimTopDownCastor();
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+PrimTopDownCastor.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the doc
+ Primitives prim = new Primitives();
+
+ // create and initialize numeric elements
+ Numerics[] numerics = new Numerics[Constants.PO_NUM_LINEITEMS];
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ numerics[i] = new Numerics();
+ numerics[i].setMybyte(Constants.myByte);
+ numerics[i].setMyint(Constants.myInt);
+ numerics[i].setMylong(Constants.myLong);
+ numerics[i].setMyshort(Constants.myShort);
+ numerics[i].setMyhexbin(Constants.myHexbin);
+ numerics[i].setMydouble(Constants.myDouble);
+ numerics[i].setMyfloat(Constants.myFloat);
+ }
+ prim.setNumerics(numerics);
+
+ // create and initialize the misc element
+ Misc misc = new Misc();
+ misc.setMybool(Constants.myBool);
+ prim.setMisc(misc);
+
+
+ // calculate a hash to return
+ int hash = ( prim.getNumerics().length ) * 17;
+ return hash;
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/NPrimTopDownJaxb.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/NPrimTopDownJaxb.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/NPrimTopDownJaxb.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,87 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.jaxb;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by jaxb
+//import javax.xml.bind.JAXBContext;
+//import javax.xml.bind.Unmarshaller;
+//import javax.xml.transform.stream.StreamSource;
+//import java.util.List;
+
+// from jaxb-generated schema jar(s)
+import org.openuri.nonprimitives.impl.NonPrimitivesImpl;
+import org.openuri.nonprimitives.impl.NumericsImpl;
+
+
+public class NPrimTopDownJaxb
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+
+ NPrimTopDownJaxb test = new NPrimTopDownJaxb();
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+NPrimTopDownJaxb.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the doc
+ NonPrimitivesImpl nprim = new NonPrimitivesImpl();
+
+ // create and initialize the numerics
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ NumericsImpl numerics = new NumericsImpl();
+ numerics.setMydecimal(Constants.myBigDecimal);
+ numerics.setMyinteger(Constants.myPosBigInteger);
+ numerics.setMyneginteger(Constants.myNegBigInteger);
+ numerics.setMynonneginteger(Constants.myPosBigInteger);
+ numerics.setMynonposinteger(Constants.myNegBigInteger);
+ numerics.setMyposinteger(Constants.myPosBigInteger);
+ nprim.getNumerics().add(numerics);
+ }
+
+ // create and initialize the misc element
+ nprim.setMydate(Constants.myDate);
+ nprim.setMystring(Constants.myString);
+
+ // calculate a hash to return
+ int hash = ( nprim.getNumerics().size() ) * 17;
+ return hash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POReadAllJaxb.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POReadAllJaxb.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POReadAllJaxb.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,129 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.jaxb;
+
+//import java.io.File;
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by jaxb
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.transform.stream.StreamSource;
+import java.util.List;
+
+// from jaxb-generated schema jar(s)
+import org.openuri.easypo.PurchaseOrder;
+import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+import org.openuri.easypo.Shipper;
+
+
+public class POReadAllJaxb
+{
+ public static void main(String[] args) throws Exception
+ {
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POReadAllJaxb test = new POReadAllJaxb();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POReadAllJaxb.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ int iSumStrings = 0;
+ // create the xml source from the reader
+ StreamSource source = new StreamSource(reader);
+ // unmarshall the xml instance
+ JAXBContext context = JAXBContext.newInstance("org.openuri.easypo");
+ Unmarshaller unmarshaller = context.createUnmarshaller();
+ unmarshaller.setValidating(false);
+ PurchaseOrder po =
+ (PurchaseOrder) unmarshaller.unmarshal(source);
+
+ // retreive the customer element
+ Customer customer = po.getCustomer();
+ iSumStrings += customer.getAddress().length();
+ iSumStrings += customer.getName().length();
+ // retreive the date
+ po.getDate();
+ // retreive all line items
+ List lineitems = po.getLineItem();
+ // sum the line item prices and get the other childs
+ float sum = 0;
+ for(int i=0; i<lineitems.size(); i++){
+ LineItem li = (LineItem) lineitems.get(i);
+ iSumStrings += li.getDescription().length();
+ li.getPerUnitOunces();
+ li.getQuantity();
+ sum += li.getPrice();
+ }
+ // retreive the shipper element
+ Shipper shipper = po.getShipper();
+ iSumStrings += shipper.getName().length();
+ shipper.getPerOunceRate();
+
+ return iSumStrings;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POReadOneJaxb.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POReadOneJaxb.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POReadOneJaxb.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,113 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.jaxb;
+
+//import java.io.File;
+//import java.io.IOException;
+//import java.io.FileNotFoundException;
+import java.io.CharArrayReader;
+//import java.lang.UnsupportedOperationException;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by jaxb
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.transform.stream.StreamSource;
+//import java.util.List;
+
+// from jaxb-generated schema jar(s)
+import org.openuri.easypo.PurchaseOrder;
+//import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+//import org.openuri.easypo.Shipper;
+
+
+public class POReadOneJaxb
+{
+ public static void main(String[] args) throws Exception
+ {
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POReadOneJaxb test = new POReadOneJaxb();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POReadOneJaxb.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ // create the xml source from the reader
+ StreamSource source = new StreamSource(reader);
+ // unmarshall the xml instance
+ JAXBContext context = JAXBContext.newInstance("org.openuri.easypo");
+ Unmarshaller unmarshaller = context.createUnmarshaller();
+ unmarshaller.setValidating(false);
+ PurchaseOrder po =
+ (PurchaseOrder) unmarshaller.unmarshal(source);
+
+ // retreive the first line item
+ LineItem lineitem = (LineItem) po.getLineItem().get(0);
+
+ // return the char length of the description
+ return lineitem.getDescription().length();
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POTopDownJaxb.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POTopDownJaxb.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POTopDownJaxb.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,101 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.jaxb;
+
+import java.util.Calendar;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by jaxb
+//import javax.xml.bind.JAXBContext;
+//import javax.xml.bind.Unmarshaller;
+//import javax.xml.transform.stream.StreamSource;
+//import java.util.List;
+
+// from jaxb-generated schema jar(s)
+import org.openuri.easypo.impl.PurchaseOrderImpl;
+import org.openuri.easypo.impl.CustomerImpl;
+import org.openuri.easypo.impl.LineItemImpl;
+import org.openuri.easypo.impl.ShipperImpl;
+
+
+public class POTopDownJaxb
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+
+ POTopDownJaxb test = new POTopDownJaxb();
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POTopDownJaxb.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the purchase order
+ PurchaseOrderImpl po = new PurchaseOrderImpl();
+
+ // create and initialize the customer
+ CustomerImpl customer = new CustomerImpl();
+ customer.setName(Constants.PO_CUSTOMER_NAME);
+ customer.setAddress(Constants.PO_CUSTOMER_ADDR);
+ po.setCustomer(customer);
+
+ // set the date
+ po.setDate(Calendar.getInstance());
+
+ // create and initialize the line item array
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ LineItemImpl li = new LineItemImpl();
+ li.setDescription(Constants.PO_LI_DESC);
+ li.setPerUnitOunces(Constants.PO_LI_PUO);
+ li.setPrice(Constants.PO_LI_PRICE);
+ li.setQuantity(Constants.PO_LI_QUANTITY);
+ po.getLineItem().add(li);
+ }
+
+ // create and initialize the shipper
+ ShipperImpl shipper = new ShipperImpl();
+ shipper.setName(Constants.PO_SHIPPER_NAME);
+ shipper.setPerOunceRate(Constants.PO_SHIPPER_POR);
+ po.setShipper(shipper);
+
+ // calculate a hash to return
+ int hash = ( po.getLineItem().size() ) * 17;
+ return hash;
+
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POTopDownSaveJaxb.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POTopDownSaveJaxb.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/POTopDownSaveJaxb.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,108 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.jaxb;
+
+import java.util.Calendar;
+import java.io.StringWriter;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by jaxb
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.Marshaller;
+//import javax.xml.transform.stream.StreamSource;
+//import java.util.List;
+
+// from jaxb-generated schema jar(s)
+import org.openuri.easypo.impl.PurchaseOrderImpl;
+import org.openuri.easypo.impl.CustomerImpl;
+import org.openuri.easypo.impl.LineItemImpl;
+import org.openuri.easypo.impl.ShipperImpl;
+
+
+public class POTopDownSaveJaxb
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+
+ POTopDownSaveJaxb test = new POTopDownSaveJaxb();
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POTopDownSaveJaxb.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the purchase order
+ PurchaseOrderImpl po = new PurchaseOrderImpl();
+
+ // create and initialize the customer
+ CustomerImpl customer = new CustomerImpl();
+ customer.setName(Constants.PO_CUSTOMER_NAME);
+ customer.setAddress(Constants.PO_CUSTOMER_ADDR);
+ po.setCustomer(customer);
+
+ // set the date
+ po.setDate(Calendar.getInstance());
+
+ // create and initialize the line item array
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ LineItemImpl li = new LineItemImpl();
+ li.setDescription(Constants.PO_LI_DESC);
+ li.setPerUnitOunces(Constants.PO_LI_PUO);
+ li.setPrice(Constants.PO_LI_PRICE);
+ li.setQuantity(Constants.PO_LI_QUANTITY);
+ po.getLineItem().add(li);
+ }
+
+ // create and initialize the shipper
+ ShipperImpl shipper = new ShipperImpl();
+ shipper.setName(Constants.PO_SHIPPER_NAME);
+ shipper.setPerOunceRate(Constants.PO_SHIPPER_POR);
+ po.setShipper(shipper);
+
+ // grab the instance that was constructed
+ JAXBContext context = JAXBContext.newInstance("org.openuri.easypo");
+ Marshaller marshaller = context.createMarshaller();
+ StringWriter writer = new StringWriter();
+ marshaller.marshal(po,writer);
+
+ // calculate a hash to return
+ int hash = ( po.getLineItem().size() ) * 17;
+ return hash;
+
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/PrimTopDownJaxb.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/PrimTopDownJaxb.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jaxb/PrimTopDownJaxb.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,91 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.jaxb;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by jaxb
+//import javax.xml.bind.JAXBContext;
+//import javax.xml.bind.Unmarshaller;
+//import javax.xml.transform.stream.StreamSource;
+//import java.util.List;
+
+// from jaxb-generated schema jar(s)
+import org.openuri.primitives.impl.PrimitivesImpl;
+import org.openuri.primitives.impl.NumericsImpl;
+import org.openuri.primitives.impl.MiscImpl;
+
+
+public class PrimTopDownJaxb
+{
+ public static void main(String[] args) throws Exception
+ {
+ final int iterations = Constants.ITERATIONS;
+
+ PrimTopDownJaxb test = new PrimTopDownJaxb();
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+PrimTopDownJaxb.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the doc
+ PrimitivesImpl prim = new PrimitivesImpl();
+
+ // create and initialize the numerics
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ NumericsImpl numerics = new NumericsImpl();
+ numerics.setMybyte(Constants.myByte);
+ numerics.setMyint(Constants.myInt);
+ numerics.setMylong(Constants.myLong);
+ numerics.setMyshort(Constants.myShort);
+ numerics.setMyhexbin(Constants.myHexbin);
+ numerics.setMydouble(Constants.myDouble);
+ numerics.setMyfloat(Constants.myFloat);
+ prim.getNumerics().add(numerics);
+ }
+
+ // create and initialize the misc element
+ MiscImpl misc = new MiscImpl();
+ misc.setMybool(Constants.myBool);
+ prim.setMisc(misc);
+
+ // calculate a hash to return
+ int hash = ( prim.getNumerics().size() ) * 17;
+ return hash;
+
+
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/POReadAllJibx.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/POReadAllJibx.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/POReadAllJibx.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,128 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.jibx;
+
+//import java.io.File;
+import java.io.CharArrayReader;
+import java.util.ArrayList;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by jibx
+import org.jibx.runtime.BindingDirectory;
+import org.jibx.runtime.IBindingFactory;
+import org.jibx.runtime.IUnmarshallingContext;
+
+// from jibx-generated binding jar(s)
+import org.apache.xmlbeans.test.performance.jibx.binding.JibxPurchaseOrder;
+import org.apache.xmlbeans.test.performance.jibx.binding.Customer;
+import org.apache.xmlbeans.test.performance.jibx.binding.Lineitem;
+import org.apache.xmlbeans.test.performance.jibx.binding.Shipper;
+
+
+public class POReadAllJibx
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POReadAllJibx test = new POReadAllJibx();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POReadAllJibx.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ int iSumStrings = 0;
+ // unmarshall the xml instance
+ IBindingFactory bfactory =
+ BindingDirectory.getFactory(JibxPurchaseOrder.class);
+ IUnmarshallingContext ucontext = bfactory.createUnmarshallingContext();
+ // retreive the purchase order
+ JibxPurchaseOrder po = (JibxPurchaseOrder) ucontext.unmarshalDocument(reader);
+ // retreive the customer element
+ Customer customer = po.getCustomer();
+ iSumStrings += customer.getAddress().length();
+ iSumStrings += customer.getName().length();
+ // retreive the date
+ po.getDate();
+ // retreive all line items
+ ArrayList lineitems = po.getLineitems();
+ // sum the line item prices and get the other childs
+ float sum = 0;
+ for(int i=0; i<lineitems.size(); i++){
+ Lineitem lineitem = (Lineitem) lineitems.get(i);
+ iSumStrings += lineitem.getDescription().length();
+ lineitem.getPerUnitOunces();
+ lineitem.getQuantity();
+ sum += lineitem.getPrice();
+ }
+ // retreive the shipper element
+ Shipper shipper = po.getShipper();
+ iSumStrings += shipper.getName().length();
+ shipper.getPerOunceRate();
+
+ return iSumStrings;
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/POReadOneJibx.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/POReadOneJibx.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/POReadOneJibx.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,110 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.jibx;
+
+//import java.io.File;
+import java.io.CharArrayReader;
+//import java.util.ArrayList;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by jibx
+import org.jibx.runtime.BindingDirectory;
+import org.jibx.runtime.IBindingFactory;
+import org.jibx.runtime.IUnmarshallingContext;
+
+// from jibx-generated binding jar(s)
+import org.apache.xmlbeans.test.performance.jibx.binding.JibxPurchaseOrder;
+//import org.apache.xmlbeans.test.performance.jibx.binding.Customer;
+import org.apache.xmlbeans.test.performance.jibx.binding.Lineitem;
+//import org.apache.xmlbeans.test.performance.jibx.binding.Shipper;
+
+
+public class POReadOneJibx
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POReadOneJibx test = new POReadOneJibx();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POReadOneJibx.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ // unmarshall the xml instance
+ IBindingFactory bfactory =
+ BindingDirectory.getFactory(JibxPurchaseOrder.class);
+ IUnmarshallingContext ucontext = bfactory.createUnmarshallingContext();
+ // retreive the purchase order
+ JibxPurchaseOrder po = (JibxPurchaseOrder) ucontext.unmarshalDocument(reader);
+
+ // retreive the first line item
+ Lineitem lineitem = (Lineitem) po.getLineitems().get(0);
+
+ // return the char length of the description
+ return lineitem.getDescription().length();
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/Customer.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/Customer.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/Customer.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,23 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.jibx.binding;
+
+public class Customer{
+ private String name;
+ private String address;
+
+ public String getName(){return name;}
+ public String getAddress(){return address;}
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/JibxPurchaseOrder.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/JibxPurchaseOrder.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/JibxPurchaseOrder.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,31 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.jibx.binding;
+
+//import java.util.Calendar;
+import java.util.ArrayList;
+
+public class JibxPurchaseOrder{
+ private Customer customer;
+ // NEED TO: implement a deserializer for Calendar
+ private String date;
+ private ArrayList lineitems;
+ private Shipper shipper;
+
+ public Customer getCustomer(){return customer;}
+ public String getDate(){return date;}
+ public ArrayList getLineitems(){return lineitems;}
+ public Shipper getShipper(){return shipper;}
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/Lineitem.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/Lineitem.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/Lineitem.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,29 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.jibx.binding;
+
+import java.math.BigDecimal;
+
+public class Lineitem{
+ private String description;
+ private BigDecimal perunitounces;
+ private double price;
+ private int quantity;
+
+ public String getDescription(){return description;}
+ public BigDecimal getPerUnitOunces(){return perunitounces;}
+ public double getPrice(){return price;}
+ public int getQuantity(){return quantity;}
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/Shipper.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/Shipper.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/jibx/binding/Shipper.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,25 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.jibx.binding;
+
+import java.math.BigDecimal;
+
+public class Shipper{
+ private String name;
+ private BigDecimal perouncerate;
+
+ public String getName(){return name;}
+ public BigDecimal getPerOunceRate(){return perouncerate;}
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/utils/Constants.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/utils/Constants.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/utils/Constants.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,106 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.utils;
+
+import java.io.File;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.GregorianCalendar;
+
+public class Constants
+{
+ private Constants(){}
+
+ public static final String DELIM = "TEST: ";
+
+ public static final String P = File.separator;
+ public static final int ITERATIONS = 6000;
+ public static final int CURSOR_ITERATIONS = 1000;
+ public static final int XML_SIZE = 10000;
+
+ // for getting/setting scenarios
+ public static final int GET_SET_ITERATIONS = 1000000;
+ public static final int STRING_SIZE = 1000;
+
+ // schema instances
+ public static final String XSD_DIR = System.getProperty("PERF_ROOT")+P+"cases"+P+"xsd";
+ public static final String PO_XSD = XSD_DIR+P+"purchase-order.xsd";
+ public static final String PO_INSTANCE_1 = XSD_DIR+P+"purchase-order-1.xml";
+ public static final String PO_INSTANCE_2 = XSD_DIR+P+"purchase-order-2.xml";
+ public static final String PO_INSTANCE_3 = XSD_DIR+P+"purchase-order-3.xml";
+ public static final String PO_INSTANCE_4 = XSD_DIR+P+"purchase-order-4.xml";
+ public static final String PO_INSTANCE_5 = XSD_DIR+P+"purchase-order-5.xml";
+ public static final String PO_INSTANCE_6 = XSD_DIR+P+"purchase-order-6.xml";
+ public static final String PO_INSTANCE_7 = XSD_DIR+P+"purchase-order-7.xml";
+
+ // values for purchase order in-memory construction
+ public static final String PO_CUSTOMER_NAME = "First Last";
+ public static final String PO_CUSTOMER_ADDR = "123 Sesame St.";
+ public static final int PO_NUM_LINEITEMS = 50;
+ public static final String PO_LI_DESC = "line item description";
+ public static final BigDecimal PO_LI_PUO = new BigDecimal("1.23");
+ public static final double PO_LI_PRICE = 1.23000;
+ public static final int PO_LI_QUANTITY = 123;
+ public static final String PO_SHIPPER_NAME = "Joe Shipper";
+ public static final BigDecimal PO_SHIPPER_POR = new BigDecimal("4.56");
+ public static final String PO_NS = "http://openuri.org/easypo";
+ // for xerces dom/sax
+ public static final String PO_DATE_STRING = "2003-01-07T14:16:00-05:00";
+ public static final String PO_LI_PUO_STRING = "1.23";
+ public static final String PO_LI_PRICE_STRING = "1.23000";
+ public static final String PO_LI_QUANTITY_STRING = "123";
+ public static final String PO_SHIPPER_POR_STRING = "4.56";
+ // for sax parsing
+ public static final String sAddress = "address";
+ public static final String sName = "name";
+ public static final String sDesc = "description";
+ public static final String sPrice = "price";
+ public static final String sLineItem = "line-item";
+ // for sax construction;
+ public static final int initialBuffSize = 2048;
+ public static final String prefix = "po";
+ public static final String qNamespace = "xmlns:"+prefix;
+ public static final String qString = "xs:string";
+ public static final String qPO = "po:purchase-order";
+ public static final String qCustomer = "po:customer";
+ public static final String qName = "po:name";
+ public static final String qAddress = "po:address";
+ public static final String qDate = "po:date";
+ public static final String qLineItem = "po:line-item";
+ public static final String qDescription = "po:description";
+ public static final String qPerUnitOunces = "po:per-unit-ounces";
+ public static final String qPrice = "po:price";
+ public static final String qQuantity = "po:quantity";
+ public static final String qShipper = "po:shipper";
+ public static final String qPerOunceRate = "po:per-ounce-rate";
+
+ // values for primitives top down construction
+ public static final byte myByte = 127;
+ public static final int myInt = 7;
+ public static final int myNegInt = -7;
+ public static final long myLong = 123456789;
+ public static final short myShort = 1;
+ public static final byte[] myHexbin = {-127,0,127};
+ public static final double myDouble = 987654321;
+ public static final float myFloat = 3.14f;
+ public static final boolean myBool = true;
+
+ // values for non-primitives top down construction
+ public static final BigDecimal myBigDecimal = new BigDecimal(987654321.123456789);
+ public static final BigInteger myPosBigInteger = new BigInteger("987654321");
+ public static final BigInteger myNegBigInteger = new BigInteger("-987654321");
+ public static final GregorianCalendar myDate = new GregorianCalendar();
+ public static final String myString = "hello world!";
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/utils/PerfUtil.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/utils/PerfUtil.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/utils/PerfUtil.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,156 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.utils;
+
+//import java.io.ByteArrayInputStream;
+import java.io.FileInputStream;
+import java.io.BufferedInputStream;
+//import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.FileNotFoundException;
+import java.lang.StringBuffer;
+import java.lang.Math;
+
+public class PerfUtil
+{
+ public float getMemoryUsageMb(){
+ System.runFinalization();
+ System.gc();
+ try{Thread.currentThread().sleep(4000);}catch(InterruptedException ie){}
+ Runtime runtime = Runtime.getRuntime();
+ float result = ((float) runtime.totalMemory() - runtime.freeMemory())/(1024*1024);
+ return result;
+ }
+
+ // TODO: add more flavors
+ public char[] createXmlData(String flavor, int size){
+ StringBuffer buff = new StringBuffer();
+ final String rootStart = "<r>";
+ final String rootEnd = "</r>";
+ final String childStart = "<c>";
+ final String childEnd = "</c>";
+ final String attribute = "att=\"attval\"";
+ final String childAttribStart = "<c "+attribute+">";
+ final String textChunk = "1234567890qwertyuiopasdfghjklzxcvbnm";
+
+ // use the given size parameter to normalize on number of chars
+ // as close as possible
+ if(flavor.equalsIgnoreCase("deep-elements")){
+ int iChildren = (size - 7)/7;
+ buff.append(rootStart);
+ for(int i=0; i<iChildren; i++){
+ buff.append(childStart);
+ }
+ for(int i=0; i<iChildren; i++){
+ buff.append(childEnd);
+ }
+ buff.append(rootEnd);
+ }
+ else if(flavor.equalsIgnoreCase("deep-attributes")){
+ int iChildren = (size - 7)/20;
+ buff.append(rootStart);
+ for(int i=0; i<iChildren; i++){
+ buff.append(childAttribStart);
+ }
+ for(int i=0; i<iChildren; i++){
+ buff.append(childEnd);
+ }
+ buff.append(rootEnd);
+ }
+ else if(flavor.equalsIgnoreCase("wide-elements")){
+ int iChildren = (size - 7)/7;
+ buff.append(rootStart);
+ for(int i=0; i<iChildren; i++){
+ buff.append(childStart+childEnd);
+ }
+ buff.append(rootEnd);
+ }
+ else if(flavor.equalsIgnoreCase("wide-text")){
+ int iChildren = (size - 7)/43;
+ buff.append(rootStart);
+ for(int i=0; i<iChildren; i++){
+ buff.append(childStart+textChunk+childEnd);
+ }
+ buff.append(rootEnd);
+ }
+ else if(flavor.equalsIgnoreCase("wide-attributes")){
+ int iChildren = (size - 7)/20;
+ buff.append(rootStart);
+ for(int i=0; i<iChildren; i++){
+ buff.append(childAttribStart+childEnd);
+ }
+ buff.append(rootEnd);
+ }
+ System.out.println("num chars: "+buff.length());
+ return buff.toString().toCharArray();
+ }
+
+ public byte[] createXmlDataBytes(String flavor, int size)
+ {
+ char[] chars = this.createXmlData(flavor,size);
+ String sXml = new String(chars);
+ return sXml.getBytes();
+ }
+
+
+ public boolean meetsTheBar(float actual, float bar){
+ final double fAllowedDeviation = 0.05;
+ float diff = Math.abs((actual-bar));
+ if( (diff/bar > fAllowedDeviation) ) return false;
+ else return true;
+ }
+
+ public boolean meetsTheBar(long actual, float bar){
+ Long lActual = new Long(actual);
+ return meetsTheBar(lActual.floatValue(), bar);
+ }
+
+ public char[] fileToChars(String filename) throws IOException,FileNotFoundException
+ {
+ BufferedInputStream bis =
+ new BufferedInputStream(new FileInputStream(filename));
+ StringBuffer buff = new StringBuffer();
+ int c;
+ while( (c=bis.read()) != -1){
+ buff.append((char)c);
+ }
+
+ return buff.toString().toCharArray();
+ }
+
+ public byte[] fileToBytes(String filename) throws IOException,FileNotFoundException
+ {
+ BufferedInputStream bis =
+ new BufferedInputStream(new FileInputStream(filename));
+ StringBuffer buff = new StringBuffer();
+ int c;
+ while( (c=bis.read()) != -1){
+ buff.append((char)c);
+ }
+
+ return buff.toString().getBytes();
+ }
+
+ public String createString(int size)
+ {
+ StringBuffer buff = new StringBuffer();
+ for(int i=0; i<size; i++)
+ {
+ buff.append("z");
+ }
+ return buff.toString();
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/BisLoadV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/BisLoadV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/BisLoadV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,81 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+import java.io.ByteArrayInputStream;
+import java.io.BufferedInputStream;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by v2
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.XmlCursor;
+
+public class BisLoadV1
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.CURSOR_ITERATIONS;
+ String flavor;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+ BisLoadV1 test = new BisLoadV1();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the buffered input stram
+ byte[] bytes = util.createXmlDataBytes(flavor, Constants.XML_SIZE);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(new BufferedInputStream(new ByteArrayInputStream(bytes) ));
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(new BufferedInputStream(new ByteArrayInputStream(bytes) ));
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+BisLoadV1.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(BufferedInputStream p_bis) throws Exception
+ {
+ int iHash = 0;
+
+ // load the buffered input stream
+ XmlObject xobj = XmlObject.Factory.parse(p_bis);
+
+ // return the hash value
+ XmlCursor cursor = xobj.newCursor();
+ cursor.toFirstContentToken();
+ return cursor.getName().toString().length() * 17;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetAttributeV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetAttributeV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetAttributeV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,83 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by v2
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.XmlCursor;
+
+public class CursorGetAttributeV1
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.GET_SET_ITERATIONS;
+ String flavor;
+
+ // the only flavors that should be used are
+ // deep-attributes and wide-attributes
+ // because this scenario focuses on attribute values
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+
+ CursorGetAttributeV1 test = new CursorGetAttributeV1();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ XmlCursor cursor = doc.newCursor();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+CursorGetAttributeV1.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(XmlCursor p_cursor) throws Exception
+ {
+ p_cursor.toFirstChild();
+ p_cursor.toFirstChild();
+ p_cursor.toFirstAttribute();
+ return p_cursor.getTextValue().length() * 17;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetElementV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetElementV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetElementV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,81 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by v2
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.XmlCursor;
+
+public class CursorGetElementV1
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.GET_SET_ITERATIONS;
+ String flavor;
+
+ // the only flavors that should be used are
+ // wide-text and any others that have text values (none of as 8/18/04)
+ // because this scenario focuses on element values
+ if(args.length == 0)
+ flavor = "wide-text";
+ else
+ flavor = args[0];
+
+ CursorGetElementV1 test = new CursorGetElementV1();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ XmlCursor cursor = doc.newCursor();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+CursorGetElementV1.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(XmlCursor p_cursor) throws Exception
+ {
+ p_cursor.toFirstChild();
+ p_cursor.toFirstChild();
+ return p_cursor.getTextValue().length() * 17;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetSetGetAttributeV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetSetGetAttributeV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetSetGetAttributeV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,97 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by v2
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.XmlCursor;
+
+public class CursorGetSetGetAttributeV1
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.GET_SET_ITERATIONS;
+ String flavor;
+ int stringSize = 0;
+
+ // the only flavors that should be used are
+ // deep-attributes and wide-attributes
+ // because this scenario focuses on attribute values
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+ // the size of the string used is the second arg or default if not specified
+ if(args.length < 2)
+ {
+ stringSize = Constants.STRING_SIZE;
+ }
+ else
+ {
+ stringSize = Integer.parseInt(args[1]);
+ }
+
+ // create the string to be used for the set
+ PerfUtil util = new PerfUtil();
+ String stringToSet = util.createString(stringSize);
+ CursorGetSetGetAttributeV1 test = new CursorGetSetGetAttributeV1();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ XmlCursor cursor = doc.newCursor();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor, stringToSet);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor, stringToSet);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+CursorGetSetGetAttributeV1.class.getName()+" flavor="+flavor+" sizetoset="+stringToSet.length()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(XmlCursor p_cursor, String p_setval) throws Exception
+ {
+ p_cursor.toFirstChild();
+ p_cursor.toFirstChild();
+ p_cursor.toFirstAttribute();
+ p_cursor.getTextValue();
+ p_cursor.setTextValue(p_setval);
+ return p_cursor.getTextValue().length() * 17;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetSetGetElementV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetSetGetElementV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorGetSetGetElementV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,96 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by v2
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.XmlCursor;
+
+public class CursorGetSetGetElementV1
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.GET_SET_ITERATIONS;
+ String flavor;
+ int stringSize = 0;
+
+ // the only flavors that should be used are
+ // wide-text and any others that have text values (none of as 8/18/04)
+ // because this scenario focuses on element values
+ if(args.length == 0)
+ flavor = "wide-text";
+ else
+ flavor = args[0];
+
+ // the size of the string used is the second arg or default if not specified
+ if(args.length < 2)
+ {
+ stringSize = Constants.STRING_SIZE;
+ }
+ else
+ {
+ stringSize = Integer.parseInt(args[1]);
+ }
+
+ // create the string to be used for the set
+ PerfUtil util = new PerfUtil();
+ String stringToSet = util.createString(stringSize);
+ CursorGetSetGetElementV1 test = new CursorGetSetGetElementV1();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ XmlCursor cursor = doc.newCursor();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor, stringToSet);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor, stringToSet);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+CursorGetSetGetElementV1.class.getName()+" flavor="+flavor+" stringtoset="+stringToSet.length()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(XmlCursor p_cursor, String p_setval) throws Exception
+ {
+ p_cursor.toFirstChild();
+ p_cursor.toFirstChild();
+ p_cursor.getTextValue();
+ p_cursor.setTextValue(p_setval);
+ return p_cursor.getTextValue().length() * 17;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorWalkV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorWalkV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/CursorWalkV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,106 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by v2
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.XmlCursor;
+//import org.apache.xmlbeans.XmlCursor.TokenType;
+
+public class CursorWalkV1
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.CURSOR_ITERATIONS;
+ String flavor;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+ CursorWalkV1 test = new CursorWalkV1();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ //System.out.println("chars="+chars.length);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ XmlCursor cursor = doc.newCursor();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+CursorWalkV1.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(XmlCursor cursor) throws Exception
+ {
+ int iHash = 0;
+
+ while(cursor.hasNextToken()){
+
+ // walk the doc with the cursor, computing the hash
+ if(cursor.isStart())
+ {
+ iHash += 17; // add a prime number
+ }
+ else if(cursor.isContainer())
+ {
+ iHash += cursor.getTextValue().length();
+ }
+ else if(cursor.isAttr())
+ {
+ iHash += cursor.getTextValue().length();
+ }
+ else if(cursor.isText())
+ {
+ iHash += cursor.getChars().length();
+ }
+
+ cursor.toNextToken();
+
+ }
+
+ // reset the cursor to the beginning
+ cursor.toStartDoc();
+
+ // return the hash value
+ return iHash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/DomWalkNLV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/DomWalkNLV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/DomWalkNLV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,95 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by v2
+import org.apache.xmlbeans.XmlObject;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class DomWalkNLV1
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.CURSOR_ITERATIONS;
+ String flavor;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+ DomWalkNLV1 test = new DomWalkNLV1();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ Node node = doc.newDomNode();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(node);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(node);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+DomWalkNLV1.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(Node p_node)
+ {
+ int result = 0;
+ short type = p_node.getNodeType();
+
+ if(type == Node.ATTRIBUTE_NODE ||
+ type == Node.CDATA_SECTION_NODE ||
+ type == Node.TEXT_NODE)
+ {
+ result = p_node.getNodeValue().length();
+ }
+ else
+ {
+ result = p_node.getNodeName().length();
+ }
+
+ NodeList children = p_node.getChildNodes();
+ for(int i=0; i<children.getLength(); i++)
+ {
+ result += run(children.item(i));
+ }
+
+ return result;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/DomWalkV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/DomWalkV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/DomWalkV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,94 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by v2
+import org.apache.xmlbeans.XmlObject;
+import org.w3c.dom.Node;
+
+public class DomWalkV1
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.CURSOR_ITERATIONS;
+ String flavor;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+ DomWalkV1 test = new DomWalkV1();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ Node node = doc.newDomNode();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(node);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(node);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+DomWalkV1.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(Node p_node)
+ {
+ int result = 0;
+ short type = p_node.getNodeType();
+
+ if(type == Node.ATTRIBUTE_NODE ||
+ type == Node.CDATA_SECTION_NODE ||
+ type == Node.TEXT_NODE)
+ {
+ result = p_node.getNodeValue().length();
+ }
+ else
+ {
+ result = p_node.getNodeName().length();
+ }
+
+ Node child = p_node.getFirstChild();
+ while(null != child)
+ {
+ result += run(child);
+ child = child.getNextSibling();
+ }
+ return result;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/NPrimTopDownV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/NPrimTopDownV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/NPrimTopDownV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,79 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// from schema jar
+import org.openuri.nonprimitives.NonPrimitivesDocument;
+import org.openuri.nonprimitives.NonPrimitivesDocument.NonPrimitives;
+import org.openuri.nonprimitives.Numerics;
+
+public class NPrimTopDownV1
+{
+ public static void main(String[] args) throws Exception
+ {
+ NPrimTopDownV1 test = new NPrimTopDownV1();
+ int iterations = Constants.ITERATIONS;
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+NPrimTopDownV1.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the doc
+ NonPrimitivesDocument doc = NonPrimitivesDocument.Factory.newInstance();
+ NonPrimitives nprim = doc.addNewNonPrimitives();
+
+ // create and initialize numeric elements
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ Numerics numerics = nprim.addNewNumerics();
+ numerics.setMydecimal(Constants.myBigDecimal);
+ numerics.setMyinteger(Constants.myPosBigInteger);
+ numerics.setMyneginteger(Constants.myNegBigInteger);
+ numerics.setMynonneginteger(Constants.myPosBigInteger);
+ numerics.setMynonposinteger(Constants.myNegBigInteger);
+ numerics.setMyposinteger(Constants.myPosBigInteger);
+ }
+
+ // set the date and string fields
+ nprim.setMydate(Constants.myDate);
+ nprim.setMystring(Constants.myString);
+
+ // calculate a hash to return
+ int hash = ( nprim.getNumericsArray().length ) * 17;
+ return hash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POGetCustNameV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POGetCustNameV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POGetCustNameV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,99 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// from v2-generated schema jar(s)
+import org.openuri.easypo.PurchaseOrderDocument;
+import org.openuri.easypo.PurchaseOrderDocument.PurchaseOrder;
+import org.openuri.easypo.Customer;
+
+
+public class POGetCustNameV1
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.GET_SET_ITERATIONS;
+ String filename;
+
+ // the xml instance can be specified by either a number
+ // or the name of a file located in the test folder
+ // see Constants.java
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POGetCustNameV1 test = new POGetCustNameV1();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // parse the instance
+ PurchaseOrderDocument podoc =
+ PurchaseOrderDocument.Factory.parse(new CharArrayReader(chars));
+ PurchaseOrder po = podoc.getPurchaseOrder();
+ Customer customer = po.getCustomer();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(customer);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(customer);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POGetCustNameV1.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(Customer p_customer) throws Exception
+ {
+ return p_customer.getName().length() * 17;
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POGetSetGetCustNameV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POGetSetGetCustNameV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POGetSetGetCustNameV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,117 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// from v2-generated schema jar(s)
+import org.openuri.easypo.PurchaseOrderDocument;
+import org.openuri.easypo.PurchaseOrderDocument.PurchaseOrder;
+import org.openuri.easypo.Customer;
+
+
+public class POGetSetGetCustNameV1
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.GET_SET_ITERATIONS;
+ String filename;
+ int stringSize = 0;
+ String stringToSet = "";
+
+ // the xml instance can be specified by either a number
+ // or the name of a file located in the test folder
+ // see Constants.java
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ // the size of the string used is the second arg or default if not specified
+ if(args.length < 2)
+ {
+ stringSize = Constants.STRING_SIZE;
+ }
+ else
+ {
+ stringSize = Integer.parseInt(args[1]);
+ }
+
+ POGetSetGetCustNameV1 test = new POGetSetGetCustNameV1();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // create the string to be used for the set
+ stringToSet = util.createString(stringSize);
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // parse the instance
+ PurchaseOrderDocument podoc =
+ PurchaseOrderDocument.Factory.parse(new CharArrayReader(chars));
+ PurchaseOrder po = podoc.getPurchaseOrder();
+ Customer customer = po.getCustomer();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(customer, stringToSet);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(customer, stringToSet);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POGetSetGetCustNameV1.class.getName()+
+ " filesize="+chars.length+
+ " stringtoset="+stringToSet.length()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(Customer p_customer, String p_setval) throws Exception
+ {
+ p_customer.getName();
+ p_customer.setName(p_setval);
+ return p_customer.getName().length() * 17;
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POReadAllV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POReadAllV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POReadAllV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,124 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+//import java.io.File;
+//import java.io.IOException;
+//import java.io.FileNotFoundException;
+import java.io.CharArrayReader;
+//import java.lang.UnsupportedOperationException;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// required by v1
+//import org.apache.xmlbeans.XmlException;
+
+// from v1-generated schema jar(s)
+import org.openuri.easypo.PurchaseOrderDocument;
+import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+import org.openuri.easypo.Shipper;
+
+
+public class POReadAllV1
+{
+ public static void main(String[] args) throws Exception
+ {
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POReadAllV1 test = new POReadAllV1();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POReadAllV1.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ int iSumStrings = 0;
+ // unmarshall the xml instance
+ PurchaseOrderDocument poDoc =
+ PurchaseOrderDocument.Factory.parse(reader);
+ // retreive the purchase order
+ PurchaseOrderDocument.PurchaseOrder po = poDoc.getPurchaseOrder();
+ // retreive the customer element
+ Customer customer = po.getCustomer();
+ iSumStrings += customer.getAddress().length();
+ iSumStrings += customer.getName().length();
+ // retreive the date
+ po.getDate();
+ // retreive all line items
+ LineItem[] lineitems = po.getLineItemArray();
+ // sum the line item prices and get the other childs
+ float sum = 0;
+ for(int i=0; i<lineitems.length; i++){
+ iSumStrings += lineitems[i].getDescription().length();
+ lineitems[i].getPerUnitOunces();
+ lineitems[i].getQuantity();
+ sum += lineitems[i].getPrice();
+ }
+ // retreive the shipper element
+ Shipper shipper = po.getShipper();
+ iSumStrings += shipper.getName().length();
+ shipper.getPerOunceRate();
+
+ return iSumStrings;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POReadOneV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POReadOneV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POReadOneV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,102 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+//import java.io.File;
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// from v2-generated schema jar(s)
+import org.openuri.easypo.PurchaseOrderDocument;
+//import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+//import org.openuri.easypo.Shipper;
+
+
+public class POReadOneV1
+{
+ public static void main(String[] args) throws Exception
+ {
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POReadOneV1 test = new POReadOneV1();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POReadOneV1.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ // unmarshall the xml instance
+ PurchaseOrderDocument poDoc =
+ PurchaseOrderDocument.Factory.parse(reader);
+ // retreive the purchase order
+ PurchaseOrderDocument.PurchaseOrder po = poDoc.getPurchaseOrder();
+
+ // retreive the first line item
+ LineItem lineitem = po.getLineItemArray(0);
+
+ // return the char length of the description
+ return lineitem.getDescription().length();
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POTopDownSaveV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POTopDownSaveV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POTopDownSaveV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,98 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+import java.io.Reader;
+import java.util.Calendar;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// from v2-generated schema jar(s)
+import org.openuri.easypo.PurchaseOrderDocument;
+import org.openuri.easypo.PurchaseOrderDocument.PurchaseOrder;
+import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+import org.openuri.easypo.Shipper;
+
+
+public class POTopDownSaveV1
+{
+ public static void main(String[] args) throws Exception
+ {
+ POTopDownSaveV1 test = new POTopDownSaveV1();
+ int iterations = Constants.ITERATIONS;
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POTopDownSaveV1.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the purchase order
+ PurchaseOrderDocument podoc = PurchaseOrderDocument.Factory.newInstance();
+ PurchaseOrder po = podoc.addNewPurchaseOrder();
+
+ // create and initialize customer
+ Customer customer = po.addNewCustomer();
+ customer.setName(Constants.PO_CUSTOMER_NAME);
+ customer.setAddress(Constants.PO_CUSTOMER_ADDR);
+
+ // set the date
+ po.setDate(Calendar.getInstance());
+
+ // create and initialize the line item array
+ for (int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ LineItem li = po.addNewLineItem();
+ li.setDescription(Constants.PO_LI_DESC);
+ li.setPerUnitOunces(Constants.PO_LI_PUO);
+ li.setPrice(Constants.PO_LI_PRICE);
+ li.setQuantity(Constants.PO_LI_QUANTITY);
+ }
+
+ // create and initialize the shipper
+ Shipper shipper = po.addNewShipper();
+ shipper.setName(Constants.PO_SHIPPER_NAME);
+ shipper.setPerOunceRate(Constants.PO_SHIPPER_POR);
+
+ // grab the instance that was constructed
+ Reader reader = po.newReader();
+ int c;
+ while( (c=reader.read()) != -1){}
+ if(null != reader) reader.close();
+
+ // calculate a hash to return
+ int hash = ( po.getLineItemArray().length ) * 17;
+ return hash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POTopDownV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POTopDownV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POTopDownV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,92 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+import java.util.Calendar;
+//import java.math.BigDecimal;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// from v2-generated schema jar(s)
+import org.openuri.easypo.PurchaseOrderDocument;
+import org.openuri.easypo.PurchaseOrderDocument.PurchaseOrder;
+import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+import org.openuri.easypo.Shipper;
+
+
+public class POTopDownV1
+{
+ public static void main(String[] args) throws Exception
+ {
+ POTopDownV1 test = new POTopDownV1();
+ int iterations = Constants.ITERATIONS;
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POTopDownV1.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the purchase order
+ PurchaseOrderDocument podoc = PurchaseOrderDocument.Factory.newInstance();
+ PurchaseOrder po = podoc.addNewPurchaseOrder();
+
+ // create and initialize customer
+ Customer customer = po.addNewCustomer();
+ customer.setName(Constants.PO_CUSTOMER_NAME);
+ customer.setAddress(Constants.PO_CUSTOMER_ADDR);
+
+ // set the date
+ po.setDate(Calendar.getInstance());
+
+ // create and initialize the line item array
+ for (int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ LineItem li = po.addNewLineItem();
+ li.setDescription(Constants.PO_LI_DESC);
+ li.setPerUnitOunces(Constants.PO_LI_PUO);
+ li.setPrice(Constants.PO_LI_PRICE);
+ li.setQuantity(Constants.PO_LI_QUANTITY);
+ }
+
+ // create and initialize the shipper
+ Shipper shipper = po.addNewShipper();
+ shipper.setName(Constants.PO_SHIPPER_NAME);
+ shipper.setPerOunceRate(Constants.PO_SHIPPER_POR);
+
+ // calculate a hash to return
+ int hash = ( po.getLineItemArray().length ) * 17;
+ return hash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POValidateXmlObjV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POValidateXmlObjV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/POValidateXmlObjV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,94 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// from v2-generated schema jar(s)
+import org.openuri.easypo.PurchaseOrderDocument;
+
+public class POValidateXmlObjV1
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POValidateXmlObjV1 test = new POValidateXmlObjV1();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+
+ // parse the instance
+ PurchaseOrderDocument podoc =
+ PurchaseOrderDocument.Factory.parse(new CharArrayReader(chars));
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(podoc);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(podoc);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POValidateXmlObjV1.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(PurchaseOrderDocument p_podoc) throws Exception
+ {
+ // validate it
+ p_podoc.validate();
+
+ // return an int for the hash
+ return 17;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/PrimTopDownV1.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/PrimTopDownV1.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v1/PrimTopDownV1.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,81 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v1;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// from v2-generated schema jar
+import org.openuri.primitives.PrimitivesDocument;
+import org.openuri.primitives.PrimitivesDocument.Primitives;
+import org.openuri.primitives.Numerics;
+import org.openuri.primitives.Misc;
+
+public class PrimTopDownV1
+{
+ public static void main(String[] args) throws Exception
+ {
+ PrimTopDownV1 test = new PrimTopDownV1();
+ int iterations = Constants.ITERATIONS;
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+PrimTopDownV1.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the doc
+ PrimitivesDocument doc = PrimitivesDocument.Factory.newInstance();
+ Primitives prim = doc.addNewPrimitives();
+
+ // create and initialize numeric elements
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ Numerics numerics = prim.addNewNumerics();
+ numerics.setMybyte(Constants.myByte);
+ numerics.setMyint(Constants.myInt);
+ numerics.setMylong(Constants.myLong);
+ numerics.setMyshort(Constants.myShort);
+ numerics.setMyhexbin(Constants.myHexbin);
+ numerics.setMydouble(Constants.myDouble);
+ numerics.setMyfloat(Constants.myFloat);
+ }
+
+ // create and initialize the misc element
+ Misc misc = prim.addNewMisc();
+ misc.setMybool(Constants.myBool);
+
+ // calculate a hash to return
+ int hash = ( prim.getNumericsArray().length ) * 17;
+ return hash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/BisLoadV2.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/BisLoadV2.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/BisLoadV2.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,82 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v2;
+
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+
+import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+
+
+public class BisLoadV2
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.CURSOR_ITERATIONS;
+ String flavor;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+ BisLoadV2 test = new BisLoadV2();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the buffered input stram
+ byte[] bytes = util.createXmlDataBytes(flavor, Constants.XML_SIZE);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(new BufferedInputStream(new ByteArrayInputStream(bytes) ));
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(new BufferedInputStream(new ByteArrayInputStream(bytes) ));
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+BisLoadV2.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+
+ }
+
+ private int run(BufferedInputStream p_bis) throws Exception
+ {
+ int iHash = 0;
+
+ // load the buffered input stream
+ XmlObject xobj = XmlObject.Factory.parse(p_bis);
+
+ // calculate and return the hash value
+ XmlCursor cursor = xobj.newCursor();
+ cursor.toFirstContentToken();
+ return cursor.getName().toString().length() * 17;
+
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetAttributeV2.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetAttributeV2.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetAttributeV2.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,81 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v2;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+
+public class CursorGetAttributeV2
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.GET_SET_ITERATIONS;
+ String flavor;
+
+ // the only flavors that should be used are
+ // deep-attributes and wide-attributes
+ // because this scenario focuses on attribute values
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+ CursorGetAttributeV2 test = new CursorGetAttributeV2();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ XmlCursor cursor = doc.newCursor();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+CursorGetAttributeV2.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+
+ }
+
+ private int run(XmlCursor p_cursor) throws Exception
+ {
+ p_cursor.toFirstChild();
+ p_cursor.toFirstChild();
+ p_cursor.toFirstAttribute();
+ return p_cursor.getTextValue().length() * 17;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetElementV2.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetElementV2.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetElementV2.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,80 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v2;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+
+public class CursorGetElementV2
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.GET_SET_ITERATIONS;
+ String flavor;
+
+ // the only flavors that should be used are
+ // wide-text and any others that have text values (none of as 8/18/04)
+ // because this scenario focuses on element values
+ if(args.length == 0)
+ flavor = "wide-text";
+ else
+ flavor = args[0];
+
+ CursorGetElementV2 test = new CursorGetElementV2();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ XmlCursor cursor = doc.newCursor();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+CursorGetElementV2.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+
+ }
+
+ private int run(XmlCursor p_cursor) throws Exception
+ {
+ p_cursor.toFirstChild();
+ p_cursor.toFirstChild();
+ return p_cursor.getTextValue().length() * 17;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetSetGetAttributeV2.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetSetGetAttributeV2.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetSetGetAttributeV2.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,96 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v2;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+
+public class CursorGetSetGetAttributeV2
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.GET_SET_ITERATIONS;
+ String flavor;
+ int stringSize = 0;
+
+ // the only flavors that should be used are
+ // deep-attributes and wide-attributes
+ // because this scenario focuses on attribute values
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+ // the size of the string used is the second arg or default if not specified
+ if(args.length < 2)
+ {
+ stringSize = Constants.STRING_SIZE;
+ }
+ else
+ {
+ stringSize = Integer.parseInt(args[1]);
+ }
+
+ // create the string to be used for the set
+ PerfUtil util = new PerfUtil();
+ String stringToSet = util.createString(stringSize);
+ CursorGetSetGetAttributeV2 test = new CursorGetSetGetAttributeV2();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ XmlCursor cursor = doc.newCursor();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor, stringToSet);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor, stringToSet);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+CursorGetSetGetAttributeV2.class.getName()+" flavor="+flavor+" sizetoset="+stringToSet.length()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+
+ }
+
+ private int run(XmlCursor p_cursor, String p_setval) throws Exception
+ {
+ p_cursor.toFirstChild();
+ p_cursor.toFirstChild();
+ p_cursor.toFirstAttribute();
+ p_cursor.getTextValue();
+ p_cursor.setTextValue(p_setval);
+ return p_cursor.getTextValue().length() * 17;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetSetGetElementV2.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetSetGetElementV2.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorGetSetGetElementV2.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,94 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v2;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+
+public class CursorGetSetGetElementV2
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.GET_SET_ITERATIONS;
+ String flavor;
+ int stringSize = 0;
+
+ // the only flavors that should be used are
+ // wide-text and any others that have text values (none of as 8/18/04)
+ // because this scenario focuses on element values
+ if(args.length == 0)
+ flavor = "wide-text";
+ else
+ flavor = args[0];
+
+ // the size of the string used is the second arg or default if not specified
+ if(args.length < 2)
+ {
+ stringSize = Constants.STRING_SIZE;
+ }
+ else
+ {
+ stringSize = Integer.parseInt(args[1]);
+ }
+
+ // create the string to be used for the set
+ PerfUtil util = new PerfUtil();
+ String stringToSet = util.createString(stringSize);
+ CursorGetSetGetElementV2 test = new CursorGetSetGetElementV2();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ XmlCursor cursor = doc.newCursor();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor, stringToSet);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor, stringToSet);
+ cursor.toStartDoc();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+CursorGetSetGetElementV2.class.getName()+" flavor="+flavor+" stringtoset="+stringToSet.length()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(XmlCursor p_cursor, String p_setval) throws Exception
+ {
+ p_cursor.toFirstChild();
+ p_cursor.toFirstChild();
+ p_cursor.getTextValue();
+ p_cursor.setTextValue(p_setval);
+ return p_cursor.getTextValue().length() * 17;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorWalkV2.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorWalkV2.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/CursorWalkV2.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,106 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v2;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+
+public class CursorWalkV2
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.CURSOR_ITERATIONS;
+ String flavor;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+
+ CursorWalkV2 test = new CursorWalkV2();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ //System.out.println("chars="+chars.length);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ XmlCursor cursor = doc.newCursor();
+
+ // run the gc?
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+CursorWalkV2.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(XmlCursor cursor) throws Exception
+ {
+ int iHash = 0;
+
+ while(cursor.hasNextToken()){
+
+ // walk the doc with the cursor, computing the hash
+ if(cursor.isStart())
+ {
+ iHash += 17; // add a prime number
+ }
+ else if(cursor.isContainer())
+ {
+ iHash += cursor.getTextValue().length();
+ }
+ else if(cursor.isAttr())
+ {
+ iHash += cursor.getTextValue().length();
+ }
+ else if(cursor.isText())
+ {
+ iHash += cursor.getChars().length();
+ }
+
+ cursor.toNextToken();
+
+ }
+
+ // reset the cursor to the beginning
+ cursor.toStartDoc();
+
+ // return the hash value
+ return iHash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/DomWalkNLV2.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/DomWalkNLV2.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/DomWalkNLV2.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,93 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v2;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class DomWalkNLV2
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.CURSOR_ITERATIONS;
+ String flavor;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+ DomWalkNLV2 test = new DomWalkNLV2();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ Node node = doc.newDomNode();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(node);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(node);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+DomWalkNLV2.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(Node p_node)
+ {
+ int result = 0;
+ short type = p_node.getNodeType();
+
+ if(type == Node.ATTRIBUTE_NODE ||
+ type == Node.CDATA_SECTION_NODE ||
+ type == Node.TEXT_NODE)
+ {
+ result = p_node.getNodeValue().length();
+ }
+ else
+ {
+ result = p_node.getNodeName().length();
+ }
+
+ NodeList children = p_node.getChildNodes();
+ for(int i=0; i<children.getLength(); i++)
+ {
+ result += run(children.item(i));
+ }
+
+ return result;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/DomWalkV2.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/DomWalkV2.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/DomWalkV2.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,92 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v2;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.w3c.dom.Node;
+
+public class DomWalkV2
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.CURSOR_ITERATIONS;
+ String flavor;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+ DomWalkV2 test = new DomWalkV2();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ Node node = doc.newDomNode();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(node);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(node);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+DomWalkV2.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(Node p_node)
+ {
+ int result = 0;
+ short type = p_node.getNodeType();
+
+ if(type == Node.ATTRIBUTE_NODE ||
+ type == Node.CDATA_SECTION_NODE ||
+ type == Node.TEXT_NODE)
+ {
+ result = p_node.getNodeValue().length();
+ }
+ else
+ {
+ result = p_node.getNodeName().length();
+ }
+
+ Node child = p_node.getFirstChild();
+ while(null != child)
+ {
+ result += run(child);
+ child = child.getNextSibling();
+ }
+ return result;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/NPrimTopDownV2.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/NPrimTopDownV2.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/NPrimTopDownV2.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,78 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v2;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.openuri.nonprimitives.NonPrimitivesDocument;
+import org.openuri.nonprimitives.Numerics;
+import org.openuri.nonprimitives.NonPrimitivesDocument.NonPrimitives;
+
+public class NPrimTopDownV2
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ NPrimTopDownV2 test = new NPrimTopDownV2();
+ int iterations = Constants.ITERATIONS;
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+NPrimTopDownV2.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the doc
+ NonPrimitivesDocument doc = NonPrimitivesDocument.Factory.newInstance();
+ NonPrimitives nprim = doc.addNewNonPrimitives();
+
+ // create and initialize numeric elements
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ Numerics numerics = nprim.addNewNumerics();
+ numerics.setMydecimal(Constants.myBigDecimal);
+ numerics.setMyinteger(Constants.myPosBigInteger);
+ numerics.setMyneginteger(Constants.myNegBigInteger);
+ numerics.setMynonneginteger(Constants.myPosBigInteger);
+ numerics.setMynonposinteger(Constants.myNegBigInteger);
+ numerics.setMyposinteger(Constants.myPosBigInteger);
+ }
+
+ // set the date and string fields
+ nprim.setMydate(Constants.myDate);
+ nprim.setMystring(Constants.myString);
+
+ // calculate a hash to return
+ int hash = ( nprim.getNumericsArray().length ) * 17;
+ return hash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POReadAllV2.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POReadAllV2.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POReadAllV2.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,116 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v2;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+import org.openuri.easypo.PurchaseOrderDocument;
+import org.openuri.easypo.Shipper;
+
+
+public class POReadAllV2
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POReadAllV2 test = new POReadAllV2();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POReadAllV2.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ int iSumStrings = 0;
+ // unmarshall the xml instance
+ PurchaseOrderDocument poDoc =
+ PurchaseOrderDocument.Factory.parse(reader);
+ // retreive the purchase order
+ PurchaseOrderDocument.PurchaseOrder po = poDoc.getPurchaseOrder();
+ // retreive the customer element
+ Customer customer = po.getCustomer();
+ iSumStrings += customer.getAddress().length();
+ iSumStrings += customer.getName().length();
+ // retreive the date
+ po.getDate();
+ // retreive all line items
+ LineItem[] lineitems = po.getLineItemArray();
+ // sum the line item prices and get the other childs
+ float sum = 0;
+ for(int i=0; i<lineitems.length; i++){
+ iSumStrings += lineitems[i].getDescription().length();
+ lineitems[i].getPerUnitOunces();
+ lineitems[i].getQuantity();
+ sum += lineitems[i].getPrice();
+ }
+ // retreive the shipper element
+ Shipper shipper = po.getShipper();
+ iSumStrings += shipper.getName().length();
+ shipper.getPerOunceRate();
+
+ return iSumStrings;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POReadOneV2.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POReadOneV2.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POReadOneV2.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,99 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v2;
+
+//import java.io.File;
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.openuri.easypo.LineItem;
+import org.openuri.easypo.PurchaseOrderDocument;
+//import org.openuri.easypo.Shipper;
+
+
+public class POReadOneV2
+{
+ public static void main(String[] args) throws Exception
+ {
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POReadOneV2 test = new POReadOneV2();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POReadOneV2.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ // unmarshall the xml instance
+ PurchaseOrderDocument poDoc =
+ PurchaseOrderDocument.Factory.parse(reader);
+ // retreive the purchase order
+ PurchaseOrderDocument.PurchaseOrder po = poDoc.getPurchaseOrder();
+
+ // retreive the first line item
+ LineItem lineitem = po.getLineItemArray(0);
+
+ // return the char length of the description
+ return lineitem.getDescription().length();
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POTopDownSaveV2.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POTopDownSaveV2.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POTopDownSaveV2.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,97 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v2;
+
+import java.io.Reader;
+import java.util.Calendar;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+import org.openuri.easypo.PurchaseOrderDocument;
+import org.openuri.easypo.Shipper;
+import org.openuri.easypo.PurchaseOrderDocument.PurchaseOrder;
+
+
+public class POTopDownSaveV2
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ POTopDownSaveV2 test = new POTopDownSaveV2();
+ int iterations = Constants.ITERATIONS;
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POTopDownSaveV2.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the purchase order
+ PurchaseOrderDocument podoc = PurchaseOrderDocument.Factory.newInstance();
+ PurchaseOrder po = podoc.addNewPurchaseOrder();
+
+ // create and initialize customer
+ Customer customer = po.addNewCustomer();
+ customer.setName(Constants.PO_CUSTOMER_NAME);
+ customer.setAddress(Constants.PO_CUSTOMER_ADDR);
+
+ // set the date
+ po.setDate(Calendar.getInstance());
+
+ // create and initialize the line item array
+ for (int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ LineItem li = po.addNewLineItem();
+ li.setDescription(Constants.PO_LI_DESC);
+ li.setPerUnitOunces(Constants.PO_LI_PUO);
+ li.setPrice(Constants.PO_LI_PRICE);
+ li.setQuantity(Constants.PO_LI_QUANTITY);
+ }
+
+ // create and initialize the shipper
+ Shipper shipper = po.addNewShipper();
+ shipper.setName(Constants.PO_SHIPPER_NAME);
+ shipper.setPerOunceRate(Constants.PO_SHIPPER_POR);
+
+ // grab the instance that was constructed
+ Reader reader = po.newReader();
+ int c;
+ while( (c=reader.read()) != -1){}
+ if(null != reader) reader.close();
+
+ // calculate a hash to return
+ int hash = ( po.getLineItemArray().length ) * 17;
+ return hash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POTopDownV2.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POTopDownV2.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POTopDownV2.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,90 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v2;
+
+import java.util.Calendar;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+import org.openuri.easypo.PurchaseOrderDocument;
+import org.openuri.easypo.Shipper;
+import org.openuri.easypo.PurchaseOrderDocument.PurchaseOrder;
+
+
+public class POTopDownV2
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ POTopDownV2 test = new POTopDownV2();
+ int iterations = Constants.ITERATIONS;
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POTopDownV2.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the purchase order
+ PurchaseOrderDocument podoc = PurchaseOrderDocument.Factory.newInstance();
+ PurchaseOrder po = podoc.addNewPurchaseOrder();
+
+ // create and initialize customer
+ Customer customer = po.addNewCustomer();
+ customer.setName(Constants.PO_CUSTOMER_NAME);
+ customer.setAddress(Constants.PO_CUSTOMER_ADDR);
+
+ // set the date
+ po.setDate(Calendar.getInstance());
+
+ // create and initialize the line item array
+ for (int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ LineItem li = po.addNewLineItem();
+ li.setDescription(Constants.PO_LI_DESC);
+ li.setPerUnitOunces(Constants.PO_LI_PUO);
+ li.setPrice(Constants.PO_LI_PRICE);
+ li.setQuantity(Constants.PO_LI_QUANTITY);
+ }
+
+ // create and initialize the shipper
+ Shipper shipper = po.addNewShipper();
+ shipper.setName(Constants.PO_SHIPPER_NAME);
+ shipper.setPerOunceRate(Constants.PO_SHIPPER_POR);
+
+ // calculate a hash to return
+ int hash = ( po.getLineItemArray().length ) * 17;
+ return hash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POValidateXmlObjV2.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POValidateXmlObjV2.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/POValidateXmlObjV2.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,92 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v2;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.openuri.easypo.PurchaseOrderDocument;
+
+public class POValidateXmlObjV2
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POValidateXmlObjV2 test = new POValidateXmlObjV2();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+
+ // parse the instance
+ PurchaseOrderDocument podoc =
+ PurchaseOrderDocument.Factory.parse(new CharArrayReader(chars));
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(podoc);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(podoc);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+POValidateXmlObjV2.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(PurchaseOrderDocument p_podoc) throws Exception
+ {
+ // validate it
+ p_podoc.validate();
+
+ // return an int for the hash
+ return 17;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/PrimTopDownV2.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/PrimTopDownV2.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/v2/PrimTopDownV2.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,80 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.v2;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.openuri.primitives.Misc;
+import org.openuri.primitives.Numerics;
+import org.openuri.primitives.PrimitivesDocument;
+import org.openuri.primitives.PrimitivesDocument.Primitives;
+
+public class PrimTopDownV2
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ PrimTopDownV2 test = new PrimTopDownV2();
+ int iterations = Constants.ITERATIONS;
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+PrimTopDownV2.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the doc
+ PrimitivesDocument doc = PrimitivesDocument.Factory.newInstance();
+ Primitives prim = doc.addNewPrimitives();
+
+ // create and initialize numeric elements
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ Numerics numerics = prim.addNewNumerics();
+ numerics.setMybyte(Constants.myByte);
+ numerics.setMyint(Constants.myInt);
+ numerics.setMylong(Constants.myLong);
+ numerics.setMyshort(Constants.myShort);
+ numerics.setMyhexbin(Constants.myHexbin);
+ numerics.setMydouble(Constants.myDouble);
+ numerics.setMyfloat(Constants.myFloat);
+ }
+
+ // create and initialize the misc element
+ Misc misc = prim.addNewMisc();
+ misc.setMybool(Constants.myBool);
+
+ // calculate a hash to return
+ int hash = ( prim.getNumericsArray().length ) * 17;
+ return hash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/BisLoadXercesDom.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/BisLoadXercesDom.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/BisLoadXercesDom.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,83 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.xerces;
+
+//import java.io.File;
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
+
+public class BisLoadXercesDom
+{
+ public static void main(String[] args) throws Exception
+ {
+ final int iterations = Constants.CURSOR_ITERATIONS;
+ String flavor;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+ BisLoadXercesDom test = new BisLoadXercesDom();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the buffered input stram
+ byte[] bytes = util.createXmlDataBytes(flavor, Constants.XML_SIZE);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(new BufferedInputStream(new ByteArrayInputStream(bytes) ));
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(new BufferedInputStream(new ByteArrayInputStream(bytes) ));
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+
+ // print the results
+ System.out.print(Constants.DELIM+BisLoadXercesDom.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(BufferedInputStream bis) throws Exception
+ {
+ // create the input source from the bis
+ InputSource is = new InputSource(bis);
+
+ // load the input source
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.parse(is);
+
+ // calculate and return the hash
+ return doc.getDocumentElement().getTagName().length() * 17;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/BisLoadXercesSax.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/BisLoadXercesSax.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/BisLoadXercesSax.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,111 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.xerces;
+
+//import java.io.File;
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+
+public class BisLoadXercesSax
+{
+ public static void main(String[] args) throws Exception
+ {
+ final int iterations = Constants.CURSOR_ITERATIONS;
+ String flavor;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+
+ BisLoadXercesSax test = new BisLoadXercesSax();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the buffered input stram
+ byte[] bytes = util.createXmlDataBytes(flavor, Constants.XML_SIZE);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(new BufferedInputStream(new ByteArrayInputStream(bytes) ));
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(new BufferedInputStream(new ByteArrayInputStream(bytes) ));
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+
+ // print the results
+ System.out.print(Constants.DELIM+BisLoadXercesSax.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(BufferedInputStream bis) throws Exception
+ {
+ // create the input source from the bis
+ InputSource is = new InputSource(bis);
+
+ // load the input source
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+ SAXParser parser = factory.newSAXParser();
+ MyHandler handler = new MyHandler();
+ parser.parse(is, handler);
+
+ // calculate and return the hash
+ return handler.getTagName().length() * 17;
+ }
+
+ // SAX event handler class
+ public static class MyHandler extends DefaultHandler
+ {
+ private String _tagName;
+ private boolean bDone = false;
+
+ public String getTagName(){return _tagName;}
+
+ public void startElement(String uri,
+ String localName,
+ String qName,
+ Attributes attributes) throws SAXException
+ {
+ if (!bDone)
+ {
+ _tagName = qName;
+ bDone = true;
+ }
+
+ }
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/DomWalkNLXerces.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/DomWalkNLXerces.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/DomWalkNLXerces.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,103 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.xerces;
+
+import java.io.CharArrayReader;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+
+
+public class DomWalkNLXerces
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.CURSOR_ITERATIONS;
+ String flavor;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+
+ DomWalkNLXerces test = new DomWalkNLXerces();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ InputSource is = new InputSource(new CharArrayReader(chars));
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(false);
+ factory.setValidating(false);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.parse(is);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(doc);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(doc);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+DomWalkNLXerces.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(Node p_node)
+ {
+ int result = 0;
+ short type = p_node.getNodeType();
+
+ if(type == Node.ATTRIBUTE_NODE ||
+ type == Node.CDATA_SECTION_NODE ||
+ type == Node.TEXT_NODE)
+ {
+ result = p_node.getNodeValue().length();
+ }
+ else
+ {
+ result = p_node.getNodeName().length();
+ }
+
+ NodeList children = p_node.getChildNodes();
+ for(int i=0; i<children.getLength(); i++)
+ {
+ result += run(children.item(i));
+ }
+
+ return result;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/DomWalkXerces.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/DomWalkXerces.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/DomWalkXerces.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,100 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.xerces;
+
+import java.io.CharArrayReader;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.xml.sax.InputSource;
+
+public class DomWalkXerces
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.CURSOR_ITERATIONS;
+ String flavor;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+ DomWalkXerces test = new DomWalkXerces();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xml
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ InputSource is = new InputSource(new CharArrayReader(chars));
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(false);
+ factory.setValidating(false);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.parse(is);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(doc);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(doc);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ System.out.print(Constants.DELIM+DomWalkXerces.class.getName()+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(Node p_node)
+ {
+ int result = 0;
+ short type = p_node.getNodeType();
+
+ if(type == Node.ATTRIBUTE_NODE ||
+ type == Node.CDATA_SECTION_NODE ||
+ type == Node.TEXT_NODE)
+ {
+ result = p_node.getNodeValue().length();
+ }
+ else
+ {
+ result = p_node.getNodeName().length();
+ }
+
+ Node child = p_node.getFirstChild();
+ while(null != child)
+ {
+ result += run(child);
+ child = child.getNextSibling();
+ }
+ return result;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadAllXercesDom.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadAllXercesDom.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadAllXercesDom.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,133 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.xerces;
+
+import java.io.CharArrayReader;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+
+public class POReadAllXercesDom
+{
+ public static void main(String[] args) throws Exception
+ {
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POReadAllXercesDom test = new POReadAllXercesDom();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+
+ // print the results
+ System.out.print(Constants.DELIM+POReadAllXercesDom.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ int iSumStrings = 0;
+ // "unmarshall" the xml instance
+ InputSource is = new InputSource(reader);
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+ factory.setValidating(false);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.parse(is);
+
+ // retreive the purchase order
+ Element po = doc.getDocumentElement();
+
+ // retreive the customer element
+ Node customer = po.getElementsByTagName("po:customer").item(0);
+ NodeList custChildren = customer.getChildNodes();
+ iSumStrings +=
+ custChildren.item(1).getFirstChild().getNodeValue().length();
+ iSumStrings +=
+ custChildren.item(3).getFirstChild().getNodeValue().length();
+ // retreive the date
+ po.getElementsByTagName("po:date").item(0);
+ // retreive all line items
+ NodeList lineitems = po.getElementsByTagName("po:line-item");
+ // sum the line item prices and get the other childs
+ float sum = 0;
+ for(int i=0; i<lineitems.getLength(); i++){
+ NodeList liChildren = lineitems.item(i).getChildNodes();
+ iSumStrings +=
+ liChildren.item(1).getFirstChild().getNodeValue().length();
+ liChildren.item(3);
+ liChildren.item(7);
+ sum +=
+ Float.parseFloat(liChildren.item(5).getFirstChild().getNodeValue());
+ }
+
+ // retreive the shipper element
+ Node shipper = po.getElementsByTagName("po:shipper").item(0);
+ NodeList shipperChildren = shipper.getChildNodes();
+ iSumStrings += shipperChildren.item(1).getFirstChild().getNodeValue().length();
+ shipperChildren.item(3).getFirstChild().getNodeValue();
+
+ return iSumStrings;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadAllXercesSax.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadAllXercesSax.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadAllXercesSax.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,173 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.xerces;
+
+import java.io.CharArrayReader;
+
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+
+public class POReadAllXercesSax
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POReadAllXercesSax test = new POReadAllXercesSax();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+
+ // print the results
+ System.out.print(Constants.DELIM+POReadAllXercesDom.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ // "unmarshall" the xml instance
+ InputSource is = new InputSource(reader);
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+ factory.setNamespaceAware(true);
+ factory.setValidating(false);
+ SAXParser parser = factory.newSAXParser();
+ MyHandler handler = new MyHandler();
+ // the handler will tally the string length sum
+ parser.parse(is, handler);
+
+ return handler.getStringLengthSum();
+ }
+
+ // SAX event handler class
+ public static class MyHandler extends DefaultHandler
+ {
+ private int iStringSum = 0;
+ private float sum = 0;
+ private boolean inStringForSum = false;
+ private boolean inPrice = false;
+
+ public void startElement(String uri,
+ String localName,
+ String qName,
+ Attributes attributes) throws SAXException
+ {
+
+ if(uri.compareTo(Constants.PO_NS) == 0 &&
+ (localName.compareTo(Constants.sAddress) == 0 ||
+ localName.compareTo(Constants.sName) == 0 ||
+ localName.compareTo(Constants.sDesc) == 0) )
+ {
+ inStringForSum = true;
+ return;
+ }
+
+ if(uri.compareTo(Constants.PO_NS) == 0 &&
+ localName.compareTo(Constants.sPrice) == 0)
+ {
+ inPrice = true;
+ return;
+ }
+
+ }
+
+ public void endElement(String uri,
+ String localName,
+ String qName) throws SAXException
+ {
+ if(uri.compareTo(Constants.PO_NS) == 0 &&
+ (localName.compareTo(Constants.sAddress) == 0 ||
+ localName.compareTo(Constants.sName) == 0 ||
+ localName.compareTo(Constants.sDesc) == 0) )
+ {
+ inStringForSum = false;
+ return;
+ }
+
+ if(uri.compareTo(Constants.PO_NS) == 0 &&
+ localName.compareTo(Constants.sPrice) == 0)
+ {
+ inPrice = false;
+ return;
+ }
+
+ }
+
+ public void characters(char[] ch,
+ int start,
+ int length) throws SAXException
+ {
+ if(inStringForSum){
+ //System.out.println("characters length = "+length);
+ iStringSum += length;
+ }
+ else if(inPrice){
+ sum += Float.parseFloat(new String(ch,start,length));
+ }
+ }
+
+ public int getStringLengthSum(){return iStringSum;}
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadOneXercesDom.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadOneXercesDom.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadOneXercesDom.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,108 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.xerces;
+
+import java.io.CharArrayReader;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+
+public class POReadOneXercesDom
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POReadOneXercesDom test = new POReadOneXercesDom();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+
+ // print the results
+ System.out.print(Constants.DELIM+POReadOneXercesDom.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ // "unmarshall" the xml instance
+ InputSource is = new InputSource(reader);
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+ factory.setValidating(false);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.parse(is);
+
+ // retreive the purchase order
+ Element po = doc.getDocumentElement();
+
+ // retreive the first line item
+ NodeList lineitem = po.getElementsByTagName("po:line-item").item(0).getChildNodes();
+
+ // return the char length of the description
+ return lineitem.item(1).getFirstChild().getNodeValue().length();
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadOneXercesSax.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadOneXercesSax.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POReadOneXercesSax.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,166 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.xerces;
+
+import java.io.CharArrayReader;
+
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+
+public class POReadOneXercesSax
+{
+ public static void main(String[] args) throws Exception
+ {
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+
+ POReadOneXercesSax test = new POReadOneXercesSax();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+
+ // print the results
+ System.out.print(Constants.DELIM+POReadOneXercesDom.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ // "unmarshall" the xml instance
+ InputSource is = new InputSource(reader);
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+ factory.setNamespaceAware(true);
+ factory.setValidating(false);
+ SAXParser parser = factory.newSAXParser();
+ MyHandler handler = new MyHandler();
+ // the handler will tally the string length sum
+ parser.parse(is, handler);
+
+ return handler.getLineItemDescLength();
+ }
+
+ // SAX event handler class
+ public static class MyHandler extends DefaultHandler
+ {
+ private int iLineItemDescLen = 0;
+ private boolean inLineItem = false;
+ private boolean inLineItemDesc = false;
+ private boolean bDone = false;
+
+
+ public void startElement(String uri,
+ String localName,
+ String qName,
+ Attributes attributes) throws SAXException
+ {
+
+ if( uri.compareTo(Constants.PO_NS) == 0 &&
+ localName.compareTo(Constants.sLineItem) == 0)
+ {
+ inLineItem = true;
+ return;
+ }
+ else if( uri.compareTo(Constants.PO_NS) == 0 &&
+ localName.compareTo(Constants.sDesc) == 0 &&
+ inLineItem )
+ {
+ inLineItemDesc = true;
+ return;
+ }
+ }
+
+ public void endElement(String uri,
+ String localName,
+ String qName) throws SAXException
+ {
+ if( uri.compareTo(Constants.PO_NS) == 0 &&
+ localName.compareTo(Constants.sLineItem) == 0)
+ {
+ inLineItem = false;
+ return;
+ }
+ else if( uri.compareTo(Constants.PO_NS) == 0 &&
+ localName.compareTo(Constants.sDesc) == 0 &&
+ inLineItem )
+ {
+ inLineItemDesc = false;
+ return;
+ }
+
+ }
+
+ public void characters(char[] ch,
+ int start,
+ int length) throws SAXException
+ {
+ if(inLineItemDesc && !bDone){
+ iLineItemDescLen = length;
+ bDone = true;
+ }
+ }
+
+ public int getLineItemDescLength(){return iLineItemDescLen;}
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POTopDownXercesDom.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POTopDownXercesDom.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POTopDownXercesDom.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,142 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.xerces;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+public class POTopDownXercesDom
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+
+ POTopDownXercesDom test = new POTopDownXercesDom();
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+
+ // print the results
+ System.out.print(Constants.DELIM+POTopDownXercesDom.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+
+ // create the document
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+ factory.setValidating(false);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.newDocument();
+
+ // create the purchase order element
+ Element po = doc.createElementNS(Constants.PO_NS,"po:purchase-order");
+
+ // create the customer element
+ Element customer = doc.createElementNS(Constants.PO_NS,"po:customer");
+
+ // create the customer name element and add to customer
+ Element name = doc.createElementNS(Constants.PO_NS,"po:name");
+ Node tCustName = doc.createTextNode(Constants.PO_CUSTOMER_NAME);
+ name.appendChild(tCustName);
+ customer.appendChild(name);
+
+ // create the customer address element and add to customer
+ Element address = doc.createElementNS(Constants.PO_NS,"po:address");
+ Node tCustAddr = doc.createTextNode(Constants.PO_CUSTOMER_ADDR);
+ address.appendChild(tCustAddr);
+ customer.appendChild(address);
+
+ // add the customer to the po
+ po.appendChild(customer);
+
+ // create the date element and add it to the po
+ Element date = doc.createElementNS(Constants.PO_NS,"po:date");
+ Node tDate = doc.createTextNode(Constants.PO_DATE_STRING);
+ date.appendChild(tDate);
+ po.appendChild(date);
+
+ // create and add the line item elements
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ Element li = doc.createElementNS(Constants.PO_NS,"po:line-item");
+
+ // description
+ Element desc = doc.createElementNS(Constants.PO_NS,"po:description");
+ Node tDesc = doc.createTextNode(Constants.PO_LI_DESC);
+ desc.appendChild(tDesc);
+ li.appendChild(desc);
+
+ // per-unit-ounces
+ Element puo = doc.createElementNS(Constants.PO_NS,"po:per-unit-ounces");
+ Node tPuo = doc.createTextNode(Constants.PO_LI_PUO_STRING);
+ puo.appendChild(tPuo);
+ li.appendChild(puo);
+
+ // price
+ Element price = doc.createElementNS(Constants.PO_NS,"po:price");
+ Node tPrice = doc.createTextNode(Constants.PO_LI_PRICE_STRING);
+ price.appendChild(tPrice);
+ li.appendChild(price);
+
+ // quantity
+ Element quantity = doc.createElementNS(Constants.PO_NS,"po:quantity");
+ Node tQuantity = doc.createTextNode(Constants.PO_LI_QUANTITY_STRING);
+ quantity.appendChild(tQuantity);
+ li.appendChild(quantity);
+
+ // add the line-item to the po
+ po.appendChild(li);
+ }
+
+ // create and add the shipper
+ Element shipper = doc.createElementNS(Constants.PO_NS,"po:shipper");
+ Element shipperName = doc.createElementNS(Constants.PO_NS,"po:name");
+ Node tShipperName = doc.createTextNode(Constants.PO_SHIPPER_NAME);
+ shipperName.appendChild(tShipperName);
+ shipper.appendChild(shipperName);
+ Element perouncerate = doc.createElementNS(Constants.PO_NS,"po:per-ounce-rate");
+ Node tPerOunceRate = doc.createTextNode(Constants.PO_SHIPPER_POR_STRING);
+ perouncerate.appendChild(tPerOunceRate);
+ shipper.appendChild(perouncerate);
+
+ // create the hash to return
+ int hash = ( po.getElementsByTagNameNS(Constants.PO_NS, "line-item").getLength() ) * 17;
+ return hash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POTopDownXercesSax.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POTopDownXercesSax.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POTopDownXercesSax.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,233 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.xerces;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
+import org.xml.sax.helpers.DefaultHandler;
+
+
+public class POTopDownXercesSax
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+
+ POTopDownXercesSax test = new POTopDownXercesSax();
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+
+ // print the results
+ System.out.print(Constants.DELIM+POTopDownXercesSax.class.getName()+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+
+ // instantiate the handler
+ MyHandler handler = new MyHandler();
+ handler.startDocument();
+ handler.startPrefixMapping(Constants.prefix,
+ Constants.PO_NS);
+
+ // start the po element
+ AttributesImpl attributes = new AttributesImpl();
+ attributes.addAttribute(null,
+ null,
+ Constants.qNamespace,
+ Constants.qString,
+ Constants.PO_NS);
+ handler.startElement(null,null,Constants.qPO,attributes);
+
+ // the customer element
+ handler.startElement(Constants.qCustomer);
+ handler.startElement(Constants.qName);
+ handler.characters(Constants.PO_CUSTOMER_NAME);
+ handler.endElement(Constants.qName);
+ handler.startElement(Constants.qAddress);
+ handler.characters(Constants.PO_CUSTOMER_ADDR);
+ handler.endElement(Constants.qAddress);
+ handler.endElement(Constants.qCustomer);
+
+ // the date element
+ handler.startElement(Constants.qDate);
+ handler.characters(Constants.PO_DATE_STRING);
+ handler.endElement(Constants.qDate);
+
+ // the line items
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ handler.startElement(Constants.qLineItem);
+ handler.startElement(Constants.qDescription);
+ handler.characters(Constants.PO_LI_DESC);
+ handler.endElement(Constants.qDescription);
+ handler.startElement(Constants.qPerUnitOunces);
+ handler.characters(Constants.PO_LI_PUO_STRING);
+ handler.endElement(Constants.qPerUnitOunces);
+ handler.startElement(Constants.qPrice);
+ handler.characters(Constants.PO_LI_PRICE_STRING);
+ handler.endElement(Constants.qPrice);
+ handler.startElement(Constants.qQuantity);
+ handler.characters(Constants.PO_LI_QUANTITY_STRING);
+ handler.endElement(Constants.qQuantity);
+ handler.endElement(Constants.qLineItem);
+ }
+
+ // the shipper
+ handler.startElement(Constants.qShipper);
+ handler.startElement(Constants.qName);
+ handler.characters(Constants.PO_SHIPPER_NAME);
+ handler.endElement(Constants.qName);
+ handler.startElement(Constants.qPerOunceRate);
+ handler.characters(Constants.PO_SHIPPER_POR_STRING);
+ handler.endElement(Constants.qPerOunceRate);
+ handler.endElement(Constants.qShipper);
+
+
+ // end the po element
+ handler.endElement(Constants.qPO);
+
+ // calculate a hash to return
+ int hash = handler.getLineItemCount() * 17;
+ return hash;
+ }
+
+ // SAX event handler class
+ public static class MyHandler extends DefaultHandler
+ {
+ private int _hash = 0;
+ private StringBuffer _buff;
+ private String _uri;
+ private String _prefix;
+ private final String SES = "<";
+ private final String EE = ">";
+ private final String EES = "</";
+ private final String EQ = "=";
+
+ public int getLineItemCount()
+ {
+ int licount = 0;
+ int i = 0;
+ while( i != _buff.lastIndexOf(Constants.qLineItem))
+ {
+ licount++;
+ i = _buff.indexOf(Constants.qLineItem,i+1);
+ }
+
+ return (licount/2);
+ }
+
+ // sax event handlers
+ public void startDocument() throws SAXException
+ {
+ _buff = new StringBuffer(Constants.initialBuffSize);
+ }
+
+ /*
+ public void endDocument() throws SAXException
+ {
+ }
+ */
+
+ public void startPrefixMapping(String prefix, String uri) throws SAXException
+ {
+ _prefix = prefix;
+ _uri = uri;
+ }
+
+ public void endPrefixMapping(String prefix) throws SAXException
+ {
+ _prefix = null;
+ _uri = null;
+ }
+
+ public void startElement(String qName) throws SAXException
+ {
+ this.startElement(null,null,qName,null);
+ }
+
+ public void startElement(String uri,
+ String localName,
+ String qName,
+ Attributes attributes) throws SAXException
+ {
+
+ if(null != attributes)
+ {
+ _buff.append(SES);
+ _buff.append(qName);
+ _buff.append(attributes.getQName(0));
+ _buff.append(EQ);
+ _buff.append(attributes.getValue(0));
+ _buff.append(EE);
+ }
+ else
+ {
+ _buff.append(SES);
+ _buff.append(qName);
+ _buff.append(EE);
+ }
+
+ }
+
+ public void endElement(String qName) throws SAXException
+ {
+ this.endElement(null,null,qName);
+ }
+
+ public void endElement(String uri,
+ String localName,
+ String qName) throws SAXException
+ {
+ _buff.append(EES);
+ _buff.append(qName);
+ _buff.append(EE);
+ }
+
+ public void characters(String _val) throws SAXException
+ {
+ char[] chars = new char[_val.length()];
+ _val.getChars(0,_val.length(),chars,0);
+ this.characters(chars,0,chars.length);
+ }
+
+ public void characters(char[] ch, int start, int length) throws SAXException
+ {
+ _buff.append(ch,start,length);
+ }
+ }
+
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POValidateXerces.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POValidateXerces.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/xerces/POValidateXerces.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,152 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.xerces;
+
+import org.apache.xerces.parsers.IntegratedParserConfiguration;
+import org.apache.xerces.parsers.XMLGrammarPreparser;
+import org.apache.xerces.util.SymbolTable;
+import org.apache.xerces.util.XMLGrammarPoolImpl;
+import org.apache.xerces.xni.grammars.Grammar;
+import org.apache.xerces.xni.grammars.XMLGrammarDescription;
+import org.apache.xerces.xni.parser.XMLInputSource;
+import org.apache.xerces.xni.parser.XMLParserConfiguration;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+
+public class POValidateXerces
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POValidateXerces test = new POValidateXerces();
+ long cputime;
+ int hash = 0;
+
+ /////////////////////////////////
+ // Xerces validating parser setup
+ /////////////////////////////////
+ /** Property identifier: symbol table. */
+ final String SYMBOL_TABLE =
+ org.apache.xerces.impl.Constants.XERCES_PROPERTY_PREFIX + org.apache.xerces.impl.Constants.SYMBOL_TABLE_PROPERTY;
+
+ /** Property identifier: grammar pool. */
+ final String GRAMMAR_POOL =
+ org.apache.xerces.impl.Constants.XERCES_PROPERTY_PREFIX + org.apache.xerces.impl.Constants.XMLGRAMMAR_POOL_PROPERTY;
+
+ // feature ids
+
+ /** Namespaces feature id */
+ final String NAMESPACES_FEATURE_ID =
+ "http://xml.org/sax/features/namespaces";
+
+ /** Validation feature id */
+ final String VALIDATION_FEATURE_ID =
+ "http://xml.org/sax/features/validation";
+
+ /** Schema validation feature id */
+ final String SCHEMA_VALIDATION_FEATURE_ID =
+ "http://apache.org/xml/features/validation/schema";
+
+ /** Schema full checking feature id */
+ final String SCHEMA_FULL_CHECKING_FEATURE_ID =
+ "http://apache.org/xml/features/validation/schema-full-checking";
+
+ SymbolTable sym = new SymbolTable();
+ XMLGrammarPreparser preparser = new XMLGrammarPreparser(sym);
+ XMLGrammarPoolImpl grammarPool = new XMLGrammarPoolImpl();
+
+
+ preparser.registerPreparser(XMLGrammarDescription.XML_SCHEMA, null);
+ preparser.setProperty(GRAMMAR_POOL, grammarPool);
+ preparser.setFeature(NAMESPACES_FEATURE_ID, true);
+ preparser.setFeature(VALIDATION_FEATURE_ID, true);
+ preparser.setFeature(SCHEMA_VALIDATION_FEATURE_ID, true);
+ preparser.setFeature(SCHEMA_FULL_CHECKING_FEATURE_ID, true);
+
+ // parse the schema
+ XMLInputSource schemaIS = new XMLInputSource(null,Constants.PO_XSD,null);
+ Grammar grammar = preparser.preparseGrammar(XMLGrammarDescription.XML_SCHEMA,
+ schemaIS);
+
+ // create the parser configuration
+ XMLParserConfiguration parserConfiguration = new IntegratedParserConfiguration(sym,grammarPool);
+ // now reset the config according to xerces docs -- required b/c we preparsed???
+ preparser.setProperty(GRAMMAR_POOL, grammarPool);
+ preparser.setFeature(NAMESPACES_FEATURE_ID, true);
+ preparser.setFeature(VALIDATION_FEATURE_ID, true);
+ preparser.setFeature(SCHEMA_VALIDATION_FEATURE_ID, true);
+ preparser.setFeature(SCHEMA_FULL_CHECKING_FEATURE_ID, true);
+
+ /////////////////////////////////////
+ // end Xerces validating parser setup
+ /////////////////////////////////////
+
+ // get the xmlinstance
+ XMLInputSource instanceIS = new XMLInputSource(null,filename,null);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(parserConfiguration, instanceIS);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(parserConfiguration, instanceIS);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ // use perf util to get file size (XMLInputSource doens't give an easy API).
+ PerfUtil util = new PerfUtil();
+ char[] chars = util.fileToChars(filename);
+ System.out.print(Constants.DELIM+POValidateXerces.class.getName()+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(XMLParserConfiguration p_parser, XMLInputSource p_input) throws Exception
+ {
+ // parse with validating parser
+ p_parser.parse(p_input);
+ // return an int for the hash
+ return 17;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/tools/PerfResultTask.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/tools/PerfResultTask.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/tools/PerfResultTask.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,83 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.tools;
+
+import org.openuri.perf.*;
+import java.io.File;
+import java.io.IOException;
+import org.apache.tools.ant.taskdefs.MatchingTask;
+import org.apache.tools.ant.BuildException;
+
+public class PerfResultTask extends MatchingTask
+{
+ private final String P = System.getProperty("file.separator");
+
+ // attributes
+ private String _srcdir = null;
+ private String _gendir = null;
+ private String _delim = null;
+ private String _hostname = null;
+
+ // setters for attributes
+ public void setSrcdir(String p_srcdir)
+ {
+ _srcdir = p_srcdir;
+ }
+
+ public void setGendir(String p_gendir)
+ {
+ _gendir = p_gendir;
+ }
+
+ public void setDelimiter(String p_delimiter)
+ {
+ _delim = p_delimiter;
+ }
+
+ public void setHostname(String p_hostname)
+ {
+ _hostname = p_hostname;
+ }
+
+
+ public void execute() throws BuildException
+ {
+ PerfResultUtil util = new PerfResultUtil();
+ try
+ {
+ // process files from includes
+ fileset.setDir(new File(_srcdir));
+ String[] files = fileset.getDirectoryScanner(project).getIncludedFiles();
+
+ for(int i=0; i<files.length; i++)
+ {
+ System.out.println("processing file: "+_srcdir+P+files[i]);
+ ResultSetDocument doc = util.processFlatFile(_srcdir+P+files[i],_delim);
+ // TODO: add ant prop overrides for other env sesttings
+ doc.getResultSet().getEnvironment().setHostname(_hostname);
+ util.saveXmlToFile(doc,_gendir,files[i]);
+ }
+
+ }
+ catch(IOException ioe)
+ {
+ ioe.printStackTrace();
+ System.out.println("ERROR: IOException");
+ return;
+ }
+ }
+
+
+}
\ No newline at end of file
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/tools/PerfResultUtil.java
Url: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/tools/PerfResultUtil.java?view=auto&rev=124274
==============================================================================
--- (empty file)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/tools/PerfResultUtil.java Wed Jan 5 13:09:10 2005
@@ -0,0 +1,119 @@
+package org.apache.xmlbeans.test.tools;
+
+import org.openuri.perf.*;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.FileNotFoundException;
+import java.util.StringTokenizer;
+import java.util.Calendar;
+
+//import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.XmlOptions;
+
+public class PerfResultUtil
+{
+ /*
+ * Process flat file logs into perf result xmlbean instance.
+ * A result consists is a line in the file starting with the
+ * given delimiter, followed by space delimitted perf data.
+ * Useful as a postprocessor for simple perf tests where
+ * you just want to use stdout loging during the test.
+ */
+ public ResultSetDocument processFlatFile(String p_filename, String p_delim) throws FileNotFoundException, IOException
+ {
+ // names for known space-delimited perf data
+ // labels plucked out of the given file
+ final String TIME = "time";
+ final String MEMORY = "memory";
+ final String HASH = "hash";
+
+ FileReader reader = new FileReader(p_filename);
+ StringBuffer buff = new StringBuffer();
+ int c;
+ while( (c=reader.read()) != -1)
+ {
+ buff.append((char)c);
+ }
+ //System.out.println("file contents: \n"+buff.toString());
+
+ ResultSetDocument doc = ResultSetDocument.Factory.newInstance();
+ ResultSetDocument.ResultSet resultSet = doc.addNewResultSet();
+
+ StringTokenizer st = new StringTokenizer( buff.toString(),System.getProperty("line.separator"));
+ while(st.hasMoreTokens())
+ {
+ String currentLine = st.nextToken().toString();
+ if(currentLine.startsWith(p_delim))
+ {
+ StringTokenizer stResult = new StringTokenizer(currentLine," ");
+ // advance past the perf rusult line delimeter
+ stResult.nextToken();
+
+ Result result = resultSet.addNewResult();
+ // TODO: remove id once it's not needed
+ result.setId(System.currentTimeMillis());
+ // name must be the first token in a flat perf result
+ result.setName(stResult.nextToken());
+
+ // scan the resulting tokens for known perf data or notes
+ while(stResult.hasMoreTokens())
+ {
+ String data = stResult.nextToken();
+ if(data.indexOf(TIME) != -1)
+ result.setTime(Long.parseLong(stResult.nextToken()));
+ else if(data.indexOf(HASH) != -1)
+ result.setHash(Integer.parseInt(stResult.nextToken()));
+ else if(data.indexOf(MEMORY) != -1)
+ result.setMemory(Long.parseLong(stResult.nextToken()));
+ else if(data.indexOf("=") != -1)
+ {
+ // add custom element/value if this is a 'foo=bar' type token
+ String[] pair = data.split("=");
+ Custom custom = result.addNewCustom();
+ custom.setName(pair[0]);
+ custom.setValue(pair[1]);
+ }
+ else
+ {
+ if(null != result.getNote())
+ result.setNote(result.getNote()+" "+data);
+ else
+ result.setNote(data);
+ }
+
+ }
+ }
+ }
+
+ // add default environment info
+ Environment env = resultSet.addNewEnvironment();
+ env.setOs(System.getProperty("os.name")+System.getProperty("os.version"));
+ env.setJvm(System.getProperty("java.vm.vendor")+" "+System.getProperty("java.vm.version"));
+ env.setDate(Calendar.getInstance());
+ // TODO: retreive all system information programmatically
+ //env.setSysmem();
+ //env.setHostname();
+ //env.setCpuinfo();
+ // TODO: add change list support
+
+ return doc;
+ }
+
+ public static void saveXmlToFile(ResultSetDocument p_doc, String p_dirname, String p_origname) throws IOException
+ {
+ // save the xml result
+ File fGendir = new File(p_dirname);
+ fGendir.mkdirs();
+ FileWriter writer = new FileWriter(p_dirname+System.getProperty("file.separator")+p_origname+".xml");
+ XmlOptions opts = new XmlOptions();
+ opts.setSavePrettyPrint();
+ p_doc.save(writer,opts);
+ writer.flush();
+ writer.close();
+ //System.out.println("result xml is:\n"+p_doc.xmlText(opts));
+ }
+
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: commits-help@xmlbeans.apache.org