default namespace gem = "http://www.openhealth.org/ASTM/guideline" guideline.attrib = attribute id {xsd:ID}? attribute xml:lang {xsd:NMTOKEN}? xlink.attrib? source.attrib = attribute source{"ngc"}, attribute id {xsd:ID}?, attribute Options {text}? root = element guideline.document{ astm.document.attrib, guideline.header, guideline.body } guideline.header = element guideline.header{ guideline.attrib,(identity | developer )* } identity = element identity{guideline.attrib, (guideline.title | citation | release.date | availability | status | companion.document | adaptation )* } guideline.title = element # { guideline.attrib, astm.content } citation = element citation{ guideline.attrib,(astm.content | guideline.length )*} guideline.length = element # { guideline.attrib, astm.content } release.date = element # { guideline.attrib, astm.content } availability (#PCDATA | %ASTM.Mix; | electronic | print | contact )*> electronic = element # { guideline.attrib, astm.content } print = element # { guideline.attrib, astm.content } contact = element # { guideline.attrib, astm.content } status = element # { guideline.attrib, astm.content } companion.document (#PCDATA | %ASTM.Mix; | patient.resource )*> patient.resource = element # { guideline.attrib, astm.content } adaptation = element # { guideline.attrib, astm.content } developer (developer.name | committee.name | funding | endorser | comparable.guideline )*> developer.name (#PCDATA | %ASTM.Mix; | developer.type )*> developer.type = element # { guideline.attrib, astm.content } committee.name (#PCDATA | %ASTM.Mix; | committee.expertise | committee.member )*> committee.expertise = element # { guideline.attrib, astm.content } committee.member (#PCDATA | %ASTM.Mix; | member.expertise )*> member.expertise = element # { guideline.attrib, astm.content } funding = element # { guideline.attrib, astm.content } endorser = element # { guideline.attrib, astm.content } comparable.guideline = element # { guideline.attrib, astm.content } guideline.body (purpose | intended.audience | development.method | target.population | knowledge.components | testing | revision.plan )*> purpose (main.focus | category | rationale | objective | available.option | implementation.strategy | health.outcome | exception )*> main.focus = element # { guideline.attrib, astm.content } category = element category { guideline.attrib, source,attrib,astm.content } rationale = element # { guideline.attrib, astm.content } objective = element # { guideline.attrib, astm.content } available.option = element # { guideline.attrib, astm.content } implementation.strategy = element # { guideline.attrib, astm.content } health.outcome = element # { guideline.attrib, astm.content } exception = element # { guideline.attrib, astm.content } intended.audience = element intended.audience{ guideline.attrib, (users | care.setting )*} users = element users{ guideline.attrib, (astm.content | clinical.specialty | professional.group )*} clinical.specialty = element clinical.specialty { guideline.attrib, source.attrib, astm.content } professional.group = element professional.group { guideline.attrib, source.attrib, astm.content } care.setting = element care.setting { guideline.attrib, astm.content } development.method (description.evidence.collection | evidence.time.period | method.evidence.grading | description.evidence.combination | cost.analysis | specification.harm.benefit | quantification.harm.benefit | role.value.judgment | role.patient.preference | qualifying.statement )*> description.evidence.collection (#PCDATA | %ASTM.Mix; | method.evidence.collection | number.source.documents )*> method.evidence.collection = element # { guideline.attrib, astm.content } number.source.documents = element # { guideline.attrib, astm.content } evidence.time.period = element # { guideline.attrib, astm.content } method.evidence.grading (#PCDATA | %ASTM.Mix; | rating.scheme )*> rating.scheme = element # { guideline.attrib, astm.content } description.evidence.combination (#PCDATA | %ASTM.Mix; | method.evidence.combination )*> method.evidence.combination = element # { guideline.attrib, astm.content } cost.analysis = element # { guideline.attrib, astm.content } specification.harm.benefit = element # { guideline.attrib, astm.content } quantification.harm.benefit = element # { guideline.attrib, astm.content } role.value.judgment = element # { guideline.attrib, astm.content } role.patient.preference = element # { guideline.attrib, astm.content } qualifying.statement = element # { guideline.attrib, astm.content } target.population (eligibility | age | sex )*> eligibility (#PCDATA | %ASTM.Mix; | inclusion.criterion | exclusion.criterion )*> inclusion.criterion = element # { guideline.attrib, astm.content } exclusion.criterion = element # { guideline.attrib, astm.content } age = element # { guideline.attrib, astm.content } sex = element # { guideline.attrib, astm.content } knowledge.components (recommendation | definition | algorithm )*> recommendation (#PCDATA | %ASTM.Mix; | conditional | imperative )*> conditional (#PCDATA | %ASTM.Mix; | decision.variable | action | reason | evidence.quality | recommendation.strength | flexibility | logic | cost | link | reference | certainty )*> decision.variable (#PCDATA | %ASTM.Mix; | value | decision.variable.description | test.parameter | decision.variable.cost )*> value = element # { guideline.attrib, astm.content } decision.variable.description = element # { guideline.attrib, astm.content } test.parameter (#PCDATA | %ASTM.Mix; | sensitivity | specificity | predictive.value )*> sensitivity = element # { guideline.attrib, astm.content } specificity = element # { guideline.attrib, astm.content } predictive.value = element # { guideline.attrib, astm.content } decision.variable.cost = element # { guideline.attrib, astm.content } action (#PCDATA | %ASTM.Mix; | action.benefit | action.risk.harm | action.description | action.cost )*> action.benefit = element # { guideline.attrib, astm.content } action.risk.harm = element # { guideline.attrib, astm.content } action.description = element # { guideline.attrib, astm.content } action.cost = element # { guideline.attrib, astm.content } reason = element # { guideline.attrib, astm.content } evidence.quality = element # { guideline.attrib, astm.content } recommendation.strength = element # { guideline.attrib, astm.content } flexibility = element # { guideline.attrib, astm.content } logic = element # { guideline.attrib, astm.content } cost = element # { guideline.attrib, astm.content } link = element # { guideline.attrib, astm.content } reference = element # { guideline.attrib, astm.content } certainty = element # { guideline.attrib, astm.content } imperative (#PCDATA | %ASTM.Mix; |directive | reason | evidence.quality | recommendation.strength | flexibility | logic | cost | link | reference | certainty )*> directive (#PCDATA | %ASTM.Mix; |directive.benefit | directive.risk.harm | directive.description | directive.cost )*> directive.benefit = element # { guideline.attrib, astm.content } directive.risk.harm = element # { guideline.attrib, astm.content } directive.description = element # { guideline.attrib, astm.content } directive.cost = element # { guideline.attrib, astm.content } definition = element definition{(astm.content | term )*} term = element term{ (astm.content | term.meaning )* } term.meaning = element term.meaning { guideline.attrib, astm.content } algorithm = element algorithm { astm.content | (action.step | conditional.step | branch.step | synchronization.step )* } action.step = element # { guideline.attrib, astm.content } conditional.step = element # { guideline.attrib, astm.content } branch.step = element # { guideline.attrib, astm.content } synchronization.step = element # { guideline.attrib, astm.content } testing (external.review | pilot.testing )*> external.review = element external.review{ (astm.content | review.method )*} review.method = element # { guideline.attrib, source.attrib, astm.content } pilot.testing = element # { guideline.attrib, astm.content } revision.plan (expiration | scheduled.review )*> expiration = element # { guideline.attrib, astm.content } scheduled.review = element # { guideline.attrib, astm.content }