[Python-Dev] XSLT parser interface
Martin v. Loewis
martin@mira.cs.tu-berlin.de
Sun, 28 Jan 2001 21:50:35 +0100
Based on my previous IDL interface for XPath parsers, I've defined an
API for a parser that parsers XSLT pattern expressions. It is an
extension to the XPath API, so I attach only the additional functions.
Any comments are appreciated.
Martin
module XPath{
// XSLT exprType values
const unsigned short PATTERN = 17;
const unsigned short LOCATION_PATTERN = 18;
const unsigned short RELATIVE_PATH_PATTERN = 19;
const unsigned short STEP_PATTERN = 20;
interface Pattern;
interface LocationPathPattern;
interface RelativePathPattern;
interface StepPattern;
interface PatternFactory:ExprFactory{
Pattern createPattern(in LocationPathPattern first);
// idkey may be null, represents IdKeyPattern
// if parent is true, it is '/', else '//'
// rel may be null
LocationPathPattern createLocationPathPattern(in FunctionCall idkey,
boolean parent,
in RelativePathPattern rel);
// if parent is true, it is /, else //
RelativePathPattern createRelativePathPattern(in RelativePathPattern rel,
boolean parent,
in StepPattern step);
StepPattern createStepPattern(in AxisSpecifier axis,
in NodeTest test,
in PredicateList predicates);
};
typedef sequence<LocationPathPattern> LocationPathPatterns;
interface Pattern:Expr{
readonly attribute LocationPathPatterns patterns;
void append(in LocationPathPattern pattern);
};
interface LocationPathPattern:Expr{
readonly attribute FunctionCall idkey;
readonly attribute boolean parent;
readonly attribute RelativePathPattern relative_pattern;
};
interface RelativePathPattern:Expr{
readonly attribute RelativePathPattern relative;
readonly attribute boolean parent;
readonly attribute StepPattern step;
};
interface StepPattern:Expr{
readonly attribute AxisSpecifier axis;
readonly attribute NodeTest test;
readonly attribute PredicateList predicates;
};
interface XSLTParser:Parser{
Pattern parsePattern(in DOMString pattern);
};
};