00001 00002 // libXMLFileElement.h // 00004 00005 #ifndef LIBXMLFILEELEMENT_H 00006 #define LIBXMLFILEELEMENT_H 00007 00008 #include "X3DFileElement.h" 00009 00010 typedef unsigned char xmlChar; 00011 00012 namespace X3DTK { 00013 00014 class libXMLFileElementImplementation; 00015 00016 namespace X3D { 00017 struct _X3DParseState; 00018 typedef _X3DParseState X3DParseState; 00019 static void X3D::x3d_parser_start_element(X3DParseState *, const xmlChar *, const xmlChar **); 00020 } 00021 00023 00024 class libXMLFileElement : public X3DFileElement 00025 { 00026 //friend void X3D::x3d_parser_start_element(X3DParseState *state, const xmlChar *name, const xmlChar **attrs); 00027 friend void X3D::x3d_parser_start_element(X3DParseState *state, const xmlChar *, const xmlChar **); 00028 public: 00030 SFString getName() const; 00032 SFString getAttribute(int i) const; 00034 int getIndexAttribute(const SFString &attribute) const; 00035 00036 private: 00037 libXMLFileElementImplementation *impl; 00038 libXMLFileElement(const SFString &name, const void *const attributes); 00039 ~libXMLFileElement(); 00040 }; 00041 00042 } 00043 00044 #endif