default namespace d21096137e1a1480 = "http://www.isocat.org/ns/dcif" namespace local = "" namespace inh = inherit start = dataCategorySelection dataCategorySelection = element dataCategorySelection { attribute dcif-version { "1.0" }, attribute name { text }?, attribute owner { text }?, ( globalInformation? & dataCategory+ ) } globalInformation = element globalInformation { ( text | any )+ } dataCategory = element dataCategory { attribute pid { xsd:anyURI }, dataCategorySummary?, dataCategoryLineage?, ( ( attribute type { "complex" | "simple" } ) | ( complexDataCategory | simpleDataCategory ) | ( administrationInformationSection & descriptionSection & ( complexDataCategory | simpleDataCategory ) ) ) } dataCategorySummary = attribute identifier { xsd:string }, attribute owner { xsd:string }, attribute version { xsd:string }, attribute name { xsd:string }?, attribute definition { xsd:string }? dataCategoryLineage = attribute first { xsd:anyURI }?, attribute previous { xsd:anyURI }?, attribute next { xsd:anyURI }?, attribute latest { xsd:anyURI }? administrationInformationSection = element administrationInformationSection { administrationRecord } administrationRecord = element administrationRecord { element identifier { xsd:NCName } & element version { xsd:string } & element registrationStatus { "candidate" | "standard" | "deprecated" | "superseded" } & element origin { xsd:string }? & element justification { xsd:string }? & element explanatoryComment { xsd:string, attribute xml:lang { xsd:language }? }* & element unresolvedIssue { xsd:string, attribute xml:lang { xsd:language }? }* & element effectiveDate { xsd:date }? & element untilDate { xsd:date }? & element creation { element creationDate { xsd:date } & element changeDescription { xsd:string, attribute xml:lang { xsd:language }? } } & element lastChange { element lastChangeDate { xsd:date } & element changeDescription { xsd:string, attribute xml:lang { xsd:language }? } }? } descriptionSection = element descriptionSection { element profile { xsd:string }+ & languageSection+ & dataElementNameSection* } languageSection = element languageSection { element language { xsd:language } & element definitionSection { element definition { xsd:string, attribute xml:lang { xsd:language }? } & element source { xsd:string } & element note { xsd:string, attribute xml:lang { xsd:language }? }? }* & exampleSection* & explanationSection* & element note { xsd:string, attribute xml:lang { xsd:language }? }* & nameSection* } exampleSection = element exampleSection { element example { xsd:string, attribute xml:lang { xsd:language }? } & element source { xsd:string }? } explanationSection = element explanationSection { element explanation { xsd:string, attribute xml:lang { xsd:language }? } & element source { xsd:string }? } nameSection = element nameSection { element name { xsd:string } & element nameStatus { "standardized name" | "preferred name" | "admitted name" | "deprecated name" | "superseded name" } } dataElementNameSection = element dataElementNameSection { element dataElementName { xsd:string } & element source { xsd:string } } complexDataCategory = attribute type { "complex" }, ( openDataCategory | closedDataCategory | constrainedDataCategory ) openDataCategory = openConceptualDomain & constrainedLinguisticSection* openConceptualDomain = element conceptualDomain { attribute type { "open" }, element dataType { xsd:string } } closedDataCategory = profileValueDomain & closedLinguisticSection* profileValueDomain = element conceptualDomain { attribute type { "closed" }, ( element dataType { xsd:string } & element profile { xsd:string } & element value { attribute pid { xsd:anyURI }, dataCategorySummary? }+ ) } closedLinguisticSection = element linguisticSection { attribute type { "closed" }, ( linguisticSection & valueDomain? ) } linguisticSection = element language { xsd:language } & exampleSection* & explanationSection* & element note { xsd:string, attribute xml:lang { xsd:language }? }* valueDomain = element conceptualDomain { attribute type { "closed" }, ( element dataType { xsd:string } & element value { attribute pid { xsd:anyURI }, dataCategorySummary? }+ ) } constrainedDataCategory = conceptualDomainRule+ & constrainedLinguisticSection* conceptualDomainRule = element conceptualDomain { attribute type { "constrained" }, ( element dataType { xsd:string } & element ruleType { xsd:string } & element rule { ( text | any )+ }+ ) } constrainedLinguisticSection = element linguisticSection { attribute type { "constrained" }, ( linguisticSection & conceptualDomainRule* ) } simpleDataCategory = attribute type { "simple" }, element isA { attribute pid { xsd:anyURI }, dataCategorySummary? }? any = element * - d21096137e1a1480:* { attribute * - d21096137e1a1480:* { text }*, ( text | any )* }