[Python-Dev] XSLT parser interface

Martin v. Loewis martin@mira.cs.tu-berlin.de
2001年1月28日 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);
 };
};

AltStyle によって変換されたページ (->オリジナル) /