/xmlbench/trunk

To get this branch, use:
bzr branch http://darksoft.org/webbzr/xmlbench/trunk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
Overview
--------
    This package provides basic benchmarks for main C/C++ multiplatform 
    parsers. Some of Java parsers also included for comparision.
    
    This version supports following benchmarks:
	Parsing: SAX & DOM
	Validating: XML Schema
	DOM: Creating DOM tree, Serialization
	Security: XML Signature, XML Encryption
	XSL Transformation
    
    Following XML sources supported:
	Any well-formed XML file ( XML, XSL, XSD )
	Automatic generation of random simple XML file
	Automatic generation of random XML OPC-DA message sequence

    Following parsers supported:
	libxml2 + libgdome + libxslt + xmlsec
	xerces + xalan
	expat + sablotron + cslxml + arabica
	RXP parser
	Oracle XDK for C, C++, Java
	IBM xml4c + Lotus XML (not supported)
	Sun XML Pack + Apache XML Security

Environment Variables
---------------------
    allow_deferring	- Allows partial DOM construction in parsing tests,
			see "Lazy DOM node expansion" in apache documentation:
			http://xerces.apache.org/xerces-j/features.html
    allow_preprocessing	- Allows preprocessing of XML text to construct 
			intermediate representation (normally index) which
			can be used for parsing
    walk_tree		- For comparison of optimizing parsers which do not
			perform full DOM construction, this will force to 
			access all elements and attributes and estimate 
			complete speed.
    skip_xml		- Skip all XML code, used to measure memory used
			by XML-specific code
    fast_mode		- By default parsers try to set standard parsing
			mode to support all cases, however, in this mode
			various optimizations are enabled (no string 
			termination, no well-formness check, etc.)

    memory_bench	- Optimize tests for memory benchmarks
    skip_xml		- Do not perform actual xml parsing or construction
    skip_xsl		- Do not perform actual transformation
    skip_validate	- Do not perform actual document validation
    skup_security	- Skip encryption and signature related action


Requirements
------------    
	Libxml2			( tested 2.4.30, 2.5.9, 2.5.11, 2.6.3, 2.6.5 )
	Libxslt			( tested 1.0.24 - 1.0.33, 1.1.2 )
	libgdome		( tested 0.7.2 - 0.7.4, 0.8.1 )
	xmlsec + patch		( tested 0.0.12 - 0.0.15, 1.0.2, 1.1.2, 1.2.4 )
	OpenSSL > 0.9.7
	xerces for C		( tested 2.1.0, 2.2.0, 2.3.0, 2.4.0 )
	xalan for C		( tested 1.4.0, 1.5.0, 1.6.0, 1.7.0 )
	IBM XML for C		( tested 5.0.0, 5.2.0 )
	RXP Parser		( tested 1.2.8 )
	expat			( tested 1.95.5, 1.95.6 )
	arabica			( tested sept02, jan04 )
	cslxml			( tested 020103, 020107 )
	sablotron		( tested 0.97.0, 1.0.1 )
	Oracle XDK for C	( tested 9.0.1.0.0, 9.2.0.6.0 )
	Oracle XDK for C++	( tested 9.0.1.0.0, 9.2.0.6.0 )
	Oracle XDK for Java	( tested 9.2.0.4.0, 9.2.0.6.0 )
	Sun J2SE 1.4.1 + XML Pack Summer or Java WebServices Developer Pack  (JAXP >= 1.2)
	Apache XML Security	( tested 20020422, 1.0.0 )
	Jakarta Log4J		( tested 1.2 )
	

Build
-----
    1. Install all required libraries
    2. Check options You want in Makefile.in
    3. Rip off all benchmarks coresponded to unavailable libraries from Makefile.in
    4. Update library paths in Makefile.in
    5. Select compilers in Makefile.in
    6. make

Oracle Notes
------------
    To have part (not all, but maximum possible) user readable error messages
    following enviroment virables must be set
    
	ORA_NLS33=/usr/share/xdk/nlsdata
	ORA_XML_MESG=/usr/share/xdk/mesg

    Oracle XDK 9.0 have rather old XML Schema implementation and don't understand 
    OPC Schema, other schemas also can be incompatible with it.
    
    Oracle XDK 9.2.0.6.0 have up-to-date XML Schema implementation but buggy. Can 
    drop core on some non-valid documents. ( May be for some of valids also )

Sablotron Notes
---------------
    All versions, I tested (0.96, 0.96.1, 0.97) failed to process long large
    <opcgen> generated documents. Fixed in 0.98.

Gnime XML Library
-----------------
    Gnome XML 2.6.5 library have problems with validation of xsd:QName attributes

Gnome XML Security (prior to 1.2.0)
------------------
    Gnome XML security library prior to 1.2.0 lacks support for reading public keys from X509 
    certificates. Because of that if you want to use xmlsec 1.1.x or earlier, you must 
    rebuild xmlsec with coresponded patch available in 'patches/' directory. 
    Versions 1.2.x don't need to be patched.

Apache XML Security for C (from CVS tree)
-------------------------
    Apache XML Security for C (CVS 07.02.2004) have problems in transcoding code, resulting in
    random segmenation faults. Please find temorary fix in 'patches/' directory.