00001 #ifndef _LINGUISTICDEFINITION_XMLLINGFEATURESFORMATTER_H_ 00002 #define _LINGUISTICDEFINITION_XMLLINGFEATURESFORMATTER_H_ 00003 00004 #include <string> 00005 #include <libxml/tree.h> 00006 #include <libxml/xpath.h> 00007 #include <libxml/xmlwriter.h> 00008 00009 #include "LingDef.h" 00010 #include "LingFeatures.h" 00011 #include "LingFeaturesFormatter.h" 00012 00013 namespace LinguisticDefinition { 00014 00018 class XmlLingFeaturesFormatter : public LingFeaturesFormatter { 00019 public: 00020 00024 XmlLingFeaturesFormatter(const LingDef &); 00025 00029 LingFeatures createLingFeatures(const std::string &xmlData); 00030 00034 LingFeatures createLingFeatures(xmlNodePtr); 00035 00039 bool populateLingFeatures(const std::string &xmlData, LingFeatures &); 00040 00044 bool populateLingFeatures(xmlNodePtr, LingFeatures &); 00045 00049 std::string output(const LingFeatures &) const; 00050 00054 void output(const LingFeatures &, std::ostream &) const; 00055 00059 void output(const LingFeatures &, xmlTextWriterPtr) const; 00060 00061 private: 00062 }; 00063 00064 } 00065 00066 #endif //_LINGUISTICDEFINITION_XMLLINGFEATURESFORMATTER_H_