/xmlbench/trunk

To get this branch, use:
bzr branch http://darksoft.org/webbzr/xmlbench/trunk
1 by Suren A. Chilingaryan
Initial import
1
Overview
2
--------
3
    This package provides basic benchmarks for main C/C++ multiplatform 
4
    parsers. Some of Java parsers also included for comparision.
5
    
6
    This version supports following benchmarks:
7
	Parsing: SAX & DOM
8
	Validating: XML Schema
9
	DOM: Creating DOM tree, Serialization
10
	Security: XML Signature, XML Encryption
11
	XSL Transformation
12
    
13
    Following XML sources supported:
14
	Any well-formed XML file ( XML, XSL, XSD )
15
	Automatic generation of random simple XML file
16
	Automatic generation of random XML OPC-DA message sequence
17
18
    Following parsers supported:
19
	libxml2 + libgdome + libxslt + xmlsec
20
	xerces + xalan
21
	expat + sablotron + cslxml + arabica
22
	RXP parser
23
	Oracle XDK for C, C++, Java
24
	IBM xml4c + Lotus XML (not supported)
25
	Sun XML Pack + Apache XML Security
26
2 by Suren A. Chilingaryan
Intel, Tango, Phobos, and RapidXML parsers; Memory benchmark scripts
27
Environment Variables
28
---------------------
29
    allow_deferring	- Allows partial DOM construction in parsing tests,
30
			see "Lazy DOM node expansion" in apache documentation:
31
			http://xerces.apache.org/xerces-j/features.html
3 by Suren A. Chilingaryan
Parsing tests for mono, vtd-xml, lisp, scripting languages
32
    allow_preprocessing	- Allows preprocessing of XML text to construct 
33
			intermediate representation (normally index) which
34
			can be used for parsing
35
    walk_tree		- For comparison of optimizing parsers which do not
36
			perform full DOM construction, this will force to 
37
			access all elements and attributes and estimate 
38
			complete speed.
9 by Suren A. Chilingaryan
Implement DOM walking mode for parsing benchmark in fast parsers
39
    skip_xml		- Skip all XML code, used to measure memory used
40
			by XML-specific code
41
    fast_mode		- By default parsers try to set standard parsing
42
			mode to support all cases, however, in this mode
43
			various optimizations are enabled (no string 
44
			termination, no well-formness check, etc.)
2 by Suren A. Chilingaryan
Intel, Tango, Phobos, and RapidXML parsers; Memory benchmark scripts
45
46
    memory_bench	- Optimize tests for memory benchmarks
47
    skip_xml		- Do not perform actual xml parsing or construction
48
    skip_xsl		- Do not perform actual transformation
49
    skip_validate	- Do not perform actual document validation
50
    skup_security	- Skip encryption and signature related action
51
1 by Suren A. Chilingaryan
Initial import
52
53
Requirements
54
------------    
55
	Libxml2			( tested 2.4.30, 2.5.9, 2.5.11, 2.6.3, 2.6.5 )
56
	Libxslt			( tested 1.0.24 - 1.0.33, 1.1.2 )
57
	libgdome		( tested 0.7.2 - 0.7.4, 0.8.1 )
58
	xmlsec + patch		( tested 0.0.12 - 0.0.15, 1.0.2, 1.1.2, 1.2.4 )
59
	OpenSSL > 0.9.7
60
	xerces for C		( tested 2.1.0, 2.2.0, 2.3.0, 2.4.0 )
61
	xalan for C		( tested 1.4.0, 1.5.0, 1.6.0, 1.7.0 )
62
	IBM XML for C		( tested 5.0.0, 5.2.0 )
63
	RXP Parser		( tested 1.2.8 )
64
	expat			( tested 1.95.5, 1.95.6 )
65
	arabica			( tested sept02, jan04 )
66
	cslxml			( tested 020103, 020107 )
67
	sablotron		( tested 0.97.0, 1.0.1 )
68
	Oracle XDK for C	( tested 9.0.1.0.0, 9.2.0.6.0 )
69
	Oracle XDK for C++	( tested 9.0.1.0.0, 9.2.0.6.0 )
70
	Oracle XDK for Java	( tested 9.2.0.4.0, 9.2.0.6.0 )
71
	Sun J2SE 1.4.1 + XML Pack Summer or Java WebServices Developer Pack  (JAXP >= 1.2)
72
	Apache XML Security	( tested 20020422, 1.0.0 )
73
	Jakarta Log4J		( tested 1.2 )
74
	
75
76
Build
77
-----
78
    1. Install all required libraries
79
    2. Check options You want in Makefile.in
80
    3. Rip off all benchmarks coresponded to unavailable libraries from Makefile.in
81
    4. Update library paths in Makefile.in
82
    5. Select compilers in Makefile.in
83
    6. make
84
85
Oracle Notes
86
------------
87
    To have part (not all, but maximum possible) user readable error messages
88
    following enviroment virables must be set
89
    
90
	ORA_NLS33=/usr/share/xdk/nlsdata
91
	ORA_XML_MESG=/usr/share/xdk/mesg
92
93
    Oracle XDK 9.0 have rather old XML Schema implementation and don't understand 
94
    OPC Schema, other schemas also can be incompatible with it.
95
    
96
    Oracle XDK 9.2.0.6.0 have up-to-date XML Schema implementation but buggy. Can 
97
    drop core on some non-valid documents. ( May be for some of valids also )
98
99
Sablotron Notes
100
---------------
101
    All versions, I tested (0.96, 0.96.1, 0.97) failed to process long large
102
    <opcgen> generated documents. Fixed in 0.98.
103
104
Gnime XML Library
105
-----------------
106
    Gnome XML 2.6.5 library have problems with validation of xsd:QName attributes
107
108
Gnome XML Security (prior to 1.2.0)
109
------------------
110
    Gnome XML security library prior to 1.2.0 lacks support for reading public keys from X509 
111
    certificates. Because of that if you want to use xmlsec 1.1.x or earlier, you must 
112
    rebuild xmlsec with coresponded patch available in 'patches/' directory. 
113
    Versions 1.2.x don't need to be patched.
114
115
Apache XML Security for C (from CVS tree)
116
-------------------------
117
    Apache XML Security for C (CVS 07.02.2004) have problems in transcoding code, resulting in
118
    random segmenation faults. Please find temorary fix in 'patches/' directory.