Differences From Artifact [d8f4c394d4]:
- File src/OFXMLParser.h — part of check-in [889f63ab01] at 2010-06-06 23:31:32 on branch trunk — Fix a warning with Apple GCC 4.0.1. (user: js, size: 5282) [annotate] [blame] [check-ins using]
To Artifact [9635aaee4f]:
- File
src/OFXMLParser.h
— part of check-in
[9d79d92d9a]
at
2010-06-12 19:47:43
on branch trunk
— Several OFXMLParser improvements. See details.
* found* renamed to didFind*.
* Support for parsing CDATA.
* Handle comments with - correctly.
* Don't strip leading and trailing whitespaces in comments.
* Rename a few states for more clarity.
* More OFXMLParser tests. (user: js, size: 5736) [annotate] [blame] [check-ins using]
| ︙ | ︙ | |||
48 49 50 51 52 53 54 55 56 57 58 59 | - (void)xmlParser: (OFXMLParser*)parser didEndTagWithName: (OFString*)name prefix: (OFString*)prefix namespace: (OFString*)ns; /** * This callback is called when the XML parser found a string. * * \param parser The parser which found a string * \param string The string the XML parser found */ - (void)xmlParser: (OFXMLParser*)parser | > > > | | | | | | 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
- (void)xmlParser: (OFXMLParser*)parser
didEndTagWithName: (OFString*)name
prefix: (OFString*)prefix
namespace: (OFString*)ns;
/**
* This callback is called when the XML parser found a string.
*
* In case there are comments or CDATA, it is possible that this callback is
* called multiple times in a row.
*
* \param parser The parser which found a string
* \param string The string the XML parser found
*/
- (void)xmlParser: (OFXMLParser*)parser
didFindString: (OFString*)string;
/**
* This callback is called when the XML parser found a comment.
*
* \param parser The parser which found a comment
* \param comment The comment the XML parser found
*/
- (void)xmlParser: (OFXMLParser*)parser
didFindComment: (OFString*)comment;
/**
* This callback is called when the XML parser found an entity it doesn't know.
* The callback is supposed to return a substitution for the entity or nil if
* it is not known to the callback as well, in which case an exception will be
* risen.
*
* \param parser The parser which found an unknown entity
* \param entity The name of the entity the XML parser didn't know
* \return A substitution for the entity or nil
*/
- (OFString*)xmlParser: (OFXMLParser*)parser
didFindUnknownEntityNamed: (OFString*)entity;
@end
/**
* \brief A protocol that needs to be implemented by delegates for
* -[stringByXMLUnescapingWithHandler:].
*/
@protocol OFXMLUnescapingDelegate
/**
* This callback is called when an unknown entity was found while trying to
* unescape XML. The callback is supposed to return a substitution for the
* entity or nil if it is unknown to the callback as well, in which case an
* exception will be thrown.
*
* \param entity The name of the entity that is unknown
* \return A substitution for the entity or nil
*/
- (OFString*)didFindUnknownEntityNamed: (OFString*)entity;
@end
/**
* \brief An event-based XML parser.
*
* OFXMLParser is an event-based XML parser which calls the delegate's callbacks
* as soon asit finds something, thus suitable for streams as well.
|
| ︙ | ︙ | |||
115 116 117 118 119 120 121 | OF_XMLPARSER_IN_CLOSE_TAG_NAME, OF_XMLPARSER_IN_TAG, OF_XMLPARSER_IN_ATTR_NAME, OF_XMLPARSER_EXPECT_DELIM, OF_XMLPARSER_IN_ATTR_VALUE, OF_XMLPARSER_EXPECT_CLOSE, OF_XMLPARSER_EXPECT_SPACE_OR_CLOSE, | > > > > > > > | | > | | > > | 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | OF_XMLPARSER_IN_CLOSE_TAG_NAME, OF_XMLPARSER_IN_TAG, OF_XMLPARSER_IN_ATTR_NAME, OF_XMLPARSER_EXPECT_DELIM, OF_XMLPARSER_IN_ATTR_VALUE, OF_XMLPARSER_EXPECT_CLOSE, OF_XMLPARSER_EXPECT_SPACE_OR_CLOSE, OF_XMLPARSER_IN_CDATA_OR_COMMENT, OF_XMLPARSER_IN_CDATA_OPENING_1, OF_XMLPARSER_IN_CDATA_OPENING_2, OF_XMLPARSER_IN_CDATA_OPENING_3, OF_XMLPARSER_IN_CDATA_OPENING_4, OF_XMLPARSER_IN_CDATA_OPENING_5, OF_XMLPARSER_IN_CDATA_OPENING_6, OF_XMLPARSER_IN_CDATA_1, OF_XMLPARSER_IN_CDATA_2, OF_XMLPARSER_IN_CDATA_3, OF_XMLPARSER_IN_COMMENT_OPENING, OF_XMLPARSER_IN_COMMENT_1, OF_XMLPARSER_IN_COMMENT_2, OF_XMLPARSER_IN_COMMENT_3 } state; OFMutableString *cache; OFString *name; OFString *prefix; OFMutableArray *namespaces; OFMutableArray *attrs; OFString *attrName; |
| ︙ | ︙ |