Xalan-C++ API Reference 1.12.0
ElemEmpty.hpp
Go to the documentation of this file.
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18#if !defined(XALAN_ELEMEMPTY_HEADER_GUARD)
19#define XALAN_ELEMEMPTY_HEADER_GUARD
20
21/**
22 * Simple empty elem to push on the stack when nothing
23 * else got pushed, so that pop() works correctly.
24 */
25
26// Base include file. Must be first.
27#include "XSLTDefinitions.hpp"
28
29
30
31// Base class header file.
33
34
35
36namespace XALAN_CPP_NAMESPACE {
37
38
39
41{
42public:
43
44 /**
45 * Construct an object corresponding to an empty element
46 *
47 * @param constructionContext context for construction of object
48 * @param stylesheetTree stylesheet containing element
49 * @param lineNumber line number in document
50 * @param columnNumber column number in document
51 * @param elementName The element name for which this instance is representing
52 */
58 const XalanDOMString* elementName = 0);
59
60 /**
61 * Construct an object corresponding to an empty element. This
62 * constructor is used for surrogate empty elements that do not
63 * need namespace contexts and Locator information, etc.
64 *
65 * @param constructionContext context for construction of object
66 * @param stylesheetTree stylesheet containing element
67 * @param elementName The element name for which this instance is representing
68 */
72 const XalanDOMString* elementName = 0);
73
74 virtual
76
77 // These methods are inherited from ElemTemplateElement ...
78
79 virtual const XalanDOMString&
81
82#if !defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
83 virtual const ElemTemplateElement*
85#else
86 virtual void
88#endif
89
90protected:
91
92 virtual bool
94
95private:
96
97 const XalanDOMString* const m_elementName;
98};
99
100
101
102}
103
104
105
106#endif // XALAN_ELEMEMPTY_HEADER_GUARD
#define XALAN_CPP_NAMESPACE
Xalan-C++ namespace, including major and minor version.
virtual const XalanDOMString & getElementName() const
Get a string for the name of the element.
ElemEmpty(StylesheetConstructionContext &constructionContext, Stylesheet &stylesheetTree, const XalanDOMString *elementName=0)
Construct an object corresponding to an empty element.
virtual bool childTypeAllowed(int xslToken) const
Given an xsl token type, determine whether or not a child of that type is allowed.
ElemEmpty(StylesheetConstructionContext &constructionContext, Stylesheet &stylesheetTree, XalanFileLoc lineNumber, XalanFileLoc columnNumber, const XalanDOMString *elementName=0)
Construct an object corresponding to an empty element.
virtual ~ElemEmpty()
virtual const ElemTemplateElement * startElement(StylesheetExecutionContext &executionContext) const
Completes "pre-processing" before any sub-elements are invoked (i.e.
This class represents the base stylesheet or an "import" stylesheet.