-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
139 lines (108 loc) · 5.33 KB
/
README
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
XDuce: A Typed XML Processing Language
Overview
XDuce ("transduce") is a typed programming language that is
specifically designed for processing XML data. One can read an XML
document as an XDuce value, extract information from it or convert it
to another format, and write out the result value as an XML document.
Since XDuce is statically typed, XDuce programs never crash at run
time and the resulting XML documents always conform specified types.
XDuce has several notable features.
1. Regular expression types, which are similar in spirit to Document
Type Definitions (DTD).
2. A powerful notion of subtyping. (It allows any subtyping relation
that you may expect from your intuition on inclusion relation of
regular expressions.) It not only gives substantial flexibility in
programming, but also is useful for schema evolution or
integration.
3. Regular expression pattern matching. In addition to ML-like
patterns, we can match values against regular expression types.
4. Attribute types in the style of RELAX NG. We can mix both
attribute constraints and element constraints in the same regular
expression notation.
5. Regular expression filters, an extension of pattern matching where
we can form a regular expression over pattern clauses.
6. Parametric polymorphism.
Implementation Status
This implementation is a part of our ongoing research. The language
design has not been finished, and some algorithmic issues in type
checking and the run-time system still remain. This language system is
likely to be drastically changed in near future. So please do not
depend on this software. On the other hand, any comments and
suggestions are welcome!
System Requirements
XDuce system is solely written in [1]the O'Caml language. In
principle, XDuce should run on any platform that O'Caml supports. In
particular, we have checked that XDuce works on the following.
* SunOS 5.7
* Intel Linux
* LinuxPPC
* IRIX
* Mac OS X
We have not yet tested compilation on Windows. However, since recent
versions of O'Caml and the libraries that XDuce depends on support
Windoes with Cygwin, XDuce should work on this platform in principle.
Building XDuce
1. Make sure that GNU make or its equivalent is installed.
2. Install [2]O'Caml (newer than 3.04; older ones may not work) if
not yet installed.
3. Install the [3]findlib tool (newer than 0.6.2).
4. Install the following libraries in this order.
a. [4]netstring (newer than 0.10.1)
b. [5]PXP (newer than 1.1.3)
Note: You have to build each library by typing "make opt" in order
to build xduce by the native O'Caml compiler (type "make all" if
you want to compile the bytecode version of xduce).
Note: You can also install all the above software by using [6]GODI
(package manager for O'Caml libraries). In this case, replace
netstring with ocamlnet.
5. Compile XDuce as follows.
a. tar xvfz xduce-xxx.tar.gz (where xxx is the version number of
XDuce you downloaded).
b. cd xduce-xxx
c. make
It will produce an executable file named xduce.opt in the
xduce-xxx directory.
On platforms where native O'Caml compiler is not supported, still
bytecode version may work. For this compilation, type:
make debug
This will yield an executable file xduce. The usage is the same.
6. At the moment, we do not provide any automatic installation
mechanism. You may move the executable wherever you want. Note,
however, it directly refers to the xduce-xxx/lib directory. Make
sure that this directory is accessible when you use the
executable. Or, if you need to move the lib directory, then
specify the new location by -path option:
xduce.opt -path <new-location> ...
Usage
type
xduce.opt <XDuce program file>
to run a XDuce program. Type
xduce.opt -help
to see options.
Documentation
There is no user's manual since the language design is not yet
settled. The programs found in "examples" directory would be useful
for understanding the language. Also, the files in "lib" directory
(such as "pervasive.q" and "xml.q") would be worth seeing.
For more information, visit our web page:
[7]http://xduce.sourceforge.net
It also provides some technical papers.
Contact
Haruo Hosoya (hahosoya@users.sourceforge.net)
Acknowledgement
* We especially thank Volker Renneberg for his tremendous
contributions to our implementation in bug reports, suggestions,
and additional code.
* Some sources files from the bibtex2html tool by Jean-Christophe
Filliatre and Claude Marche are incorporated (in bibtex
directory).
_________________________________________________________________
$Id: README,v 1.7 2005/04/06 07:07:32 hahosoya Exp $
References
1. http://caml.inria.fr/ocaml/distrib.html
2. http://caml.inria.fr/ocaml/distrib.html
3. http://www.ocaml-programming.de/packages/documentation/findlib/
4. http://www.ocaml-programming.de/packages/documentation/netstring
5. http://www.ocaml-programming.de/packages/documentation/pxp
6. http://godi.ocaml-programming.de/
7. http://xduce.sourceforge.net/