Skip to content

Commit

Permalink
#57 support for StructureSpecificData message type
Browse files Browse the repository at this point in the history
  • Loading branch information
eblondel committed Jun 11, 2015
1 parent 66cc6e4 commit 48681dc
Show file tree
Hide file tree
Showing 12 changed files with 280 additions and 35 deletions.
8 changes: 5 additions & 3 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Package: rsdmx
Version: 0.4-7
Date: 2015-06-04
Date: 2015-06-11
Title: Tools for Reading SDMX Data and Metadata
Authors@R: c(
person("Emmanuel", "Blondel", role = c("aut", "cre"), email = "emmanuel.blondel1@gmail.com"),
Expand All @@ -20,13 +20,15 @@ Collate:
Class-SDMXSchema.R Class-SDMXType.R Class-SDMXStructureType.R
Class-SDMXHeader.R Class-SDMXFooterMessage.R Class-SDMXFooter.R
Class-SDMX.R Class-SDMXGenericData.R Class-SDMXCompactData.R Class-SDMXUtilityData.R
Class-SDMXMessageGroup.R Class-SDMXConcept.R Class-SDMXConceptScheme.R Class-SDMXConcepts.R
Class-SDMXStructureSpecificData.R Class-SDMXMessageGroup.R
Class-SDMXConcept.R Class-SDMXConceptScheme.R Class-SDMXConcepts.R
Class-SDMXCode.R Class-SDMXCodelist.R Class-SDMXCodelists.R Class-SDMXDimension.R
Class-SDMXTimeDimension.R Class-SDMXPrimaryMeasure.R Class-SDMXAttribute.R Class-SDMXComponents.R
Class-SDMXDataStructure.R Class-SDMXDataStructures.R Class-SDMXDataStructureDefinition.R
SDMXSchema-methods.R SDMXType-methods.R SDMXStructureType-methods.R SDMXHeader-methods.R
SDMXFooterMessage-methods.R SDMXFooter-methods.R SDMX-methods.R
SDMXGenericData-methods.R SDMXCompactData-methods.R SDMXUtilityData-methods.R SDMXMessageGroup-methods.R
SDMXGenericData-methods.R SDMXCompactData-methods.R SDMXUtilityData-methods.R
SDMXStructureSpecificData-methods.R SDMXMessageGroup-methods.R
SDMXConcept-methods.R SDMXConceptScheme-methods.R SDMXConcepts-methods.R SDMXCode-methods.R
SDMXCodelist-methods.R SDMXCodelists-methods.R SDMXDimension-methods.R SDMXTimeDimension-methods.R
SDMXPrimaryMeasure-methods.R SDMXAttribute-methods.R SDMXComponents-methods.R
Expand Down
3 changes: 3 additions & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ exportClasses(
SDMXGenericData,
SDMXCompactData,
SDMXUtilityData,
SDMXStructureSpecificData,
SDMXMessageGroup,
SDMXConcept,
SDMXConceptScheme,
Expand Down Expand Up @@ -42,6 +43,7 @@ export(
SDMXGenericData,
SDMXCompactData,
SDMXUtilityData,
SDMXStructureSpecificData,
SDMXMessageGroup,
SDMXConcept,
SDMXConceptScheme,
Expand Down Expand Up @@ -78,6 +80,7 @@ exportMethods(
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)
13 changes: 13 additions & 0 deletions R/Class-SDMXStructureSpecificData.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# E.Blondel - 2015/06/08
#=======================

#SDMX StructureSpecificData class
setClass("SDMXStructureSpecificData",
contains = "SDMX",
representation(),
prototype = list(),
validity = function(object){
#eventual validation rules
return(TRUE);
}
)
11 changes: 6 additions & 5 deletions R/Class-SDMXType.R
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@ setClass("SDMXType",
validity = function(object){
type <- getType(object);
valid <- switch(type,
"StructureType" = TRUE,
"GenericDataType" = TRUE,
"CompactDataType" = TRUE,
"UtilityDataType" = TRUE,
"MessageGroupType" = TRUE,
"StructureType" = TRUE,
"GenericDataType" = TRUE,
"CompactDataType" = TRUE,
"UtilityDataType" = TRUE,
"StructureSpecificDataType" = TRUE,
"MessageGroupType" = TRUE,
FALSE
);
if(valid == FALSE)
Expand Down
59 changes: 38 additions & 21 deletions R/SDMXCompactData-methods.R
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ SDMXCompactData <- function(xmlObj){
}

#methods
as.data.frame.SDMXCompactData <- function(x, ...){
as.data.frame.SDMXAllCompactData <- function(x, nsExpr, ...) {
xmlObj <- x@xmlObj;
dataset <- NULL

Expand All @@ -17,37 +17,49 @@ as.data.frame.SDMXCompactData <- function(x, ...){
VERSION.21 <- sdmxVersion == "2.1"

#namespace
hasAuthorityNS <- FALSE
nsDefs.df <- getNamespaces(x)
#in case no ns found, try to find specific namespace
ns <- findNamespace(nsDefs.df, nsExpr)

ns.df <- nsDefs.df[
regexpr("http://www.sdmx.org", nsDefs.df$uri,
"match.length", ignore.case = TRUE) == -1
& regexpr("http://www.w3.org", nsDefs.df$uri,
"match.length", ignore.case = TRUE) == -1,]
ns <- ns.df$uri
hasAuthorityNS <- FALSE
if(length(ns) > 0) hasAuthorityNS <- TRUE
"match.length", ignore.case = TRUE) == -1,]
authorityNs <- ns.df
if(nrow(authorityNs) > 0){
hasAuthorityNS <- TRUE
}
if(nrow(authorityNs) > 1){
warning("More than one target dataset namespace found!")
authorityNs <- authorityNs[1L]
}

if(hasAuthorityNS){
seriesXML <- unlist(
lapply(ns,
function(nsUri){
serieNs <- nsDefs.df[nsDefs.df$uri == nsUri,]
out <- NULL
s <- try(getNodeSet(xmlObj, "//ns:Series", c(ns = serieNs$uri)))
if(class(s) != "try-error") out <- s
return(out)
}))

seriesXML <- getNodeSet(xmlObj, "//ns:Series", namespaces = c(ns = authorityNs$uri))
if(length(seriesXML) == 0){
seriesXML <- getNodeSet(xmlObj, "//ns:Series", namespaces = ns)
}
}else{
if(nrow(nsDefs.df) > 0){
serieNs <- nsDefs.df[1,]
seriesXML <- getNodeSet(xmlObj, "//nt:Series", c(nt = serieNs$uri))
}else{
stop("Unsupported CompactData parser for empty target XML namespace")
if(length(ns) > 0){
seriesXML <- getNodeSet(xmlObj, "//ns:Series", namespaces = ns)
}else{
if(nrow(nsDefs.df) > 0){
serieNs <- nsDefs.df[1,]
seriesXML <- getNodeSet(xmlObj, "//nt:Series", c(nt = serieNs$uri))
}else{
stop("Unsupported CompactData parser for empty target XML namespace")
}
}
}

if(length(seriesXML) == 0){
seriesXML <- getNodeSet(xmlObj, "//Series")
}

seriesNb <- length(seriesXML)
if(seriesNb == 0) return(NULL);

#function to parse a Serie
parseSerie <- function(x){

Expand Down Expand Up @@ -107,5 +119,10 @@ as.data.frame.SDMXCompactData <- function(x, ...){
return(dataset)
}


as.data.frame.SDMXCompactData <- function(x, ...){
return(as.data.frame.SDMXAllCompactData(x, "compact"));
}

setAs("SDMXCompactData", "data.frame",
function(from) as.data.frame.SDMXCompactData(from));
3 changes: 3 additions & 0 deletions R/SDMXGenericData-methods.R
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ as.data.frame.SDMXGenericData <- function(x, ...){

#series
seriesXML <- getNodeSet(xmlObj, "//ns:Series", namespaces = ns)
if(length(seriesXML) == 0){
seriesXML <- getNodeSet(xmlObj, "//Series")
}
seriesNb <- length(seriesXML)
if(seriesNb == 0) return(NULL);

Expand Down
18 changes: 18 additions & 0 deletions R/SDMXStructureSpecificData-methods.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# E.Blondel - 2015/01/13
#=======================

SDMXStructureSpecificData <- function(xmlObj){
new("SDMXStructureSpecificData",
SDMX(xmlObj)
)
}

#methods
#=======

as.data.frame.SDMXStructureSpecificData <- function(x, ...){
return(as.data.frame.SDMXAllCompactData(x, "structurespecific"));
}

setAs("SDMXStructureSpecificData", "data.frame",
function(from) as.data.frame.SDMXStructureSpecificData(from));
11 changes: 6 additions & 5 deletions R/readSDMX.R
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,12 @@ readSDMX <- function(file, isURL = TRUE){

type <- SDMXType(xmlObj)@type
obj <- switch(type,
"StructureType" = getSDMXStructureObject(xmlObj),
"GenericDataType" = SDMXGenericData(xmlObj),
"CompactDataType" = SDMXCompactData(xmlObj),
"UtilityDataType" = SDMXUtilityData(xmlObj),
"MessageGroupType" = SDMXMessageGroup(xmlObj),
"StructureType" = getSDMXStructureObject(xmlObj),
"GenericDataType" = SDMXGenericData(xmlObj),
"CompactDataType" = SDMXCompactData(xmlObj),
"UtilityDataType" = SDMXUtilityData(xmlObj),
"StructureSpecificDataType" = SDMXStructureSpecificData(xmlObj),
"MessageGroupType" = SDMXMessageGroup(xmlObj),
NULL
)

Expand Down
142 changes: 142 additions & 0 deletions inst/extdata/SDMXStructureSpecificDataExample_2.1.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
<message:StructureSpecificData xmlns:message="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message"
xmlns:common="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/common"
xmlns:data="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/data/structurespecific"
xmlns:dsd="FMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=IMF:ECOFIN_DSD(1.0):ObsLevelDim:TIME_PERIOD ../../Esquemas/ECOFIN_DSD.xsd http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message ../../Esquemas/SDMXMessage.xsd">


<message:Header>
<message:ID>UEM.421</message:ID>
<message:Test>false</message:Test>
<message:Prepared>2015-06-11T15:00:05+02:00</message:Prepared>
<message:Sender id="ES1">
<common:Name xml:lang="ES">Instituto Nacional de Estadística</common:Name>
</message:Sender>
<message:Receiver id="1C"><common:Name xml:lang="ES">Fondo Monetario Internacional</common:Name>
</message:Receiver><common:Name>ECOFIN_DSD</common:Name>
<message:Structure structureID="ECOFIN_DSD" dimensionAtObservation="TIME_PERIOD" namespace="urn:sdmx:org.sdmx.infomodel.datastructure.TimeDimension=IMF:ECOFIN_DSD(1.0).TIME_PERIOD">
<common:Structure>
<Ref agencyID="IMF" id="ECOFIN_DSD"/>
</common:Structure>
</message:Structure>
<message:DataSetID>ECOFIN_DSD</message:DataSetID>

</message:Header>

<message:DataSet data:action="Replace" data:structureRef="ECOFIN_DSD" data:dataScope="DataStructure" xsi:type="dsd:DataSetType"> <Series DATA_DOMAIN="UEM" REF_AREA="ES" INDICATOR="LU_PE_NUM" COUNTERPART_AREA="_Z" FREQ="Q" UNIT_MULT="3" TIME_FORMAT="P3M" >
<Obs TIME_PERIOD="2002-Q1" OBS_VALUE="2152.8" OBS_STATUS="A" />
<Obs TIME_PERIOD="2002-Q2" OBS_VALUE="2103.3" OBS_STATUS="A" />
<Obs TIME_PERIOD="2002-Q3" OBS_VALUE="2196" OBS_STATUS="A" />
<Obs TIME_PERIOD="2002-Q4" OBS_VALUE="2232.4" OBS_STATUS="A" />
<Obs TIME_PERIOD="2003-Q1" OBS_VALUE="2328.5" OBS_STATUS="A" />
<Obs TIME_PERIOD="2003-Q2" OBS_VALUE="2216" OBS_STATUS="A" />
<Obs TIME_PERIOD="2003-Q3" OBS_VALUE="2247.5" OBS_STATUS="A" />
<Obs TIME_PERIOD="2003-Q4" OBS_VALUE="2276.7" OBS_STATUS="A" />
<Obs TIME_PERIOD="2004-Q1" OBS_VALUE="2309.8" OBS_STATUS="A" />
<Obs TIME_PERIOD="2004-Q2" OBS_VALUE="2247.6" OBS_STATUS="A" />
<Obs TIME_PERIOD="2004-Q3" OBS_VALUE="2199.8" OBS_STATUS="A" />
<Obs TIME_PERIOD="2004-Q4" OBS_VALUE="2176.9" OBS_STATUS="A" />
<Obs TIME_PERIOD="2005-Q1" OBS_VALUE="2121.3" OBS_STATUS="A" />
<Obs TIME_PERIOD="2005-Q2" OBS_VALUE="1969.1" OBS_STATUS="A" />
<Obs TIME_PERIOD="2005-Q3" OBS_VALUE="1783.5" OBS_STATUS="A" />
<Obs TIME_PERIOD="2005-Q4" OBS_VALUE="1860.3" OBS_STATUS="A" />
<Obs TIME_PERIOD="2006-Q1" OBS_VALUE="1942.8" OBS_STATUS="A" />
<Obs TIME_PERIOD="2006-Q2" OBS_VALUE="1834.4" OBS_STATUS="A" />
<Obs TIME_PERIOD="2006-Q3" OBS_VALUE="1766.9" OBS_STATUS="A" />
<Obs TIME_PERIOD="2006-Q4" OBS_VALUE="1819.4" OBS_STATUS="A" />
<Obs TIME_PERIOD="2007-Q1" OBS_VALUE="1863.2" OBS_STATUS="A" />
<Obs TIME_PERIOD="2007-Q2" OBS_VALUE="1773.2" OBS_STATUS="A" />
<Obs TIME_PERIOD="2007-Q3" OBS_VALUE="1806.2" OBS_STATUS="A" />
<Obs TIME_PERIOD="2007-Q4" OBS_VALUE="1942" OBS_STATUS="A" />
<Obs TIME_PERIOD="2008-Q1" OBS_VALUE="2190.5" OBS_STATUS="A" />
<Obs TIME_PERIOD="2008-Q2" OBS_VALUE="2385.7" OBS_STATUS="A" />
<Obs TIME_PERIOD="2008-Q3" OBS_VALUE="2600.7" OBS_STATUS="A" />
<Obs TIME_PERIOD="2008-Q4" OBS_VALUE="3206.8" OBS_STATUS="A" />
<Obs TIME_PERIOD="2009-Q1" OBS_VALUE="4018.2" OBS_STATUS="A" />
<Obs TIME_PERIOD="2009-Q2" OBS_VALUE="4139.6" OBS_STATUS="A" />
<Obs TIME_PERIOD="2009-Q3" OBS_VALUE="4121.4" OBS_STATUS="A" />
<Obs TIME_PERIOD="2009-Q4" OBS_VALUE="4335" OBS_STATUS="A" />
<Obs TIME_PERIOD="2010-Q1" OBS_VALUE="4617.7" OBS_STATUS="A" />
<Obs TIME_PERIOD="2010-Q2" OBS_VALUE="4655.3" OBS_STATUS="A" />
<Obs TIME_PERIOD="2010-Q3" OBS_VALUE="4585.4" OBS_STATUS="A" />
<Obs TIME_PERIOD="2010-Q4" OBS_VALUE="4702.2" OBS_STATUS="A" />
<Obs TIME_PERIOD="2011-Q1" OBS_VALUE="4921.2" OBS_STATUS="A" />
<Obs TIME_PERIOD="2011-Q2" OBS_VALUE="4844.2" OBS_STATUS="A" />
<Obs TIME_PERIOD="2011-Q3" OBS_VALUE="4998" OBS_STATUS="A" />
<Obs TIME_PERIOD="2011-Q4" OBS_VALUE="5287.3" OBS_STATUS="A" />
<Obs TIME_PERIOD="2012-Q1" OBS_VALUE="5667.9" OBS_STATUS="A" />
<Obs TIME_PERIOD="2012-Q2" OBS_VALUE="5731" OBS_STATUS="A" />
<Obs TIME_PERIOD="2012-Q3" OBS_VALUE="5824.2" OBS_STATUS="A" />
<Obs TIME_PERIOD="2012-Q4" OBS_VALUE="6021" OBS_STATUS="A" />
<Obs TIME_PERIOD="2013-Q1" OBS_VALUE="6278.2" OBS_STATUS="A" />
<Obs TIME_PERIOD="2013-Q2" OBS_VALUE="6047.3" OBS_STATUS="A" />
<Obs TIME_PERIOD="2013-Q3" OBS_VALUE="5943.4" OBS_STATUS="A" />
<Obs TIME_PERIOD="2013-Q4" OBS_VALUE="5935.6" OBS_STATUS="A" />
<Obs TIME_PERIOD="2014-Q1" OBS_VALUE="5933.3" OBS_STATUS="A" />
<Obs TIME_PERIOD="2014-Q2" OBS_VALUE="5622.9" OBS_STATUS="A" />
<Obs TIME_PERIOD="2014-Q3" OBS_VALUE="5427.7" OBS_STATUS="A" />
<Obs TIME_PERIOD="2014-Q4" OBS_VALUE="5457.7" OBS_STATUS="A" />
<Obs TIME_PERIOD="2015-Q1" OBS_VALUE="5444.6" OBS_STATUS="A" />
</Series>

<Series DATA_DOMAIN="UEM" REF_AREA="ES" INDICATOR="LUR_PE_NUM" COUNTERPART_AREA="_Z" FREQ="Q" UNIT_MULT="0" TIME_FORMAT="P3M" >
<Obs TIME_PERIOD="2002-Q1" OBS_VALUE="11.55" OBS_STATUS="A" />
<Obs TIME_PERIOD="2002-Q2" OBS_VALUE="11.15" OBS_STATUS="A" />
<Obs TIME_PERIOD="2002-Q3" OBS_VALUE="11.49" OBS_STATUS="A" />
<Obs TIME_PERIOD="2002-Q4" OBS_VALUE="11.61" OBS_STATUS="A" />
<Obs TIME_PERIOD="2003-Q1" OBS_VALUE="11.99" OBS_STATUS="A" />
<Obs TIME_PERIOD="2003-Q2" OBS_VALUE="11.28" OBS_STATUS="A" />
<Obs TIME_PERIOD="2003-Q3" OBS_VALUE="11.3" OBS_STATUS="A" />
<Obs TIME_PERIOD="2003-Q4" OBS_VALUE="11.37" OBS_STATUS="A" />
<Obs TIME_PERIOD="2004-Q1" OBS_VALUE="11.5" OBS_STATUS="A" />
<Obs TIME_PERIOD="2004-Q2" OBS_VALUE="11.09" OBS_STATUS="A" />
<Obs TIME_PERIOD="2004-Q3" OBS_VALUE="10.74" OBS_STATUS="A" />
<Obs TIME_PERIOD="2004-Q4" OBS_VALUE="10.53" OBS_STATUS="A" />
<Obs TIME_PERIOD="2005-Q1" OBS_VALUE="10.17" OBS_STATUS="A" />
<Obs TIME_PERIOD="2005-Q2" OBS_VALUE="9.32" OBS_STATUS="A" />
<Obs TIME_PERIOD="2005-Q3" OBS_VALUE="8.41" OBS_STATUS="A" />
<Obs TIME_PERIOD="2005-Q4" OBS_VALUE="8.71" OBS_STATUS="A" />
<Obs TIME_PERIOD="2006-Q1" OBS_VALUE="9.03" OBS_STATUS="A" />
<Obs TIME_PERIOD="2006-Q2" OBS_VALUE="8.44" OBS_STATUS="A" />
<Obs TIME_PERIOD="2006-Q3" OBS_VALUE="8.08" OBS_STATUS="A" />
<Obs TIME_PERIOD="2006-Q4" OBS_VALUE="8.26" OBS_STATUS="A" />
<Obs TIME_PERIOD="2007-Q1" OBS_VALUE="8.42" OBS_STATUS="A" />
<Obs TIME_PERIOD="2007-Q2" OBS_VALUE="7.93" OBS_STATUS="A" />
<Obs TIME_PERIOD="2007-Q3" OBS_VALUE="8.01" OBS_STATUS="A" />
<Obs TIME_PERIOD="2007-Q4" OBS_VALUE="8.57" OBS_STATUS="A" />
<Obs TIME_PERIOD="2008-Q1" OBS_VALUE="9.6" OBS_STATUS="A" />
<Obs TIME_PERIOD="2008-Q2" OBS_VALUE="10.36" OBS_STATUS="A" />
<Obs TIME_PERIOD="2008-Q3" OBS_VALUE="11.23" OBS_STATUS="A" />
<Obs TIME_PERIOD="2008-Q4" OBS_VALUE="13.79" OBS_STATUS="A" />
<Obs TIME_PERIOD="2009-Q1" OBS_VALUE="17.24" OBS_STATUS="A" />
<Obs TIME_PERIOD="2009-Q2" OBS_VALUE="17.77" OBS_STATUS="A" />
<Obs TIME_PERIOD="2009-Q3" OBS_VALUE="17.75" OBS_STATUS="A" />
<Obs TIME_PERIOD="2009-Q4" OBS_VALUE="18.66" OBS_STATUS="A" />
<Obs TIME_PERIOD="2010-Q1" OBS_VALUE="19.84" OBS_STATUS="A" />
<Obs TIME_PERIOD="2010-Q2" OBS_VALUE="19.89" OBS_STATUS="A" />
<Obs TIME_PERIOD="2010-Q3" OBS_VALUE="19.59" OBS_STATUS="A" />
<Obs TIME_PERIOD="2010-Q4" OBS_VALUE="20.11" OBS_STATUS="A" />
<Obs TIME_PERIOD="2011-Q1" OBS_VALUE="21.08" OBS_STATUS="A" />
<Obs TIME_PERIOD="2011-Q2" OBS_VALUE="20.64" OBS_STATUS="A" />
<Obs TIME_PERIOD="2011-Q3" OBS_VALUE="21.28" OBS_STATUS="A" />
<Obs TIME_PERIOD="2011-Q4" OBS_VALUE="22.56" OBS_STATUS="A" />
<Obs TIME_PERIOD="2012-Q1" OBS_VALUE="24.19" OBS_STATUS="A" />
<Obs TIME_PERIOD="2012-Q2" OBS_VALUE="24.4" OBS_STATUS="A" />
<Obs TIME_PERIOD="2012-Q3" OBS_VALUE="24.79" OBS_STATUS="A" />
<Obs TIME_PERIOD="2012-Q4" OBS_VALUE="25.77" OBS_STATUS="A" />
<Obs TIME_PERIOD="2013-Q1" OBS_VALUE="26.94" OBS_STATUS="A" />
<Obs TIME_PERIOD="2013-Q2" OBS_VALUE="26.06" OBS_STATUS="A" />
<Obs TIME_PERIOD="2013-Q3" OBS_VALUE="25.65" OBS_STATUS="A" />
<Obs TIME_PERIOD="2013-Q4" OBS_VALUE="25.73" OBS_STATUS="A" />
<Obs TIME_PERIOD="2014-Q1" OBS_VALUE="25.93" OBS_STATUS="A" />
<Obs TIME_PERIOD="2014-Q2" OBS_VALUE="24.47" OBS_STATUS="A" />
<Obs TIME_PERIOD="2014-Q3" OBS_VALUE="23.67" OBS_STATUS="A" />
<Obs TIME_PERIOD="2014-Q4" OBS_VALUE="23.7" OBS_STATUS="A" />
<Obs TIME_PERIOD="2015-Q1" OBS_VALUE="23.78" OBS_STATUS="A" />
</Series>

</message:DataSet>


</message:StructureSpecificData>
23 changes: 23 additions & 0 deletions man/SDMXStructureSpecificData-class.Rd
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
\name{SDMXStructureSpecificData-class}
\docType{class}
\alias{SDMXStructureSpecificData-class}
\alias{SDMXStructureSpecificData}
\alias{SDMXStructureSpecificData-method}


\title{Class "SDMXStructureSpecificData"}
\description{ A basic class to handle a SDMX-ML structure specific data set}
\section{Objects from the Class}{are never to be generated; will be used by the \link{readSDMX} main parser function}


\usage{
SDMXStructureSpecificData(xmlObj)
}

\arguments{
\item{xmlObj}{an object of class "XMLInternalDocument"}
}

\author{ Emmanuel Blondel, \email{emmanuel.blondel1@gmail.com}}

\keyword{classes}
2 changes: 1 addition & 1 deletion man/rsdmx-package.Rd
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Package: \tab rsdmx\cr
Type: \tab Package\cr
Version
: \tab 0.4-7\cr
Date: \tab 2015-06-04\cr
Date: \tab 2015-06-11\cr
License: \tab GPL(>=2.0)\cr
LazyLoad: \tab yes\cr
}
Expand Down
Loading

0 comments on commit 48681dc

Please sign in to comment.