11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
+
|
* Alternatively, it may be distributed under the terms of the GNU General
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFObject.h"
#import "OFXMLParser.h"
@class OFMutableArray;
@class OFXMLElement;
@class OFXMLElementBuilder;
/**
* \brief A protocol that needs to be implemented by delegates for
|
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
+
+
+
+
+
+
+
+
+
+
-
+
|
* \param prefix The prefix of the close tag
* \param ns The namespace of the close tag
*/
- (void)elementBuilder: (OFXMLElementBuilder*)builder
didNotExpectCloseTag: (OFString*)name
withPrefix: (OFString*)prefix
namespace: (OFString*)ns;
/**
* This callback is called when the XML parser for the element builder found an
* unknown entity.
*
* \param entity The name of the entity
* \return The substitution for the entity
*/
- (OFString*)elementBuilder: (OFXMLElementBuilder*)builder
foundUnknownEntityNamed: (OFString*)entity;
@end
/**
* \brief A class implementing the OFXMLParserDelegate protocol that can build
* OFXMLElements from the document parsed by the OFXMLParser.
*
* It can also be used to build OFXMLElements from parts of the document by
* first parsing stuff using the OFXMLParser with another delegate and then
* setting the OFXMLElementBuilder as delegate for the parser.
*/
@interface OFXMLElementBuilder: OFObject
@interface OFXMLElementBuilder: OFObject <OFXMLParserDelegate>
{
OFMutableArray *stack;
id <OFXMLElementBuilderDelegate> delegate;
}
#ifdef OF_HAVE_PROPERTIES
@property (retain) id <OFXMLElementBuilderDelegate> delegate;
|