1 //------------------------------------------------------------------------------
2 // <copyright file="XslVisitor.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 // <owner current="true" primary="true">Microsoft</owner>
6 //------------------------------------------------------------------------------
8 namespace System
.Xml
.Xsl
.Xslt
{
10 internal abstract class XslVisitor
<T
> {
11 protected virtual T
Visit(XslNode node
) {
12 switch (node
.NodeType
) {
13 case XslNodeType
.ApplyImports
: return VisitApplyImports ((XslNode
) node
);
14 case XslNodeType
.ApplyTemplates
: return VisitApplyTemplates ((XslNode
) node
);
15 case XslNodeType
.Attribute
: return VisitAttribute ((NodeCtor
) node
);
16 case XslNodeType
.AttributeSet
: return VisitAttributeSet ((AttributeSet
)node
);
17 case XslNodeType
.CallTemplate
: return VisitCallTemplate ((XslNode
) node
);
18 case XslNodeType
.Choose
: return VisitChoose ((XslNode
) node
);
19 case XslNodeType
.Comment
: return VisitComment ((XslNode
) node
);
20 case XslNodeType
.Copy
: return VisitCopy ((XslNode
) node
);
21 case XslNodeType
.CopyOf
: return VisitCopyOf ((XslNode
) node
);
22 case XslNodeType
.Element
: return VisitElement ((NodeCtor
) node
);
23 case XslNodeType
.Error
: return VisitError ((XslNode
) node
);
24 case XslNodeType
.ForEach
: return VisitForEach ((XslNode
) node
);
25 case XslNodeType
.If
: return VisitIf ((XslNode
) node
);
26 case XslNodeType
.Key
: return VisitKey ((Key
) node
);
27 case XslNodeType
.List
: return VisitList ((XslNode
) node
);
28 case XslNodeType
.LiteralAttribute
: return VisitLiteralAttribute((XslNode
) node
);
29 case XslNodeType
.LiteralElement
: return VisitLiteralElement ((XslNode
) node
);
30 case XslNodeType
.Message
: return VisitMessage ((XslNode
) node
);
31 case XslNodeType
.Nop
: return VisitNop ((XslNode
) node
);
32 case XslNodeType
.Number
: return VisitNumber ((Number
) node
);
33 case XslNodeType
.Otherwise
: return VisitOtherwise ((XslNode
) node
);
34 case XslNodeType
.Param
: return VisitParam ((VarPar
) node
);
35 case XslNodeType
.PI
: return VisitPI ((XslNode
) node
);
36 case XslNodeType
.Sort
: return VisitSort ((Sort
) node
);
37 case XslNodeType
.Template
: return VisitTemplate ((Template
) node
);
38 case XslNodeType
.Text
: return VisitText ((Text
) node
);
39 case XslNodeType
.UseAttributeSet
: return VisitUseAttributeSet ((XslNode
) node
);
40 case XslNodeType
.ValueOf
: return VisitValueOf ((XslNode
) node
);
41 case XslNodeType
.ValueOfDoe
: return VisitValueOfDoe ((XslNode
) node
);
42 case XslNodeType
.Variable
: return VisitVariable ((VarPar
) node
);
43 case XslNodeType
.WithParam
: return VisitWithParam ((VarPar
) node
);
44 default : return VisitUnknown ((XslNode
) node
);
48 protected virtual T
VisitApplyImports (XslNode node
) { return VisitChildren( node ); }
49 protected virtual T
VisitApplyTemplates (XslNode node
) { return VisitChildren( node ); }
50 protected virtual T
VisitAttribute (NodeCtor node
) { return VisitChildren( node ); }
51 protected virtual T
VisitAttributeSet (AttributeSet node
) { return VisitChildren( node ); }
52 protected virtual T
VisitCallTemplate (XslNode node
) { return VisitChildren( node ); }
53 protected virtual T
VisitChoose (XslNode node
) { return VisitChildren( node ); }
54 protected virtual T
VisitComment (XslNode node
) { return VisitChildren( node ); }
55 protected virtual T
VisitCopy (XslNode node
) { return VisitChildren( node ); }
56 protected virtual T
VisitCopyOf (XslNode node
) { return VisitChildren( node ); }
57 protected virtual T
VisitElement (NodeCtor node
) { return VisitChildren( node ); }
58 protected virtual T
VisitError (XslNode node
) { return VisitChildren( node ); }
59 protected virtual T
VisitForEach (XslNode node
) { return VisitChildren( node ); }
60 protected virtual T
VisitIf (XslNode node
) { return VisitChildren( node ); }
61 protected virtual T
VisitKey (Key node
) { return VisitChildren( node ); }
62 protected virtual T
VisitList (XslNode node
) { return VisitChildren( node ); }
63 protected virtual T
VisitLiteralAttribute(XslNode node
) { return VisitChildren( node ); }
64 protected virtual T
VisitLiteralElement (XslNode node
) { return VisitChildren( node ); }
65 protected virtual T
VisitMessage (XslNode node
) { return VisitChildren( node ); }
66 protected virtual T
VisitNop (XslNode node
) { return VisitChildren( node ); }
67 protected virtual T
VisitNumber (Number node
) { return VisitChildren( node ); }
68 protected virtual T
VisitOtherwise (XslNode node
) { return VisitChildren( node ); }
69 protected virtual T
VisitParam (VarPar node
) { return VisitChildren( node ); }
70 protected virtual T
VisitPI (XslNode node
) { return VisitChildren( node ); }
71 protected virtual T
VisitSort (Sort node
) { return VisitChildren( node ); }
72 protected virtual T
VisitTemplate (Template node
) { return VisitChildren( node ); }
73 protected virtual T
VisitText (Text node
) { return VisitChildren( node ); }
74 protected virtual T
VisitUseAttributeSet (XslNode node
) { return VisitChildren( node ); }
75 protected virtual T
VisitValueOf (XslNode node
) { return VisitChildren( node ); }
76 protected virtual T
VisitValueOfDoe (XslNode node
) { return VisitChildren( node ); }
77 protected virtual T
VisitVariable (VarPar node
) { return VisitChildren( node ); }
78 protected virtual T
VisitWithParam (VarPar node
) { return VisitChildren( node ); }
79 protected virtual T
VisitUnknown (XslNode node
) { return VisitChildren( node ); }
81 protected virtual T
VisitChildren(XslNode node
) {
82 foreach (XslNode child
in node
.Content
) {