1 2/* 3 * Copyright 2006 The Android Open Source Project 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 10#include "SkXMLParser.h" 11 12static char const* const gErrorStrings[] = { 13 "empty or missing file ", 14 "unknown element ", 15 "unknown attribute name ", 16 "error in attribute value ", 17 "duplicate ID ", 18 "unknown error " 19}; 20 21SkXMLParserError::SkXMLParserError() : fCode(kNoError), fLineNumber(-1), 22 fNativeCode(-1) 23{ 24 reset(); 25} 26 27SkXMLParserError::~SkXMLParserError() 28{ 29 // need a virtual destructor for our subclasses 30} 31 32void SkXMLParserError::getErrorString(SkString* str) const 33{ 34 SkASSERT(str); 35 SkString temp; 36 if (fCode != kNoError) { 37 if ((unsigned)fCode < SK_ARRAY_COUNT(gErrorStrings)) 38 temp.set(gErrorStrings[fCode - 1]); 39 temp.append(fNoun); 40 } else 41 SkXMLParser::GetNativeErrorString(fNativeCode, &temp); 42 str->append(temp); 43} 44 45void SkXMLParserError::reset() { 46 fCode = kNoError; 47 fLineNumber = -1; 48 fNativeCode = -1; 49} 50 51 52//////////////// 53 54SkXMLParser::SkXMLParser(SkXMLParserError* parserError) : fParser(NULL), fError(parserError) 55{ 56} 57 58SkXMLParser::~SkXMLParser() 59{ 60} 61 62bool SkXMLParser::startElement(const char elem[]) 63{ 64 return this->onStartElement(elem); 65} 66 67bool SkXMLParser::addAttribute(const char name[], const char value[]) 68{ 69 return this->onAddAttribute(name, value); 70} 71 72bool SkXMLParser::endElement(const char elem[]) 73{ 74 return this->onEndElement(elem); 75} 76 77bool SkXMLParser::text(const char text[], int len) 78{ 79 return this->onText(text, len); 80} 81 82//////////////////////////////////////////////////////////////////////////////// 83 84bool SkXMLParser::onStartElement(const char elem[]) {return false; } 85bool SkXMLParser::onAddAttribute(const char name[], const char value[]) {return false; } 86bool SkXMLParser::onEndElement(const char elem[]) { return false; } 87bool SkXMLParser::onText(const char text[], int len) {return false; } 88