XML Schema Outline -- Version 2.1
* == ELEMENT IS OPTIONAL & REPEATABLE
+ == ELEMENT IS MANDATORY & REPEATABLE
? == ELEMENT IS OPTIONAL & NON-REPEATABLE
== ELEMENT IS MANDATORY & NON-REPEATABLE
0.0 codeBook -> Instance
(ATT == ID, ->Instance@ID (priority 2)
xml-lang,
source,
version)
|----1.0 docDscr* ->NA
(ATT == ID, -> Instance@ID (priority 3)
xml-lang, -> -> NA
source ->NA)
|----1.1 citation? -> Instance: Citation
(ATT == ID, -> NA
xml-lang, -> NA
source, -> NA
MARCURI) -> NA
| |
| |----1.1.1 titlStmt -> NA
(ATT == ID, -> NA
xml-lang, -> NA
source) -> NA
| | |
| | |----1.1.1.1 titl -> Instance: Citation: Title (M)
(ATT == ID, -> NA
xml-lang, ->Title@xml:lang
source) -> NA
| | |
| | +----1.1.1.5 IDNo* -> Instance@ID (priority 1)
USE NCNAME FORMAT, RECOMMENDED: Instance_(IDno)
(ATT == ID, ->NA
xml-lang, ->NA
source, -> NA
agency, -> NA: -Archive is not available for Instance (only StudyUnit), and..
-Instance@agency is NCNAME and V2 agency is CDATA
level) -> NA
| |
| |----1.1.3 prodStmt? -> NA
(ATT == ID ->NA,
xml-lang, ->NA
source ->NA)
| | |
| | |----1.1.3.1 producer* -> Instance: Citation: Publisher
(ATT == ID, -> NA
xml-lang, ->Publisher@xml:lang
source, -> NA
abbr, -> NA because Instance does not have Archive:(Organizations)
affiliation, -> same as above (cannot "borrow" from Study unit bec.
an Instance may have multiple studies)
role) ->same as above (an Instance may have multiple studies)
| | |
| | |----1.1.3.3 prodDate* -> Instance:Citation:PublicationDate:HistoricalDate (is string -ok)
(ATT == ID, -> NA
xml-lang, -> NA
source, -> NA
date) -> Instance:Citation:PublicationDate:SimpleDate (M) is ISO 8601
|---- |---1.1.6 verStmt* -> NA
(ATT == ID, -> NA
xml-lang, -> NA
source) -> NA
| | |
| | |----1.1.6.1 version? -> Instance@version (map only digit part of statement (PCDATA IN DDI2)
(ATT == ID, -> NA
xml-lang, -> NA
source, -> NA
date, ->Instance@VersionDate
type) ->Instance:VersionRationale
| | |
| | |----1.1.6.2 verResp? ->Instance:VersionResponsibility (ok - is string)
(ATT == ID, -> NA
xml-lang, -> NA
source, -> NA
affiliation) ->NA because no Archive module in Instance.
Option: attach content of DDI 2 attribute to name in Version
Responsibility
|----2.0 stdyDscr+ -> StudyUnit; Abstract and Purpose are (M); enter with content N/A
UniverseReference:Id is (M) enter with content NA (assuming no univ. avail. in 2.0)
(ATT == ID, -> StudyUnit@ID !(IF IDNo NOT AVAIL IN 2.0; otherwise, NA)!
xml-lang, -> NA
source, -> NA
access) -> NA
|
|----2.1 citation+ ->StudyUnit:Citation
(ATT == ID, -> NA
xml-lang, -> NA
source, -> NA
MARCURI) -> NA
| |
| |----2.1.1 titlStmt ->NA
(ATT == ID, ->NA
xml-lang, ->NA
source) ->NA
| | |
| | |----2.1.1.1 titl ->StudyUnit:Citation:Title
(ATT == ID, -> NA
xml-lang, ->Title@xml:lang
source) -> NA
| | +----2.1.1.5 IDNo* ->StudyUnit@ID (OR USE stdyDscr ID if this one not avail.)
USE NCNAME FORMAT, RECOMMENDED: StudyUnit_(IDno)
(ATT == ID, -> NA
xml-lang, -> NA
source, -> NA
agency, ->Archive:OrgScheme:Org:Name, assign ID, and enter in StudyUnit@agency
and ArchiveSpecific: ArchiveOrgRef(M)
-- PROBLEM: ENTERING ALL RESPONSIBLE AGENCIES
IN ORGANIZATIONS SCHEME RESULTS IN REDUNDANT
ENTRIES - SAME NAME MAY BE PRESENT IN DDI 2.0 BUT IN 3.0
WOULD BECOME NEW ENTRY IN ORGANIZATIONS.--
Note: This will be true of categories, concepts, universes, etc.
A mapping system would be needed to check for this or the redundancies
need to be cleaned up after the conversion.
level ->NA)
| |
| |----2.1.2 rspStmt? ->NA
(ATT == ID, ->NA
xml-lang, ->NA
source ->NA)
| | |
| | |----2.1.2.1 AuthEnty* ->StudyUnit:Citation:Creator
(ATT == ID, ->NA
xml-lang, Creator@xml:lang
source, ->NA
affiliation) Creator@affiliation (Ok to map - is string)
|----| |2.1.6 verStmt* ->NA
(ATT == ID, ->NA
xml-lang, ->NA
source ->NA)
| | |
| | |----2.1.6.1 version? ->StudyUnit@version (enter digits only from DDI2 statement)
(ATT == ID, ->NA
xml-lang, ->NA
source, ->NA
date, ->StudyUnit@versionDate
type) -> StudyUnit: VersionRationale
| | |
| | |----2.1.6.2 verResp? ->StudyUnit:VersionResponsibility (OK - is string)
(ATT == ID, ->NA
xml-lang, ->NA
source, ->NA
affiliation)->probably NA because cannot tell if new or old entry for ORGS
so we may not map VerResp to Organization entry.
|----2.3 method*
(ATT == ID,
xml-lang,
source)
| |
| |---2.3.1 dataColl*
(ATT == ID,
xml-lang,
source)
|----2.3.1.12 weight* -> map to DataCollection:ProcessingEvent:Weighting:Content
(ATT == ID,
xml-lang, Weighting:Content@xml:lang
source)
|----4.0 dataDscr* -> LogicalProduct
(ATT == ID, -> LogicalProduct@ID
xml-lang, ->NA
source ->Logicaol Product@agency)
|
|----4.1 varGrp* ->VariableScheme: VariableGroup.
(ATT == ID, ->VariableGroup@ID
xml-lang, ->NA
source, ->NA
type, ->VariableGroup: GroupType (M)
var, ->VariableGroup:VariableReference - parse each entry into individual ref.
varGrp, VariableGroup: VariableGroupReference
name, ->VariableGroup:Name (is string, OK to map)
sdatrefs, ->NA
methrefs, ->NA
pubrefs, ->NA
access, ->NA
nCube) ->NA
| |
| |----4.1.1 labl* ->VariableGroup:Label
(ATT == ID, ->NA
xml-lang, ->Label@xml:lang
source, ->NA
level, ->NA
vendor, ->NA
country, ->Label@LocationVariant (is string, ok to map)
sdatrefs) ->NA
| |
| |----4.1.2 txt* ->VariableGroup: Definition (1st priority)
(ATT == ID, ->NA
xml-lang, -> Definition@xml:lang
source, ->NA
level, ->NA
sdatrefs) ->NA
| |
| |----4.1.3 concept* ->ConceptualComponent:ConceptScheme:Concept:Label
AND Reference concept in VariableGroup:ConceptReference
(ATT == ID, ->Concept@id
xml-lang, -> Concept:Label@xml:lang
source, ->NA
vocab, -> vocabulary and URI defined at ConceptScheme level only in DDI3
vocabURI) -> CREATE MULTIPLE CONCEPT SCHEMES TO INCLUDE CONCEPTS
FROM DIFFERENT VOCABULARIES - i.e. one scheme per vocab.
| |
| |----4.1.4 defntn? ->VariableGroup: Definition (2nd priority)
(ATT == ID, ->NA
xml-lang, -> Definition@xml:lang
source) ->NA
| |
| |----4.1.5 universe? -> may be mapped to Universe:HumanReadable in UniverseScheme
but we may end up with same entry repeated MANY TIMES.
THIS WOULD NOT PRODUCE INVALID DDI HOWEVER. IT WOULD JUST BE AGAINST
THE REUSABILITY INTENT IN DDI 3 AND WOULD GENERATE HUGE XML FILES
(HARD TO HANDLE). SOLUTION: build script to check for duplication
and clean up after conversion, or clean up manually?
(ATT == ID, ->UniverseScheme:Universe@ID
xml-lang, ->NA
source, ->NA
level, ->NA
clusion ->Universe@isInclusive (true/false))
| |
| | |----4.1.5.1 txt -> [see above]. UniverseScheme:Universe:HumanReadable.
(ATT == ID, ->NA
xml-lang, ->Universe:HumanReadable@xml:lang
source, ->NA
level, ->NA
sdatrefs) ->NA
| | |
| | +----4.1.5.2 concept ->UniverseScheme:Universe:MachineReadable:Code
(ATT == ID, ->NA
xml-lang, ->NA
source, ->NA
vocab, ->->NA
vocabURI) ->NA
| |
| +----4.1.6 notes* ->LogicalProduct:Note:Content
(ATT == ID, ->NA
xml-lang, ->Note:Content@xml:lang
source, -> Note:Responsibility, IF "resp" not present. otherwise, NA.
type, ->Note:Type (is M and CV!)-> map 2.0 type to 3.0 type if there is match
OR other if no match /or ALL TO COMMENT
subject, ->Note:Subject
level, ->NA (or, Note:Relationship:RelatedToReference)
resp, -> Note:Responsibility
sdatrefs) (NA)
== Note:Relationship:RelatedToReference is M! - Include ID of parent
element in DDI 2. Ex: here include ID of variable group, as expressed in DDI3 code
(VariableGroup_VG3F1_8344)
|
|
|----4.3 var* -> LogicalProduct:VariableScheme:Variable
(ATT == ID, -> Variable@ID -- If ID missing in DDI2, create in DDI 3 by using name_XXXX.)
xml-lang, ->NA
source, ->NA
name, ->Variable:Name
wgt, ->Variable@isWeight (defaults are "not_wgt" and "false". Need only to transform wgt->true)
wgt-var, ->Variable:Representation:WeightVariableReference
weight, ->Variable:Representation:StandardWeightReference
qstn, ->Variable:QuestionReference (is repeatable, enter each V 2.0 ref in separate field)
files, ->NA
vendor,
dcml, ->NumericRepresentation@DecimalPositions
intrvl, ->Variable:Representation@classificationLevel (discrete=nominal; continuous=continuous)
rectype,
sdatrefs, ->NA
methrefs, ->NA
pubrefs, ->NA
access, ->NA
aggrMeth, ->Representation:AggregationMethod
measUnit, ->Representation:MeasurementUnit
scale, ->NumericRepresentation@scale
origin, ->NumericRepresentation@startValue
nature, ->Representation@classificationLevel
additivity, ->Representation:Additivity
temporal, ->variable@isTemporal (if "Y" in 2.0 map to "true" in 3.0 -otherwise defaults match)
geog, ->variable@isGeographic (see above)
geoVocab, ->NA
catQnty) ->NA
| |
| |----4.3.1 location* ->SEE BELOW: MANDATORY SEQUENCE FOR MARKING UP LOCATION:
...
LogicalProduct_8344
LogicalRecord1_8344
PhysicalStructure_8344
PhysicalRecordSegment1_8344
ASCII1
V1_8344
144
(ATT == ID, ->NA
xml-lang, ->NA
source, ->NA
StartPos, ->RecordLayout:DataItem:PhysicalLocation@StartPosition
EndPos, ->RecordLayout:DataItem:PhysicalLocation@EndPosition
width, ->RecordLayout:DataItem:PhysicalLocation@Width
RecSegNo, -> ???
fileid, ->NA
locMap) -> NA
| |
| |----4.3.2 labl* Variable: Label
(ATT == ID,
xml-lang, ->label@xml:lang
source, ->NA
level, ->NA
vendor, ->NA
country, ->label@locationVariant
sdatrefs ->NA)
| |
| |----4.3.3 imputation? ->DataCollection: ProcessingEvent:Coding:GeneralInstruction:Description
(create individual Coding field for each variable
+ AND-> reference in Variable:Representation:ImputationReference)
(ATT == ID, ->Coding@id
xml-lang, ->GeneralInstruction:Description@xml:lang
source) ->NA
| |
| |----4.3.4 security? -> create Embargo entry in StudyUnit for each variable.
Content under :Rationale; AgencyReference: same as ArchiveReference
+ AND reference in Variable:EmbargoReference.
IF BOTH SECURITY AND EMBARGO ARE PRESENT IN DDI 2
THEN GIVE PRIORITY TO THE ONE WITH THE MORE RECENT START DATE.
(ATT == ID, ->NA
xml-lang, ->Rationale@xml:lang
source,
date ->[map to startDate]
| |
| |----4.3.5 embargo? -> create Embargo entry in StudyUnit for each variable.
Content under :Rationale; AgencyReference: same as ArchiveReference
+ AND reference in Variable:EmbargoReference
IF BOTH SECURITY AND EMBARGO ARE PRESENT IN DDI 2
THEN GIVE PRIORITY TO THE ONE WITH THE MORE RECENT START DATE.
(ATT == ID, ->na
xml-lang, ->Rationale@xml:lang
source,
date, ->map to endDate if event=notBefore (startDate=current date);
map to startDate if event=notAfter (endDate=0000-00-00)
event, ->see above; use to define startDate and/or endDate
format ?)
| |
| |----4.3.6 respUnit? ->Variable:ResponseUnit
(ATT == ID, ->NA
xml-lang, ->NA
source) ->NA
| |
| |----4.3.7 anlysUnit? ->Variable:AnalysisUnit - IS NOT REPEATABLE IN 3.0 THEREFORE EITHER
HUMAN READABLE ENTRY UNDER 4.3.7 OR 4.3.7.1 -- OR CV UNDER 4.3.7.2
MAY BE MAPPED - BUT NOT BOTH!!!
(ATT == ID, ->NA
xml-lang, ->NA
source) ->NA
| |
| | |----4.3.7.1 txt -> see note above
(ATT == ID, ->NA
xml-lang, ->NA
source, ->NA
level, ->NA
sdatrefs) ->NA
| | |
| | +----4.3.7.2 concept ->see note above
(ATT == ID, ->NA
xml-lang, ->NA
source, ->NA/or Variable:AnalysisUnit@codeListAgency
vocab, ->Variable:AnalysisUnit@codeListID
vocabURI)
| |
| |----4.3.8 qstn* ->DataCollection:QuestionScheme: QuestionItem; + Variable:QuestionReference
(ATT == ID, ->QuestionItem@ID
xml-lang, ->QuestionText@xml:lang
source, ->NA
qstn, -> ? DON'T KNOW WHAT THIS IS FOR IN V 2.0
var, ->NA
seqNo, -> may map to ControlConstruct:Sequence (?)
sdatrefs->NA)
| |
| | |----4.3.8.1 preQTxt* ->[ControlConstructScheme:StatementItem:DisplayText]
NOT INCLUDED IN MARKUP EXAMPLE!
(ATT == ID,
xml-lang,
source)
| | |
| | |----4.3.8.2 qstnLit* -> create: 1)QuestionScheme: QuestionItem:QText:LiteralText:Text
2)(ResponseDomain-M):CodeDomain:CodeSchemeRef:ID of codescheme of this
variable
3)Variable:QuestionReference:ID of this question (M-> assign!)
(ATT == ID,
xml-lang, ->QuestionText@xml:lang
source,
sdatrefs)
| | |
| | |----4.3.8.3 postQTxt* ->[ControlConstructScheme:StatementItem:DisplayText]
NOT INCLUDED IN MARKUP EXAMPLE!
(ATT == ID,
xml-lang,
source)
| | |
| | |----4.3.8.4 forward* -> ControlConstructScheme:ControlConstruct:Sequence (?)
NOT INCLUDED IN MARKUP EXAMPLE!
(ATT == ID,
xml-lang,
source,
qstn)
| | |
| | |----4.3.8.5 backward* ->ControlConstructScheme:ControlConstruct:Sequence (?)
NOT INCLUDED IN MARKUP EXAMPLE!
(ATT == ID,
xml-lang,
source,
qstn)
| | |
| | +----4.3.8.6 ivuInstr* -> InterviewerInstructionScheme:Instruction:InstructionText
(ATT == ID,
xml-lang,
source)
| |
| |----4.3.9 valrng* -> !!NA?? (Variable:Representation:NumericRepresentation:NumberRange
ONLY APPLIES TO NUMERIC REPRESENTATION-TYPE VARIABLES IN DDI3,
while valid range may be defined for ANY type var. in DDI2)
-MAP 2.0 range or item or both (i.e. all defined values)
to 3.0 NumberRange as shown above, only if
and valrng available in ddi 2.0.
(ATT == ID, ->NA
xml-lang, ->NA
source) ->NA
| | |
| | |----4.3.10.1 range* ->see above
(ATT == ID, ->NA
xml-lang, ->NA
source) ->NA
|----4.3.10.2 item* ->see above
(ATT == ID, ->NA
xml-lang,->NA
source) ->NA
| | |----4.3.9.1 key? ->NA
(ATT == ID,
xml-lang, ->NA
source) ->NA
| | |
| | +----4.3.9.2 notes* -> see above: 1.if valrng not mapped, then its notes should be mapped
to the DDI3 CodeScheme, if there is a codescheme for this var;
2. IF valrng mapped, then LogicalProduct:Note with
RelatedtoReference to this variable
(ATT == ID,
xml-lang,
source,
type,
subject,
level,
resp,
sdatrefs)
| |
| |----4.3.10 invalrng* -> map 2.0 range or item or both if present (i.e. all defined values)
to Category@missing=true
(ATT == ID,
xml-lang,
source)
| | |
| | |----4.3.10.1 range* ->see above
(ATT == ID, ->NA
xml-lang, ->NA
source) ->NA
|----4.3.10.2 item* ->see above
(ATT == ID, ->NA
xml-lang, ->NA
source) ->NA
|----4.3.10.3 key? ->NA (?)
(ATT == ID, ->NA
xml-lang, ->NA
source) ->NA
| | |
| | +----4.3.10.4 notes* ->LogicalProduct:Note with RelatedToReference to CategoryScheme for
this variable.
(ATT == ID,
xml-lang,
source,
type,
subject,
level,
resp,
sdatrefs)
| |
| |----4.3.11 undocCod*
(ATT == ID,
xml-lang,
source)
| |
| |----4.3.12 universe* ->see notes for 4.1.5
(ATT == ID,
xml-lang,
source,
level,
clusion)
| |
| | |----4.3.12.1 txt -> do NOT map (?) OR Universe:HumanReadable(see above)
(ATT == ID,
xml-lang,
source,
level,
sdatrefs)
| | |
| | +----4.3.12.2 concept ->Universe:MachineReadable:Code
(ATT == ID,
xml-lang,
source,
vocab, ->NA
vocabURI)
| |
| |----4.3.13 TotlResp? ->VariableStatistics: TotalResponses
(ATT == ID, ->NA
xml-lang, ->NA
source) ->NA
| |
| |----4.3.14 sumStat* -> MANDATORY SEQUENCE BEFORE ENTERING VARIABLE STATISTICS:
RecordLayout1_8344
http://www.icpsr.umich.edu
--> THEN, FOR sumStat:
V1_8344
valid
false7352<
/pi:VariableStatistics>
(ATT == ID, ->NA
xml-lang, ->NA
source, ->NA
wgtd, ->SummaryStatistic: Weighted (is boolean)
wgt-var, ->VariableStatistics: WeightVariableReference: IN DDI 3 THIS IS REFERENCED
ONLY ONCE FOR ALL STATISTICS ASSOCIATED WITH A VARIABLE (SUMMARY, CATEG, ETC.)
SO IF MULTIPLE WEIGHTS APPEAR IN DDI2, CREATE SEPARATE (MULTIPLE) STATISTICS
ENTRIES FOR THE SAME VARIABLE - ONE ENTRY PER WEIGHT.
weight, -> VariableStatistics: WeightUsedReference (reference to Weighting in
DataCollection:ProcessingEvent) !!! in ddi 3 this is
a choice (WeightVar OR WeightUsed) so either one, but not both;
--> map weight ONLY if wgt-var is missing in ddi 2.0
type) ->SummaryStatisticType (map DDI2 CV to full words)
| |
| |----4.3.15 txt* -> Variable:VariableDefinition
(ATT == ID, ->NA
xml-lang, ->VariableDefinition@xml:lang
source, ->NA
level, ->NA
sdatrefs) ->NA
| |
| |----4.3.16 stdCatgry* ->Variable:Representation:ExternalCategoryRepresentation:Ref
OR ->NA (actual text cannot be directly mapped)
(ATT == ID, ->NA
xml-lang, ->NA
source, ->NA
date, ->[ExternalCategoryReference:VersionDate]
URI) ->[ExternalCategoryReference:URI]
| |
| |----4.3.17 catgryGrp* ->CategoryScheme:CategoryGroup; in 3.0 include categories
directly within group; category group is no longer "nestable" in 3.0
(groups can no longer include groups); so when a group in 2.0 includes
a group, list the categories from that group instead; see markup ex.
(ATT == ID, ->CategoryGroup@id
xml-lang, ->NA
source, ->NA
missing, ->NA
missType, ->NA
catgry, ->CategoryGroup:Category (see note above)
catGrp, ->NA
levelno, : the last 4 map to codescheme ->CodeScheme:Level@levelnumber
levelnm, ->[CodeScheme:Level@levelname]
compl,
excls)
| | |
| | |----4.3.17.1 labl* ->CategoryGroup: Name
(ATT == ID, ->NA
xml-lang, ->Name@xml:lang
source, ->NA
level, ->NA
vendor, ->NA
country, ->NA
sdatrefs) ->NA
| | |
| | |----4.3.17.2 catStat* ->[Create Code entry in CodeScheme and reference
CategoryGroup in CategoryReference. Create fake
value to support statistics.]
(ATT == ID,
xml-lang,
source,
type,
URI,
methrefs,
wgtd,
wgt-var,
weight,
sdatrefs)
| | |
| | +----4.3.17.3 txt* ->NA
(ATT == ID,
xml-lang,
source,
level,
sdatrefs)
| |
| |----4.3.18 catgry* ->LogicalProduct:CategoryScheme:Category
(ATT == ID, ->Category@ID (add study number to make it unique)
xml-lang, ->NA
source, ->NA
missing, ->Category@missing (is boolean - map Y to true and N to false)
missType, ->NA
country, ->NA
sdatrefs, ->NA
excls, ->NA
catgry, : use these 2 for Codes Hierarchy
level)
| | |
| | |----4.3.18.1 catValu? ->Create 1 CodeScheme per variable->Code:Value for each CatValu
->assign ID to each category and add CategoryReference (M) in Code
->Insert references to CodeScheme in 1)Question:CodeDomain, and
2)Variable:Representation:CodeRepresentation
(ATT == ID,
xml-lang,
source)
| | |
| | |----4.3.18.2 labl* ->Category:Label
(ATT == ID, ->NA
xml-lang, ->Label@xml:lang
source, ->NA
level, ->NA
vendor, ->Category:Label@type
country, ->Label@LocationVariant
sdatrefs ->NA)
| | |
| | |----4.3.18.3 txt* ->Category:Definition
(ATT == ID, ->NA
xml-lang, ->Category:Definition@xml:lang
source, ->NA
level, ->NA
sdatrefs) ->NA
| | |
| | |----4.3.18.4 catStat* ->PhysInstance:Statistics:VarStatististics:CatStats:CatStat:VALUE (!)
(ATT == ID, ->NA
xml-lang, ->NA
source, ->NA
type, ->CategoryStatistic:CatgoryStatisticType (map content directly,
except express "freq" in 2.0 as Frequency
URI, ->NA -[StatisticalDataFileRef DOES NOT REFER TO SINGLE CAT.: IS FOR FILE
OR PART OF FILE - BUG WILL BE FILED 3/09]
methrefs, ->NA
wgtd, ->CategoryStatistic: Weighted (is boolean Y=true; N=false)
wgt-var, ->NA
weight, ->NA
sdatrefs) ->NA
| | |
| | +----4.3.18.5 mrow? ->??[Variable:Representation:ConcatenatedValue]
-> (do not map for now).This applies to aggregate data
(ATT == ID,
xml-lang,
source)
| | |
| | +----4.3.18.5.1 mi* ->see above: do not map for now. this applies to aggregate data
(ATT == ID,
xml-lang,
source,
varRef ->ConcatenatedValue:VariableReference)
| |
| |----4.3.19 codInstr* ->1. DataColl:ProcessingEvent:Coding:Generation Instruction, and
2. Variable:Representation:CodingInstructionRef
IF BOTH IMPUTATION AND CODINGINSTRUCTION OR DERIVATION ARE PRESENT
IN DDI2 FOR THE SAME VARIABLE, CREATE TWO CODING ENTRIES TO LINK
TO THE SAME VARIABLE IN DDI3.
(ATT == ID, -> Coding@id
xml-lang, ->GenerationInstruction:Description@xml:lang
source ->NA)
| |
| |----4.3.20 verStmt* ->NA (see below; no parent elem. (container) in 3.0)
(ATT == ID, ->NA
xml-lang, ->NA
source) ->NA
| | |
| | |----4.3.20.1 version? Variable@version
(ATT == ID, ->NA
xml-lang, ->NA
source, ->NA
date, -> Variable@versionDate
type) -> Variable:VersionRationale
| | |
| | |----4.3.20.2 verResp? ->Variable:VersionResponsibility
(ATT == ID, ->NA
xml-lang, ->NA
source, ->NA
affiliation) ->NA (cannot link to affiliation in Orgs. because
VersionResp content is string, not IDRef) OR:
-> APPEND AFFILIATION TO VERSION RESP STRING.
| | |
| | +----4.3.20.3 notes* ->LogicalProduct:Note (link to variable ID)
Note:Relationship:RelatedToReference: {Variable ID}
(ATT == ID, ->NA
xml-lang, ->NA Note:Content@xml:lang
source, ->->NA (OR: ->Note: Responsibility, if "resp" not present)
type, -> Note@type (see mapping note to previous entry)
subject, ->Note: Subject / (?) Header (?)
level, ->NA
resp, ->Note: Responsibility
sdatrefs) ->NA (OR: Note:Rrelationship:RelatedToReference)
| |
| |----4.3.21 concept* ->1. Concept:Label, and
2. ConceptReference in Variable
(ATT == ID, ->Concept@id
xml-lang, ->Concept:Label@xml:lang
source, ->NA
vocab, ->NA -- v.3.0 has vocabulary@URI but it applies to entire
scheme not to individual concepts
-I suppose we could scan 2.0 URIs and whenever / if they change, then
create a new scheme with each new URI. [fortunately, this is going
to be a non-issue in real life, as people have not been entering concepts
vocabURI) ->NA
| |
| |----4.3.22 derivation? ->1. DataColl:ProcessingEvent:Coding:GenerationInstruction, and
2. Reference to above in Variable:CodingInstructionRef -
(ATT == ID, ->Coding@id
xml-lang, ->->GenerationInstruction:Description@xml:lang
source, ->NA
var) ->GenerationInstruction:SourceVariable
| | |
| | |----4.3.22.1 drvdesc? ->GenerationInstruction:Description
(ATT == ID, ->NA
xml-lang, ->Description@xml:lang
source) ->NA
| | |
| | +----4.3.22.2 drvcmd? ->GenerationInstruction:Command:StructuredCommand:CommandText
(ATT == ID, ->NA
xml-lang, ->NA
source, ->NA
syntax) ->Command@FormalLanguage
| |
| |----4.3.23 varFormat? ->[use attributes to determine type of Variable:Representation]
(ATT == ID,
xml-lang,
source,
type,
formatname,
schema,
category,
URI)
| |
| |----4.3.24 geoMap* ->NA
(ATT == ID,
xml-lang,
source,
URI,
mapformat,
levelno)
| |
| |----4.3.25 catLevel* [use in codes hierarchy]
(ATT == ID,
xml-lang,
source,
levelnm (-> CodeScheme:Level:Name)
| |
| +----4.3.26 notes* ->LogicalProduct:Note
(ATT == ID, ->NA
xml-lang, Note:Content@xml:lang
source, ->NA
type, ->Note@type
subject, ->Note:SubjectHeader
level, ->NA (or, Note:Relationship:RelatedToReference)
resp, -> Note:Responsibility
sdatrefs -> (?Note:Relationship:RelatedToReference?)