File: SDMXAttribute-methods.R

package info (click to toggle)
r-cran-rsdmx 1%3A0.6%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,000 kB
  • sloc: makefile: 2
file content (163 lines) | stat: -rw-r--r-- 5,797 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#' @name SDMXAttribute
#' @rdname SDMXAttribute
#' @aliases SDMXAttribute,SDMXAttribute-method
#' 
#' @usage
#' SDMXAttribute(xmlObj, namespaces)
#' 
#' @param xmlObj object of class "XMLInternalDocument derived from XML package
#' @param namespaces object of class "data.frame" given the list of namespace URIs
#' 
#' @return an object of class "SDMXAttribute"
#' 
#' @seealso \link{readSDMX}
#'
SDMXAttribute <- function(xmlObj, namespaces){
  
  messageNs <- findNamespace(namespaces, "message")
  strNs <- findNamespace(namespaces, "structure")
  
  sdmxVersion <- version.SDMXSchema(xmlDoc(xmlObj), namespaces)
  VERSION.21 <- sdmxVersion == "2.1"
  
  #attributes
  #=========
  conceptRef = xmlGetAttr(xmlObj, "conceptRef")
  if(is.null(conceptRef)) conceptRef <- as.character(NA)
  
  conceptVersion = xmlGetAttr(xmlObj, "conceptVersion")
  if(is.null(conceptVersion)) conceptVersion <- as.character(NA)
  
  conceptAgency = xmlGetAttr(xmlObj, "conceptAgency")
  if(is.null(conceptAgency)) conceptAgency <- as.character(NA)
  
  conceptSchemeRef = xmlGetAttr(xmlObj, "conceptSchemeRef")
  if(is.null(conceptSchemeRef)) conceptSchemeRef <- as.character(NA)
  
  conceptSchemeAgency = xmlGetAttr(xmlObj, "conceptSchemeAgency")
  if(is.null(conceptSchemeAgency)) conceptSchemeAgency <- as.character(NA)
  
  codelist = xmlGetAttr(xmlObj, "codelist")
  if(is.null(codelist)) codelist <- as.character(NA)
  
  codelistVersion = xmlGetAttr(xmlObj, "codelistVersion")
  if(is.null(codelistVersion)) codelistVersion <- as.character(NA)
  
  codelistAgency = xmlGetAttr(xmlObj, "codelistAgency")
  if(is.null(codelistAgency)) codelistAgency <- as.character(NA)
  
  attachmentLevel = xmlGetAttr(xmlObj, "attachmentLevel")
  if(is.null(attachmentLevel)) attachmentLevel <- as.character(NA)
  
  assignmentStatus = xmlGetAttr(xmlObj, "assignmentStatus")
  if(is.null(assignmentStatus)) assignmentStatus <- as.character(NA)
  
  isTimeFormat = xmlGetAttr(xmlObj, "isTimeFormat")
  if(is.null(isTimeFormat)){
    isTimeFormat <- FALSE
  }else{
    isTimeFormat <- as.logical(isTimeFormat)
  }

  crossSectionalAttachDataset = xmlGetAttr(xmlObj, "crossSectionalAttachDataset")
  if(is.null(crossSectionalAttachDataset)){
    crossSectionalAttachDataset <- NA
  }else{
    crossSectionalAttachDataset <- as.logical(crossSectionalAttachDataset)
  }
  
  crossSectionalAttachGroup = xmlGetAttr(xmlObj, "crossSectionalAttachGroup")
  if(is.null(crossSectionalAttachGroup)){
    crossSectionalAttachGroup <- NA
  }else{
    crossSectionalAttachGroup <- as.logical(crossSectionalAttachGroup)
  }
  
  crossSectionalAttachSection = xmlGetAttr(xmlObj, "crossSectionalAttachSection")
  if(is.null(crossSectionalAttachSection)){
    crossSectionalAttachSection <- NA
  }else{
    crossSectionalAttachSection <- as.logical(crossSectionalAttachSection)
  }
  
  crossSectionalAttachObservation = xmlGetAttr(xmlObj,
                                               "crossSectionalAttachObservation")
  if(is.null(crossSectionalAttachObservation)){
    crossSectionalAttachObservation <- NA
  }else{
    crossSectionalAttachObservation <- as.logical(crossSectionalAttachObservation)
  }
  
  
  isEntityAttribute = xmlGetAttr(xmlObj, "isEntityAttribute")
  if(is.null(isEntityAttribute)){
    isEntityAttribute <- FALSE
  }else{
    isEntityAttribute <- as.logical(isEntityAttribute)
  }
  
  isNonObservationTimeAttribute = xmlGetAttr(xmlObj,
                                             "isNonObservationTimeAttribute")
  if(is.null(isNonObservationTimeAttribute)){
    isNonObservationTimeAttribute <- FALSE
  }else{
    isNonObservationTimeAttribute <- as.logical(isNonObservationTimeAttribute)
  }
  
  isCountAttribute = xmlGetAttr(xmlObj, "isCountAttribute")
  if(is.null(isCountAttribute)){
    isCountAttribute <- FALSE
  }else{
    isCountAttribute <- as.logical(isCountAttribute)
  }
  
  isFrequencyAttribute = xmlGetAttr(xmlObj, "isFrequencyAttribute")
  if(is.null(isFrequencyAttribute)){
    isFrequencyAttribute <- FALSE
  }else{
    isFrequencyAttribute <- as.logical(isFrequencyAttribute)
  }
  
  isIdentityAttribute = xmlGetAttr(xmlObj, "isIdentityAttribute")
  if(is.null(isIdentityAttribute)){
    isIdentityAttribute <- FALSE
  }else{
    isIdentityAttribute <- as.logical(isIdentityAttribute)
  }
  
  
  #elements
  #========
  #TextFormat TODO
  
  #instantiate the object
  obj<- new("SDMXAttribute",
            
            #attributes
            conceptRef = conceptRef,
            conceptVersion = conceptVersion,
            conceptAgency = conceptAgency,
            conceptSchemeRef = conceptSchemeRef,
            conceptSchemeAgency = conceptSchemeAgency,
            codelist = codelist,
            codelistVersion = codelistVersion,
            codelistAgency = codelistAgency,
            attachmentLevel = attachmentLevel,
            assignmentStatus = assignmentStatus,
            isTimeFormat = isTimeFormat,
            crossSectionalAttachDataset = crossSectionalAttachDataset,
            crossSectionalAttachGroup = crossSectionalAttachGroup,
            crossSectionalAttachSection = crossSectionalAttachSection,
            crossSectionalAttachObservation = crossSectionalAttachObservation,
            isEntityAttribute = isEntityAttribute,
            isNonObservationTimeAttribute = isNonObservationTimeAttribute,
            isCountAttribute = isCountAttribute,
            isFrequencyAttribute = isFrequencyAttribute,
            isIdentityAttribute = isIdentityAttribute
            
            #elements,
            #TextFormat
            #AttachmentGroup
            #AttachmentMeasure
  )
}