import("methods")
import("XML")
import("RCurl")
importFrom("plyr", "rbind.fill")
importFrom("utils", "packageVersion")

exportClasses(
  SDMX,
  SDMXSchema,
  SDMXHeader,
  SDMXFooterMessage,
  SDMXFooter,
  SDMXType,
  SDMXStructureType,
  SDMXGenericData,
  SDMXCompactData,
  SDMXUtilityData,
  SDMXStructureSpecificData,
  SDMXMessageGroup,
  SDMXConcept,
  SDMXConceptScheme,
  SDMXConcepts,
  SDMXCode,
  SDMXCodelist,
  SDMXCodelists,
  SDMXDimension,
  SDMXTimeDimension,
  SDMXPrimaryMeasure,
  SDMXAttribute,
  SDMXComponents,
  SDMXDataStructure,
  SDMXDataStructures,
  SDMXDataStructureDefinition
)

export(
  SDMX,
  SDMXSchema,
  SDMXHeader,
  SDMXFooterMessage,
  SDMXFooter,
  SDMXType,
  SDMXStructureType,
  SDMXGenericData,
  SDMXCompactData,
  SDMXUtilityData,
  SDMXStructureSpecificData,
  SDMXMessageGroup,
  SDMXConcept,
  SDMXConceptScheme,
  SDMXConcepts,
  SDMXCode,
  SDMXCodelist,
  SDMXCodelists,
  SDMXDimension,
  SDMXTimeDimension,
  SDMXPrimaryMeasure,
  SDMXAttribute,
  SDMXComponents,
  SDMXDataStructure,
  SDMXDataStructures,
  SDMXDataStructureDefinition,
  findNamespace,
  isSoapRequestEnvelope,
  getSoapRequestResult,
	readSDMX
)

exportMethods(
	getSDMXType,
	getType,
  getStructureType,
	getSDMXSchema,
	getVersion,
	getSDMXHeader,
  getSDMXFooter,
  getNamespaces,
	as.XML
)

S3method(as.data.frame, SDMXGenericData)
S3method(as.data.frame, SDMXCompactData)
S3method(as.data.frame, SDMXUtilityData)
S3method(as.data.frame, SDMXStructureSpecificData)
S3method(as.data.frame, SDMXMessageGroup)
S3method(as.data.frame, SDMXConcepts)
S3method(as.data.frame, SDMXCodelists)