This package provides services for manipulating certain generic xml elements. At this time these include elements for describing constants and arithmetic (<prim>, <mul>, etc.) and those having to do with recording the genesis of an xml file (<source>).
The DocMan class and the derived class GDDDocMan facilitate sharing of a single XML document among several clients. Clients can sign up to be called back when an element of a particular type is encountered. DocMan itself is responsible for parsing the file and managing the resources this requires. GDDDocMan "knows" about constants; it provides the additional service of evaluating and substituting for constants before any client handlers are invoked.
This package also provides classes for representing and manipulating identifier dictionaries and identifier conversions. An identifier logically consists of a sequence of (name,value) pairs in which the value is a non-negative integer. An identifier dictionary is a means of specifying constraints on a collection of Identifiers in such a way that
An identifier conversion is a list of operations defined on a subcollection of identifiers from a dictionary, transforming them to a new collection of identifiers (not necessarily belonging to the same dictionary). An id converter is a group of compatible identifier conversions.
These elements (for arithmetic, identifiers, etc.) are described in gdd.dtd, the dtd describing generic geometry, hence that file and the xml files using it are also kept in this package. When xml namespaces become usable with a c++ parser it would be preferable to split off the utility elements into their own namespace(s).
In addition to several test program, this facility includes stand-alone programs to automatically generate special-purpose xml files from an initial file describing an instrument.
See release.notes for recent activity.
# $Header: /nfs/slac/g/glast/ground/cvs/xmlUtil/cmt/requirements,v 1.16 2002/09/13 23:58:42 jrb Exp $
package xmlUtil
version v2r8p3
use facilities v2r*
use xml v4r*
use XMLEXT v2r*
use GlastPolicy v4r*
use xmlGeoDbs v1r*
include_dirs "${XMLUTILROOT}"
path_append LD_LIBRARY_PATH "${xmlUtilDir}"
apply_pattern package_linkopts
apply_pattern package_headers
apply_pattern package_xmlfiles
library xmlUtil ${xmlUtil_headers} \
Arith.cxx \
Substitute.cxx \
Constants.cxx \
Source.cxx \
id/DictConstraints.cxx \
id/DictField.cxx \
id/DictFieldMan.cxx \
id/DictNode.cxx \
id/DictValidVisitor.cxx \
id/IdConversion.cxx \
id/IdConverter.cxx \
id/IdDict.cxx \
id/IdDictMan.cxx \
id/Identifier.cxx \
id/IdOpCompress.cxx \
id/IdOpTruncate.cxx \
id/IdOperation.cxx \
id/NamedId.cxx \
id/IdKey.cxx \
docMan/GDDDocMan.cxx \
${xmlUtil_xmlfiles}
private
apply_pattern package_shlibflags
application eval eval.cxx
application forProg makeXmlForProg.cxx
application forDoc makeXmlForDoc.cxx
application testId id/testId.cxx
application testDocMan docMan/*.cxx
application testKey id/testKey.cxx id/IdKey.cxx
1.2.13.1 written by Dimitri van Heesch,
© 1997-2001