@@ -32,16 +32,36 @@ @end @interface OFXMLParser: OFObject { OFObject *delegate; - int state; + enum { + OF_XMLPARSER_OUTSIDE_TAG, + OF_XMLPARSER_TAG_OPENED, + OF_XMLPARSER_IN_TAG_NAME, + 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 + } state; + OFString *cache; + OFString *name; + OFString *prefix; + OFString *ns; + OFDictionary *attrs; + OFString *attr_name; + char delim; } + xmlParser; - (id)delegate; - setDelegate: (OFObject *)delegate; +- parseBuffer: (const char*)buf + withSize: (size_t)size; @end @protocol OFXMLUnescapingDelegate - (OFString*)foundUnknownEntityNamed: (OFString*)entitiy; @end