health-data-standards 3.5.3 → 3.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (140) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -3
  3. data/README.md +10 -2
  4. data/lib/health-data-standards.rb +5 -28
  5. data/lib/health-data-standards/export/cat_1.rb +3 -2
  6. data/lib/health-data-standards/export/cat_1_r2.rb +11 -0
  7. data/lib/health-data-standards/ext/node.rb +1 -2
  8. data/lib/health-data-standards/import/bulk_record_importer.rb +4 -4
  9. data/lib/health-data-standards/import/bundle/importer.rb +62 -0
  10. data/lib/health-data-standards/import/c32/insurance_provider_importer.rb +10 -8
  11. data/lib/health-data-standards/import/cat1/patient_importer.rb +3 -3
  12. data/lib/health-data-standards/import/cat1/procedure_importer.rb +42 -0
  13. data/lib/health-data-standards/import/cda/medication_importer.rb +11 -11
  14. data/lib/health-data-standards/import/cda/section_importer.rb +13 -7
  15. data/lib/health-data-standards/models/cqm/aggregate_objects.rb +5 -1
  16. data/lib/health-data-standards/models/cqm/bundle.rb +5 -3
  17. data/lib/health-data-standards/models/cqm/measure.rb +1 -1
  18. data/lib/health-data-standards/models/entry.rb +5 -1
  19. data/lib/health-data-standards/models/record.rb +10 -0
  20. data/lib/health-data-standards/models/reference.rb +23 -0
  21. data/lib/health-data-standards/models/svs/value_set.rb +4 -3
  22. data/lib/health-data-standards/railtie.rb +1 -1
  23. data/lib/health-data-standards/tasks.rb +1 -0
  24. data/lib/health-data-standards/tasks/bundle.rake +84 -2
  25. data/lib/health-data-standards/util/vs_api.rb +40 -7
  26. data/lib/health-data-standards/validate/base_validator.rb +23 -0
  27. data/lib/health-data-standards/validate/data_validator.rb +85 -0
  28. data/lib/health-data-standards/validate/measure_validator.rb +127 -0
  29. data/lib/health-data-standards/validate/performance_rate_validator.rb +94 -0
  30. data/lib/health-data-standards/validate/reported_result_extractor.rb +170 -0
  31. data/lib/health-data-standards/validate/schema_validator.rb +24 -0
  32. data/lib/health-data-standards/validate/schematron/c_processor.rb +28 -0
  33. data/lib/health-data-standards/validate/schematron/java_processor.rb +93 -0
  34. data/lib/health-data-standards/validate/schematron_validator.rb +34 -0
  35. data/lib/health-data-standards/validate/validation_error.rb +10 -0
  36. data/lib/health-data-standards/validate/validators.rb +80 -0
  37. data/lib/hqmf-generator/fulfills.xml.erb +7 -0
  38. data/lib/hqmf-generator/hqmf-generator.rb +8 -3
  39. data/lib/hqmf-model/data_criteria.rb +3 -0
  40. data/lib/hqmf-model/types.rb +29 -0
  41. data/lib/hqmf-parser/2.0/data_criteria.rb +7 -0
  42. data/lib/hqmf-parser/2.0/types.rb +24 -0
  43. data/resources/schema/infrastructure/cda/CDA_SDTC.xsd +44 -0
  44. data/resources/schema/infrastructure/cda/POCD_MT000040_SDTC.xsd +1500 -0
  45. data/resources/schema/infrastructure/cda/SDTC.xsd +210 -0
  46. data/resources/schema/processable/coreschemas/NarrativeBlock.xsd +557 -0
  47. data/resources/schema/processable/coreschemas/datatypes-base_SDTC.xsd +1850 -0
  48. data/resources/schema/processable/coreschemas/datatypes.xsd +1375 -0
  49. data/resources/schema/processable/coreschemas/infrastructureRoot.xsd +27 -0
  50. data/resources/schema/processable/coreschemas/voc.xsd +2124 -0
  51. data/resources/schematron/iso-schematron-xslt1/ExtractSchFromRNG.xsl +75 -0
  52. data/resources/schematron/iso-schematron-xslt1/ExtractSchFromXSD.xsl +77 -0
  53. data/resources/schematron/iso-schematron-xslt1/iso_abstract_expand.xsl +297 -0
  54. data/resources/schematron/iso-schematron-xslt1/iso_dsdl_include.xsl +1509 -0
  55. data/resources/schematron/iso-schematron-xslt1/iso_schematron_message.xsl +55 -0
  56. data/resources/schematron/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl +1844 -0
  57. data/resources/schematron/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl +605 -0
  58. data/resources/schematron/iso-schematron-xslt1/readme.txt +101 -0
  59. data/resources/schematron/iso-schematron-xslt1/schematron-skeleton-api.htm +723 -0
  60. data/resources/schematron/iso-schematron-xslt2/ExtractSchFromRNG-2.xsl +75 -0
  61. data/resources/schematron/iso-schematron-xslt2/ExtractSchFromXSD-2.xsl +77 -0
  62. data/resources/schematron/iso-schematron-xslt2/iso_abstract_expand.xsl +297 -0
  63. data/resources/schematron/iso-schematron-xslt2/iso_dsdl_include.xsl +1508 -0
  64. data/resources/schematron/iso-schematron-xslt2/iso_schematron_message_xslt2.xsl +55 -0
  65. data/resources/schematron/iso-schematron-xslt2/iso_schematron_skeleton_for_saxon.xsl +2299 -0
  66. data/resources/schematron/iso-schematron-xslt2/iso_svrl_for_xslt2.xsl +684 -0
  67. data/resources/schematron/iso-schematron-xslt2/readme.txt +100 -0
  68. data/resources/schematron/iso-schematron-xslt2/sch-messages-cs.xhtml +56 -0
  69. data/resources/schematron/iso-schematron-xslt2/sch-messages-de.xhtml +57 -0
  70. data/resources/schematron/iso-schematron-xslt2/sch-messages-en.xhtml +57 -0
  71. data/resources/schematron/iso-schematron-xslt2/sch-messages-fr.xhtml +54 -0
  72. data/resources/schematron/iso-schematron-xslt2/sch-messages-nl.xhtml +58 -0
  73. data/resources/schematron/iso-schematron-xslt2/schematron-skeleton-api.htm +723 -0
  74. data/resources/schematron/qrda/cat_1/CDAR2_QRDA_I_R1_D3_2015MAY_Schematron.sch +4676 -0
  75. data/resources/schematron/qrda/cat_1/voc.xml +1177 -0
  76. data/resources/schematron/qrda/cat_1_r2/QRDA Category I Release 2.sch +4069 -0
  77. data/resources/schematron/qrda/cat_1_r2/voc.xml +1065 -0
  78. data/resources/schematron/qrda/cat_3/QRDA Category III.sch +675 -0
  79. data/resources/schematron/qrda/cat_3/voc.xml +21 -0
  80. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.26.cat1.erb +18 -0
  81. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.32.cat1.erb +4 -0
  82. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.38.cat1.erb +5 -1
  83. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.4.cat1.erb +1 -0
  84. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.64.cat1.erb +20 -0
  85. data/templates/cat1/_fulfills.cat1.erb +14 -0
  86. data/templates/cat1/_organization.cat1.erb +2 -1
  87. data/templates/cat1/_patient_data.cat1.erb +1 -1
  88. data/templates/cat1/show.cat1.erb +5 -4
  89. data/templates/cat3/_performance_rate.cat3.erb +5 -1
  90. data/templates/cat3/show.cat3.erb +1 -1
  91. metadata +128 -109
  92. data/lib/health-data-standards/export/ccr.rb +0 -417
  93. data/lib/health-data-standards/export/green_c32/entry.rb +0 -18
  94. data/lib/health-data-standards/export/green_c32/export_generator.rb +0 -23
  95. data/lib/health-data-standards/export/green_c32/record.rb +0 -18
  96. data/lib/health-data-standards/export/helper/gc32_view_helper.rb +0 -39
  97. data/lib/health-data-standards/import/ccr/patient_importer.rb +0 -238
  98. data/lib/health-data-standards/import/ccr/product_importer.rb +0 -60
  99. data/lib/health-data-standards/import/ccr/provider_importer.rb +0 -49
  100. data/lib/health-data-standards/import/ccr/result_importer.rb +0 -49
  101. data/lib/health-data-standards/import/ccr/section_importer.rb +0 -135
  102. data/lib/health-data-standards/import/ccr/simple_importer.rb +0 -30
  103. data/lib/health-data-standards/import/green_c32/advance_directive_importer.rb +0 -14
  104. data/lib/health-data-standards/import/green_c32/allergy_importer.rb +0 -20
  105. data/lib/health-data-standards/import/green_c32/care_goal_importer.rb +0 -26
  106. data/lib/health-data-standards/import/green_c32/condition_importer.rb +0 -38
  107. data/lib/health-data-standards/import/green_c32/encounter_importer.rb +0 -33
  108. data/lib/health-data-standards/import/green_c32/immunization_importer.rb +0 -23
  109. data/lib/health-data-standards/import/green_c32/medical_equipment_importer.rb +0 -24
  110. data/lib/health-data-standards/import/green_c32/medication_importer.rb +0 -68
  111. data/lib/health-data-standards/import/green_c32/patient_importer.rb +0 -14
  112. data/lib/health-data-standards/import/green_c32/procedure_importer.rb +0 -27
  113. data/lib/health-data-standards/import/green_c32/result_importer.rb +0 -43
  114. data/lib/health-data-standards/import/green_c32/section_importer.rb +0 -186
  115. data/lib/health-data-standards/import/green_c32/social_history_importer.rb +0 -13
  116. data/lib/health-data-standards/import/green_c32/support_importer.rb +0 -22
  117. data/lib/health-data-standards/import/green_c32/vital_sign_importer.rb +0 -21
  118. data/templates/gc32/_address.gc32.erb +0 -9
  119. data/templates/gc32/_advance_directive.gc32.erb +0 -5
  120. data/templates/gc32/_allergy.gc32.erb +0 -12
  121. data/templates/gc32/_care_goal.gc32.erb +0 -8
  122. data/templates/gc32/_condition.gc32.erb +0 -10
  123. data/templates/gc32/_encounter.gc32.erb +0 -28
  124. data/templates/gc32/_entry.gc32.erb +0 -3
  125. data/templates/gc32/_entry_attributes.gc32.erb +0 -10
  126. data/templates/gc32/_immunization.gc32.erb +0 -9
  127. data/templates/gc32/_insurance_provider.gc32.erb +0 -28
  128. data/templates/gc32/_medical_equipment.gc32.erb +0 -6
  129. data/templates/gc32/_medication.gc32.erb +0 -91
  130. data/templates/gc32/_name.gc32.erb +0 -11
  131. data/templates/gc32/_organization.gc32.erb +0 -10
  132. data/templates/gc32/_person_attributes.gc32.erb +0 -7
  133. data/templates/gc32/_procedure.gc32.erb +0 -9
  134. data/templates/gc32/_provider.gc32.erb +0 -9
  135. data/templates/gc32/_result.gc32.erb +0 -12
  136. data/templates/gc32/_social_history.gc32.erb +0 -6
  137. data/templates/gc32/_support.gc32.erb +0 -15
  138. data/templates/gc32/_telecom.gc32.erb +0 -1
  139. data/templates/gc32/_vital_sign.gc32.erb +0 -4
  140. data/templates/gc32/record.gc32.erb +0 -97
@@ -0,0 +1,210 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <xs:schema targetNamespace="urn:hl7-org:sdtc" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:hl7-org:sdtc"
4
+ elementFormDefault="qualified" xmlns:hl7="urn:hl7-org:v3" xmlns:sch="http://www.ascc.net/xml/schematron">
5
+ <xs:annotation>
6
+ <xs:documentation>XML schema for message type POCD_MT000040.</xs:documentation>
7
+ <xs:documentation>
8
+ Copyright (c) 2015 Health Level Seven.
9
+ All rights reserved.
10
+
11
+ Redistribution and use in source and binary forms, with or
12
+ without modification, are permitted provided that the following
13
+ conditions are met:
14
+ 1. Redistributions of source code must retain the above
15
+ copyright notice, this list of conditions and the following
16
+ disclaimer.
17
+ 2. Redistributions in binary form must reproduce the above
18
+ copyright notice, this list of conditions and the following
19
+ disclaimer in the documentation and/or other materials
20
+ provided with the distribution.
21
+ 3. All advertising materials mentioning features or use of this
22
+ software must display the following acknowledgement:
23
+
24
+ This product includes software developed by Health Level Seven.
25
+
26
+ THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS
27
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
28
+ NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
29
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
30
+ SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
31
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
33
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
35
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
36
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
38
+ DAMAGE.
39
+ </xs:documentation>
40
+ <xs:documentation>See http://wiki.hl7.org/index.php?title=CDA_R2_Extensions for more details of extensions</xs:documentation>
41
+ <xs:documentation>
42
+ 2012-07-06 Created SDTC.xsd (this file) this file holds all extensions in the SDTC namespace.
43
+ It contains elements, attributes and datatypes
44
+ </xs:documentation>
45
+ <xs:documentation>
46
+ 2012-07-06 Added extensions approved by SDWG prior to 2012-07-06:
47
+ id,
48
+ deceasedInd,
49
+ deceasedTime,
50
+ valueSet,
51
+ valuesetVersion,
52
+ dischargeDispositionCode,
53
+ raceCode,
54
+ birthTime
55
+ </xs:documentation>
56
+ <xs:documentation>
57
+ 2014-07-14 Added extension approved by SDWG on xxxx date:
58
+ signatureText
59
+ </xs:documentation>
60
+ <xs:documentation>
61
+ 2015-04-01 Added extensions approved by SDWG on 2014-11-xx:
62
+ multipleBirthInd,
63
+ multipleBirthOrderNumber
64
+ </xs:documentation>
65
+ <xs:documentation>
66
+ 2015-04-01
67
+ Added extension approved by SDWG on 2014-12-18:
68
+ ethnicGroupCode
69
+ </xs:documentation>
70
+ <xs:documentation>
71
+ 2015-04-01
72
+ Added extension approved by SDWG on 2014-01-xx:
73
+ statusCode
74
+ </xs:documentation>
75
+ <xs:documentation>
76
+ 2015-04-01
77
+ Added extension approved by SDWG on 2015-03-05
78
+ desc
79
+ </xs:documentation>
80
+ <xs:documentation>
81
+ 2015-04-01
82
+ Added extension approved by SDWG on 2015-03-05
83
+ patient
84
+ </xs:documentation>
85
+ <xs:documentation>
86
+ 2015-04-01
87
+ Added extension approved by SDWG on 2015-03-19
88
+ inFulfillmentOf1
89
+ </xs:documentation>
90
+ <xs:documentation>
91
+ 2015-04-06
92
+ Added extension approved by SDWG on 2015-03-05
93
+ asPatientRelationship
94
+ </xs:documentation>
95
+ </xs:annotation>
96
+
97
+ <xs:import namespace="urn:hl7-org:v3" schemaLocation="POCD_MT000040_SDTC.xsd" />
98
+
99
+ <!-- == Start Data types ===================================================================== -->
100
+ <!-- Datatype INT_POS (restricts integers to 1 or greater) -->
101
+ <xs:simpleType name="int_pos">
102
+ <xs:annotation>
103
+ <xs:documentation>Positive integer numbers</xs:documentation>
104
+ </xs:annotation>
105
+ <xs:restriction base="hl7:int">
106
+ <xs:minInclusive value="1" />
107
+ </xs:restriction>
108
+ </xs:simpleType>
109
+
110
+ <xs:complexType name="INT_POS">
111
+ <xs:annotation>
112
+ <xs:documentation>Positive integer numbers</xs:documentation>
113
+ <xs:appinfo>
114
+ <diff>INT</diff>
115
+ <sch:pattern name="validate SDTC_INT">
116
+ <sch:rule abstract="true" id="rule-SDTC_INT">
117
+ <sch:report test="(@value or @nullFlavor) and not(@value and @nullFlavor)" />
118
+ </sch:rule>
119
+ </sch:pattern>
120
+ </xs:appinfo>
121
+ </xs:annotation>
122
+ <xs:complexContent>
123
+ <xs:extension base="hl7:QTY">
124
+ <xs:attribute name="value" use="optional" type="int_pos" />
125
+ </xs:extension>
126
+ </xs:complexContent>
127
+ </xs:complexType>
128
+
129
+ <!-- ActReference (created for QRDA) -->
130
+ <xs:complexType name="ActReference">
131
+ <xs:sequence>
132
+ <xs:element name="realmCode" type="hl7:CS" minOccurs="0" maxOccurs="unbounded" />
133
+ <xs:element name="typeId" type="hl7:POCD_MT000040.InfrastructureRoot.typeId" minOccurs="0" />
134
+ <xs:element name="templateId" type="hl7:II" minOccurs="0" maxOccurs="unbounded" />
135
+ <xs:element name="id" type="hl7:II" minOccurs="1" maxOccurs="unbounded" />
136
+ </xs:sequence>
137
+ <xs:attribute name="classCode" type="hl7:ActClass" use="required" />
138
+ <xs:attribute name="moodCode" type="hl7:x_DocumentActMood" use="required" />
139
+ <xs:attribute name="determinerCode" type="hl7:EntityDeterminer" use="optional" fixed="INSTANCE" />
140
+ </xs:complexType>
141
+
142
+ <!-- Fulfills (created for QRDA) -->
143
+ <xs:complexType name="InFulfillmentOf1">
144
+ <xs:sequence>
145
+ <xs:element name="realmCode" type="hl7:CS" minOccurs="0" maxOccurs="unbounded" />
146
+ <xs:element name="typeId" type="hl7:POCD_MT000040.InfrastructureRoot.typeId" minOccurs="0" />
147
+ <xs:element name="templateId" type="hl7:II" minOccurs="0" maxOccurs="unbounded" />
148
+ <xs:element name="actReference" type="ActReference" />
149
+ </xs:sequence>
150
+ <xs:attribute name="typeCode" type="hl7:ActRelationshipFulfills" use="required" fixed="FLFS" />
151
+ <xs:attribute name="inversionInd" type="hl7:bl" use="optional" />
152
+ <xs:attribute name="negationInd" type="hl7:bl" use="optional" />
153
+ </xs:complexType>
154
+
155
+ <xs:complexType name="SdtcPatient">
156
+ <xs:sequence>
157
+ <xs:element name="id" type="hl7:II" minOccurs="1" />
158
+ </xs:sequence>
159
+ </xs:complexType>
160
+
161
+ <xs:complexType name="AsPatientRelationship">
162
+ <xs:sequence>
163
+ <xs:element name="realmCode" type="hl7:CS" minOccurs="0" maxOccurs="unbounded" />
164
+ <xs:element name="typeId" type="hl7:POCD_MT000040.InfrastructureRoot.typeId" minOccurs="0" />
165
+ <xs:element name="templateId" type="hl7:II" minOccurs="0" maxOccurs="unbounded" />
166
+ <xs:element name="code" type="hl7:CE" />
167
+ </xs:sequence>
168
+ <xs:attribute name="classCode" type="hl7:x_DocumentSubject" use="required" fixed="PRS" />
169
+ <xs:attribute name="determinerCode" type="hl7:EntityDeterminer" use="optional" fixed="INSTANCE" />
170
+ </xs:complexType>
171
+
172
+ <!-- == End Data Types =================================================================== -->
173
+
174
+ <!-- == Start Attributes =================================================================== -->
175
+ <xs:attribute name="valueSet" type="hl7:oid" />
176
+ <xs:attribute name="valueSetVersion" type="hl7:st" />
177
+ <!-- == End Attributes =================================================================== -->
178
+
179
+
180
+ <!-- == Start Elements =================================================================== -->
181
+ <xs:element name="raceCode" type="hl7:CE" />
182
+ <xs:element name="ethnicGroupCode" type="hl7:CE" />
183
+
184
+ <xs:element name="dischargeDispositionCode" type="hl7:CE" />
185
+
186
+ <xs:element name="id" type="hl7:II" />
187
+
188
+ <xs:element name="deceasedInd" type="hl7:BL" />
189
+ <xs:element name="deceasedTime" type="hl7:TS" />
190
+
191
+ <xs:element name="multipleBirthInd" type="hl7:BL" />
192
+ <xs:element name="multipleBirthOrderNumber" type="INT_POS" />
193
+
194
+ <xs:element name="birthTime" type="hl7:TS" />
195
+
196
+ <xs:element name="signatureText" type="hl7:ED" />
197
+
198
+ <xs:element name="statusCode" type="hl7:CS" />
199
+
200
+ <xs:element name="desc" type="hl7:ED" />
201
+
202
+ <xs:element name="inFulfillmentOf1" type="InFulfillmentOf1" />
203
+
204
+ <xs:element name="patient" type="SdtcPatient" />
205
+
206
+ <xs:element name="asPatientRelationship" type="AsPatientRelationship" />
207
+
208
+ <!-- == End Elements =================================================================== -->
209
+
210
+ </xs:schema>
@@ -0,0 +1,557 @@
1
+ <?xml version="1.0" encoding="ASCII"?>
2
+ <!--
3
+ *****************************************************************
4
+ This specification should in no circumstance be used in the development of, or at runtime
5
+ by, systems which perform processing of personal or patient data in a clinical or operational
6
+ setting, or in the provision of medical or therapeutic advice or treatment in a clinical or
7
+ operational setting.
8
+ *****************************************************************
9
+ -->
10
+ <!-- $Id: NarrativeBlock.xsd,v 1.6 2007/03/20 02:42:07 wbeeler Exp $ -->
11
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:hl7-org:v3" targetNamespace="urn:hl7-org:v3" elementFormDefault="qualified">
12
+ <xs:complexType name="StrucDoc.Text" mixed="true">
13
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
14
+ <xs:element name="content" type="StrucDoc.Content"/>
15
+ <xs:element name="linkHtml" type="StrucDoc.LinkHtml"/>
16
+ <xs:element name="sub" type="StrucDoc.Sub"/>
17
+ <xs:element name="sup" type="StrucDoc.Sup"/>
18
+ <xs:element name="br" type="StrucDoc.Br"/>
19
+ <xs:element name="footnote" type="StrucDoc.Footnote"/>
20
+ <xs:element name="footnoteRef" type="StrucDoc.FootnoteRef"/>
21
+ <xs:element name="renderMultiMedia" type="StrucDoc.RenderMultiMedia"/>
22
+ <xs:element name="paragraph" type="StrucDoc.Paragraph"/>
23
+ <xs:element name="list" type="StrucDoc.List"/>
24
+ <xs:element name="table" type="StrucDoc.Table"/>
25
+ </xs:choice>
26
+ <xs:attribute name="ID" type="xs:ID"/>
27
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
28
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
29
+ <xs:attribute name="mediaType" type="xs:string" fixed="text/x-hl7-text+xml"/>
30
+ </xs:complexType>
31
+ <xs:complexType name="StrucDoc.Title" mixed="true">
32
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
33
+ <xs:element name="content" type="StrucDoc.TitleContent"/>
34
+ <xs:element name="sub" type="StrucDoc.Sub"/>
35
+ <xs:element name="sup" type="StrucDoc.Sup"/>
36
+ <xs:element name="br" type="StrucDoc.Br"/>
37
+ <xs:element name="footnote" type="StrucDoc.TitleFootnote"/>
38
+ <xs:element name="footnoteRef" type="StrucDoc.FootnoteRef"/>
39
+ </xs:choice>
40
+ <xs:attribute name="ID" type="xs:ID"/>
41
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
42
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
43
+ <xs:attribute name="mediaType" type="xs:string" fixed="text/x-hl7-title+xml"/>
44
+ </xs:complexType>
45
+ <!-- DELETE THIS, we don't need to define a global element for text
46
+ <xs:element name="text" type="text"/>
47
+ -->
48
+ <xs:simpleType name="StrucDoc.Br">
49
+ <xs:restriction base="xs:string">
50
+ <xs:maxLength value="0"/>
51
+ </xs:restriction>
52
+ </xs:simpleType>
53
+ <xs:complexType name="StrucDoc.Caption" mixed="true">
54
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
55
+ <xs:element name="linkHtml" type="StrucDoc.LinkHtml"/>
56
+ <xs:element name="sub" type="StrucDoc.Sub"/>
57
+ <xs:element name="sup" type="StrucDoc.Sup"/>
58
+ <xs:element name="footnote" type="StrucDoc.Footnote"/>
59
+ <xs:element name="footnoteRef" type="StrucDoc.FootnoteRef"/>
60
+ </xs:choice>
61
+ <xs:attribute name="ID" type="xs:ID"/>
62
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
63
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
64
+ </xs:complexType>
65
+ <xs:complexType name="StrucDoc.Col">
66
+ <xs:attribute name="ID" type="xs:ID"/>
67
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
68
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
69
+ <xs:attribute name="span" type="xs:string" default="1"/>
70
+ <xs:attribute name="width" type="xs:string"/>
71
+ <xs:attribute name="align">
72
+ <xs:simpleType>
73
+ <xs:restriction base="xs:NMTOKEN">
74
+ <xs:enumeration value="left"/>
75
+ <xs:enumeration value="center"/>
76
+ <xs:enumeration value="right"/>
77
+ <xs:enumeration value="justify"/>
78
+ <xs:enumeration value="char"/>
79
+ </xs:restriction>
80
+ </xs:simpleType>
81
+ </xs:attribute>
82
+ <xs:attribute name="char" type="xs:string"/>
83
+ <xs:attribute name="charoff" type="xs:string"/>
84
+ <xs:attribute name="valign">
85
+ <xs:simpleType>
86
+ <xs:restriction base="xs:NMTOKEN">
87
+ <xs:enumeration value="top"/>
88
+ <xs:enumeration value="middle"/>
89
+ <xs:enumeration value="bottom"/>
90
+ <xs:enumeration value="baseline"/>
91
+ </xs:restriction>
92
+ </xs:simpleType>
93
+ </xs:attribute>
94
+ </xs:complexType>
95
+ <xs:complexType name="StrucDoc.Colgroup">
96
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
97
+ <xs:element name="col" type="StrucDoc.Col"/>
98
+ </xs:sequence>
99
+ <xs:attribute name="ID" type="xs:ID"/>
100
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
101
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
102
+ <xs:attribute name="span" type="xs:string" default="1"/>
103
+ <xs:attribute name="width" type="xs:string"/>
104
+ <xs:attribute name="align">
105
+ <xs:simpleType>
106
+ <xs:restriction base="xs:NMTOKEN">
107
+ <xs:enumeration value="left"/>
108
+ <xs:enumeration value="center"/>
109
+ <xs:enumeration value="right"/>
110
+ <xs:enumeration value="justify"/>
111
+ <xs:enumeration value="char"/>
112
+ </xs:restriction>
113
+ </xs:simpleType>
114
+ </xs:attribute>
115
+ <xs:attribute name="char" type="xs:string"/>
116
+ <xs:attribute name="charoff" type="xs:string"/>
117
+ <xs:attribute name="valign">
118
+ <xs:simpleType>
119
+ <xs:restriction base="xs:NMTOKEN">
120
+ <xs:enumeration value="top"/>
121
+ <xs:enumeration value="middle"/>
122
+ <xs:enumeration value="bottom"/>
123
+ <xs:enumeration value="baseline"/>
124
+ </xs:restriction>
125
+ </xs:simpleType>
126
+ </xs:attribute>
127
+ </xs:complexType>
128
+ <xs:complexType name="StrucDoc.Content" mixed="true">
129
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
130
+ <xs:element name="content" type="StrucDoc.Content"/>
131
+ <xs:element name="linkHtml" type="StrucDoc.LinkHtml"/>
132
+ <xs:element name="sub" type="StrucDoc.Sub"/>
133
+ <xs:element name="sup" type="StrucDoc.Sup"/>
134
+ <xs:element name="br" type="StrucDoc.Br"/>
135
+ <xs:element name="footnote" type="StrucDoc.Footnote"/>
136
+ <xs:element name="footnoteRef" type="StrucDoc.FootnoteRef"/>
137
+ <xs:element name="renderMultiMedia" type="StrucDoc.RenderMultiMedia"/>
138
+ </xs:choice>
139
+ <xs:attribute name="ID" type="xs:ID"/>
140
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
141
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
142
+ <xs:attribute name="revised">
143
+ <xs:simpleType>
144
+ <xs:restriction base="xs:NMTOKEN">
145
+ <xs:enumeration value="insert"/>
146
+ <xs:enumeration value="delete"/>
147
+ </xs:restriction>
148
+ </xs:simpleType>
149
+ </xs:attribute>
150
+ </xs:complexType>
151
+ <xs:complexType name="StrucDoc.TitleContent" mixed="true">
152
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
153
+ <xs:element name="content" type="StrucDoc.TitleContent"/>
154
+ <xs:element name="sub" type="StrucDoc.Sub"/>
155
+ <xs:element name="sup" type="StrucDoc.Sup"/>
156
+ <xs:element name="br" type="StrucDoc.Br"/>
157
+ <xs:element name="footnote" type="StrucDoc.TitleFootnote"/>
158
+ <xs:element name="footnoteRef" type="StrucDoc.FootnoteRef"/>
159
+ </xs:choice>
160
+ <xs:attribute name="ID" type="xs:ID"/>
161
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
162
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
163
+ </xs:complexType>
164
+ <xs:complexType name="StrucDoc.Footnote" mixed="true">
165
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
166
+ <xs:element name="content" type="StrucDoc.Content"/>
167
+ <xs:element name="linkHtml" type="StrucDoc.LinkHtml"/>
168
+ <xs:element name="sub" type="StrucDoc.Sub"/>
169
+ <xs:element name="sup" type="StrucDoc.Sup"/>
170
+ <xs:element name="br" type="StrucDoc.Br"/>
171
+ <xs:element name="renderMultiMedia" type="StrucDoc.RenderMultiMedia"/>
172
+ <xs:element name="paragraph" type="StrucDoc.Paragraph"/>
173
+ <xs:element name="list" type="StrucDoc.List"/>
174
+ <xs:element name="table" type="StrucDoc.Table"/>
175
+ </xs:choice>
176
+ <xs:attribute name="ID" type="xs:ID"/>
177
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
178
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
179
+ </xs:complexType>
180
+ <xs:complexType name="StrucDoc.TitleFootnote" mixed="true">
181
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
182
+ <xs:element name="content" type="StrucDoc.TitleContent"/>
183
+ <xs:element name="sub" type="StrucDoc.Sub"/>
184
+ <xs:element name="sup" type="StrucDoc.Sup"/>
185
+ <xs:element name="br" type="StrucDoc.Br"/>
186
+ </xs:choice>
187
+ <xs:attribute name="ID" type="xs:ID"/>
188
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
189
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
190
+ </xs:complexType>
191
+ <xs:complexType name="StrucDoc.FootnoteRef">
192
+ <xs:attribute name="ID" type="xs:ID"/>
193
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
194
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
195
+ <xs:attribute name="IDREF" type="xs:IDREF" use="required"/>
196
+ </xs:complexType>
197
+ <xs:complexType name="StrucDoc.Item" mixed="true">
198
+ <xs:sequence>
199
+ <xs:element name="caption" type="StrucDoc.Caption" minOccurs="0"/>
200
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
201
+ <xs:element name="content" type="StrucDoc.Content"/>
202
+ <xs:element name="linkHtml" type="StrucDoc.LinkHtml"/>
203
+ <xs:element name="sub" type="StrucDoc.Sub"/>
204
+ <xs:element name="sup" type="StrucDoc.Sup"/>
205
+ <xs:element name="br" type="StrucDoc.Br"/>
206
+ <xs:element name="footnote" type="StrucDoc.Footnote"/>
207
+ <xs:element name="footnoteRef" type="StrucDoc.FootnoteRef"/>
208
+ <xs:element name="renderMultiMedia" type="StrucDoc.RenderMultiMedia"/>
209
+ <xs:element name="paragraph" type="StrucDoc.Paragraph"/>
210
+ <xs:element name="list" type="StrucDoc.List"/>
211
+ <xs:element name="table" type="StrucDoc.Table"/>
212
+ </xs:choice>
213
+ </xs:sequence>
214
+ <xs:attribute name="ID" type="xs:ID"/>
215
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
216
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
217
+ </xs:complexType>
218
+ <xs:complexType name="StrucDoc.LinkHtml" mixed="true">
219
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
220
+ <xs:element name="footnote" type="StrucDoc.Footnote"/>
221
+ <xs:element name="footnoteRef" type="StrucDoc.FootnoteRef"/>
222
+ </xs:choice>
223
+ <xs:attribute name="name" type="xs:string"/>
224
+ <xs:attribute name="href" type="xs:string"/>
225
+ <xs:attribute name="rel" type="xs:string"/>
226
+ <xs:attribute name="rev" type="xs:string"/>
227
+ <xs:attribute name="title" type="xs:string"/>
228
+ <xs:attribute name="ID" type="xs:ID"/>
229
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
230
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
231
+ </xs:complexType>
232
+ <xs:complexType name="StrucDoc.List">
233
+ <xs:sequence>
234
+ <xs:element name="caption" type="StrucDoc.Caption" minOccurs="0"/>
235
+ <xs:element name="item" type="StrucDoc.Item" maxOccurs="unbounded"/>
236
+ </xs:sequence>
237
+ <xs:attribute name="ID" type="xs:ID"/>
238
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
239
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
240
+ <xs:attribute name="listType" default="unordered">
241
+ <xs:simpleType>
242
+ <xs:restriction base="xs:NMTOKEN">
243
+ <xs:enumeration value="ordered"/>
244
+ <xs:enumeration value="unordered"/>
245
+ </xs:restriction>
246
+ </xs:simpleType>
247
+ </xs:attribute>
248
+ </xs:complexType>
249
+ <xs:complexType name="StrucDoc.Paragraph" mixed="true">
250
+ <xs:sequence>
251
+ <xs:element name="caption" type="StrucDoc.Caption" minOccurs="0"/>
252
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
253
+ <xs:element name="content" type="StrucDoc.Content"/>
254
+ <xs:element name="linkHtml" type="StrucDoc.LinkHtml"/>
255
+ <xs:element name="sub" type="StrucDoc.Sub"/>
256
+ <xs:element name="sup" type="StrucDoc.Sup"/>
257
+ <xs:element name="br" type="StrucDoc.Br"/>
258
+ <xs:element name="footnote" type="StrucDoc.Footnote"/>
259
+ <xs:element name="footnoteRef" type="StrucDoc.FootnoteRef"/>
260
+ <xs:element name="renderMultiMedia" type="StrucDoc.RenderMultiMedia"/>
261
+ </xs:choice>
262
+ </xs:sequence>
263
+ <xs:attribute name="ID" type="xs:ID"/>
264
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
265
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
266
+ </xs:complexType>
267
+ <xs:complexType name="StrucDoc.RenderMultiMedia">
268
+ <xs:sequence>
269
+ <xs:element name="caption" type="StrucDoc.Caption" minOccurs="0"/>
270
+ </xs:sequence>
271
+ <xs:attribute name="referencedObject" type="xs:IDREFS" use="required"/>
272
+ <xs:attribute name="ID" type="xs:ID"/>
273
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
274
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
275
+ </xs:complexType>
276
+ <xs:complexType name="StrucDoc.Sub" mixed="true"/>
277
+ <xs:complexType name="StrucDoc.Sup" mixed="true"/>
278
+ <xs:complexType name="StrucDoc.Table">
279
+ <xs:sequence>
280
+ <xs:element name="caption" type="StrucDoc.Caption" minOccurs="0"/>
281
+ <xs:choice>
282
+ <xs:element name="col" type="StrucDoc.Col" minOccurs="0" maxOccurs="unbounded"/>
283
+ <xs:element name="colgroup" type="StrucDoc.Colgroup" minOccurs="0" maxOccurs="unbounded"/>
284
+ </xs:choice>
285
+ <xs:element name="thead" type="StrucDoc.Thead" minOccurs="0"/>
286
+ <xs:element name="tfoot" type="StrucDoc.Tfoot" minOccurs="0"/>
287
+ <xs:element name="tbody" type="StrucDoc.Tbody" maxOccurs="unbounded"/>
288
+ </xs:sequence>
289
+ <xs:attribute name="ID" type="xs:ID"/>
290
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
291
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
292
+ <xs:attribute name="summary" type="xs:string"/>
293
+ <xs:attribute name="width" type="xs:string"/>
294
+ <xs:attribute name="border" type="xs:string"/>
295
+ <xs:attribute name="frame">
296
+ <xs:simpleType>
297
+ <xs:restriction base="xs:NMTOKEN">
298
+ <xs:enumeration value="void"/>
299
+ <xs:enumeration value="above"/>
300
+ <xs:enumeration value="below"/>
301
+ <xs:enumeration value="hsides"/>
302
+ <xs:enumeration value="lhs"/>
303
+ <xs:enumeration value="rhs"/>
304
+ <xs:enumeration value="vsides"/>
305
+ <xs:enumeration value="box"/>
306
+ <xs:enumeration value="border"/>
307
+ </xs:restriction>
308
+ </xs:simpleType>
309
+ </xs:attribute>
310
+ <xs:attribute name="rules">
311
+ <xs:simpleType>
312
+ <xs:restriction base="xs:NMTOKEN">
313
+ <xs:enumeration value="none"/>
314
+ <xs:enumeration value="groups"/>
315
+ <xs:enumeration value="rows"/>
316
+ <xs:enumeration value="cols"/>
317
+ <xs:enumeration value="all"/>
318
+ </xs:restriction>
319
+ </xs:simpleType>
320
+ </xs:attribute>
321
+ <xs:attribute name="cellspacing" type="xs:string"/>
322
+ <xs:attribute name="cellpadding" type="xs:string"/>
323
+ </xs:complexType>
324
+ <xs:complexType name="StrucDoc.Tbody">
325
+ <xs:sequence maxOccurs="unbounded">
326
+ <xs:element name="tr" type="StrucDoc.Tr"/>
327
+ </xs:sequence>
328
+ <xs:attribute name="ID" type="xs:ID"/>
329
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
330
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
331
+ <xs:attribute name="align">
332
+ <xs:simpleType>
333
+ <xs:restriction base="xs:NMTOKEN">
334
+ <xs:enumeration value="left"/>
335
+ <xs:enumeration value="center"/>
336
+ <xs:enumeration value="right"/>
337
+ <xs:enumeration value="justify"/>
338
+ <xs:enumeration value="char"/>
339
+ </xs:restriction>
340
+ </xs:simpleType>
341
+ </xs:attribute>
342
+ <xs:attribute name="char" type="xs:string"/>
343
+ <xs:attribute name="charoff" type="xs:string"/>
344
+ <xs:attribute name="valign">
345
+ <xs:simpleType>
346
+ <xs:restriction base="xs:NMTOKEN">
347
+ <xs:enumeration value="top"/>
348
+ <xs:enumeration value="middle"/>
349
+ <xs:enumeration value="bottom"/>
350
+ <xs:enumeration value="baseline"/>
351
+ </xs:restriction>
352
+ </xs:simpleType>
353
+ </xs:attribute>
354
+ </xs:complexType>
355
+ <xs:complexType name="StrucDoc.Td" mixed="true">
356
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
357
+ <xs:element name="content" type="StrucDoc.Content"/>
358
+ <xs:element name="linkHtml" type="StrucDoc.LinkHtml"/>
359
+ <xs:element name="sub" type="StrucDoc.Sub"/>
360
+ <xs:element name="sup" type="StrucDoc.Sup"/>
361
+ <xs:element name="br" type="StrucDoc.Br"/>
362
+ <xs:element name="footnote" type="StrucDoc.Footnote"/>
363
+ <xs:element name="footnoteRef" type="StrucDoc.FootnoteRef"/>
364
+ <xs:element name="renderMultiMedia" type="StrucDoc.RenderMultiMedia"/>
365
+ <xs:element name="paragraph" type="StrucDoc.Paragraph"/>
366
+ <xs:element name="list" type="StrucDoc.List"/>
367
+ </xs:choice>
368
+ <xs:attribute name="ID" type="xs:ID"/>
369
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
370
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
371
+ <xs:attribute name="abbr" type="xs:string"/>
372
+ <xs:attribute name="axis" type="xs:string"/>
373
+ <xs:attribute name="headers" type="xs:IDREFS"/>
374
+ <xs:attribute name="scope">
375
+ <xs:simpleType>
376
+ <xs:restriction base="xs:NMTOKEN">
377
+ <xs:enumeration value="row"/>
378
+ <xs:enumeration value="col"/>
379
+ <xs:enumeration value="rowgroup"/>
380
+ <xs:enumeration value="colgroup"/>
381
+ </xs:restriction>
382
+ </xs:simpleType>
383
+ </xs:attribute>
384
+ <xs:attribute name="rowspan" type="xs:string" default="1"/>
385
+ <xs:attribute name="colspan" type="xs:string" default="1"/>
386
+ <xs:attribute name="align">
387
+ <xs:simpleType>
388
+ <xs:restriction base="xs:NMTOKEN">
389
+ <xs:enumeration value="left"/>
390
+ <xs:enumeration value="center"/>
391
+ <xs:enumeration value="right"/>
392
+ <xs:enumeration value="justify"/>
393
+ <xs:enumeration value="char"/>
394
+ </xs:restriction>
395
+ </xs:simpleType>
396
+ </xs:attribute>
397
+ <xs:attribute name="char" type="xs:string"/>
398
+ <xs:attribute name="charoff" type="xs:string"/>
399
+ <xs:attribute name="valign">
400
+ <xs:simpleType>
401
+ <xs:restriction base="xs:NMTOKEN">
402
+ <xs:enumeration value="top"/>
403
+ <xs:enumeration value="middle"/>
404
+ <xs:enumeration value="bottom"/>
405
+ <xs:enumeration value="baseline"/>
406
+ </xs:restriction>
407
+ </xs:simpleType>
408
+ </xs:attribute>
409
+ </xs:complexType>
410
+ <xs:complexType name="StrucDoc.Tfoot">
411
+ <xs:sequence maxOccurs="unbounded">
412
+ <xs:element name="tr" type="StrucDoc.Tr"/>
413
+ </xs:sequence>
414
+ <xs:attribute name="ID" type="xs:ID"/>
415
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
416
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
417
+ <xs:attribute name="align">
418
+ <xs:simpleType>
419
+ <xs:restriction base="xs:NMTOKEN">
420
+ <xs:enumeration value="left"/>
421
+ <xs:enumeration value="center"/>
422
+ <xs:enumeration value="right"/>
423
+ <xs:enumeration value="justify"/>
424
+ <xs:enumeration value="char"/>
425
+ </xs:restriction>
426
+ </xs:simpleType>
427
+ </xs:attribute>
428
+ <xs:attribute name="char" type="xs:string"/>
429
+ <xs:attribute name="charoff" type="xs:string"/>
430
+ <xs:attribute name="valign">
431
+ <xs:simpleType>
432
+ <xs:restriction base="xs:NMTOKEN">
433
+ <xs:enumeration value="top"/>
434
+ <xs:enumeration value="middle"/>
435
+ <xs:enumeration value="bottom"/>
436
+ <xs:enumeration value="baseline"/>
437
+ </xs:restriction>
438
+ </xs:simpleType>
439
+ </xs:attribute>
440
+ </xs:complexType>
441
+ <xs:complexType name="StrucDoc.Th" mixed="true">
442
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
443
+ <xs:element name="content" type="StrucDoc.Content"/>
444
+ <xs:element name="linkHtml" type="StrucDoc.LinkHtml"/>
445
+ <xs:element name="sub" type="StrucDoc.Sub"/>
446
+ <xs:element name="sup" type="StrucDoc.Sup"/>
447
+ <xs:element name="br" type="StrucDoc.Br"/>
448
+ <xs:element name="footnote" type="StrucDoc.Footnote"/>
449
+ <xs:element name="footnoteRef" type="StrucDoc.FootnoteRef"/>
450
+ <xs:element name="renderMultiMedia" type="StrucDoc.RenderMultiMedia"/>
451
+ </xs:choice>
452
+ <xs:attribute name="ID" type="xs:ID"/>
453
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
454
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
455
+ <xs:attribute name="abbr" type="xs:string"/>
456
+ <xs:attribute name="axis" type="xs:string"/>
457
+ <xs:attribute name="headers" type="xs:IDREFS"/>
458
+ <xs:attribute name="scope">
459
+ <xs:simpleType>
460
+ <xs:restriction base="xs:NMTOKEN">
461
+ <xs:enumeration value="row"/>
462
+ <xs:enumeration value="col"/>
463
+ <xs:enumeration value="rowgroup"/>
464
+ <xs:enumeration value="colgroup"/>
465
+ </xs:restriction>
466
+ </xs:simpleType>
467
+ </xs:attribute>
468
+ <xs:attribute name="rowspan" type="xs:string" default="1"/>
469
+ <xs:attribute name="colspan" type="xs:string" default="1"/>
470
+ <xs:attribute name="align">
471
+ <xs:simpleType>
472
+ <xs:restriction base="xs:NMTOKEN">
473
+ <xs:enumeration value="left"/>
474
+ <xs:enumeration value="center"/>
475
+ <xs:enumeration value="right"/>
476
+ <xs:enumeration value="justify"/>
477
+ <xs:enumeration value="char"/>
478
+ </xs:restriction>
479
+ </xs:simpleType>
480
+ </xs:attribute>
481
+ <xs:attribute name="char" type="xs:string"/>
482
+ <xs:attribute name="charoff" type="xs:string"/>
483
+ <xs:attribute name="valign">
484
+ <xs:simpleType>
485
+ <xs:restriction base="xs:NMTOKEN">
486
+ <xs:enumeration value="top"/>
487
+ <xs:enumeration value="middle"/>
488
+ <xs:enumeration value="bottom"/>
489
+ <xs:enumeration value="baseline"/>
490
+ </xs:restriction>
491
+ </xs:simpleType>
492
+ </xs:attribute>
493
+ </xs:complexType>
494
+ <xs:complexType name="StrucDoc.Thead">
495
+ <xs:sequence maxOccurs="unbounded">
496
+ <xs:element name="tr" type="StrucDoc.Tr"/>
497
+ </xs:sequence>
498
+ <xs:attribute name="ID" type="xs:ID"/>
499
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
500
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
501
+ <xs:attribute name="align">
502
+ <xs:simpleType>
503
+ <xs:restriction base="xs:NMTOKEN">
504
+ <xs:enumeration value="left"/>
505
+ <xs:enumeration value="center"/>
506
+ <xs:enumeration value="right"/>
507
+ <xs:enumeration value="justify"/>
508
+ <xs:enumeration value="char"/>
509
+ </xs:restriction>
510
+ </xs:simpleType>
511
+ </xs:attribute>
512
+ <xs:attribute name="char" type="xs:string"/>
513
+ <xs:attribute name="charoff" type="xs:string"/>
514
+ <xs:attribute name="valign">
515
+ <xs:simpleType>
516
+ <xs:restriction base="xs:NMTOKEN">
517
+ <xs:enumeration value="top"/>
518
+ <xs:enumeration value="middle"/>
519
+ <xs:enumeration value="bottom"/>
520
+ <xs:enumeration value="baseline"/>
521
+ </xs:restriction>
522
+ </xs:simpleType>
523
+ </xs:attribute>
524
+ </xs:complexType>
525
+ <xs:complexType name="StrucDoc.Tr">
526
+ <xs:choice maxOccurs="unbounded">
527
+ <xs:element name="th" type="StrucDoc.Th"/>
528
+ <xs:element name="td" type="StrucDoc.Td"/>
529
+ </xs:choice>
530
+ <xs:attribute name="ID" type="xs:ID"/>
531
+ <xs:attribute name="language" type="xs:NMTOKEN"/>
532
+ <xs:attribute name="styleCode" type="xs:NMTOKENS"/>
533
+ <xs:attribute name="align">
534
+ <xs:simpleType>
535
+ <xs:restriction base="xs:NMTOKEN">
536
+ <xs:enumeration value="left"/>
537
+ <xs:enumeration value="center"/>
538
+ <xs:enumeration value="right"/>
539
+ <xs:enumeration value="justify"/>
540
+ <xs:enumeration value="char"/>
541
+ </xs:restriction>
542
+ </xs:simpleType>
543
+ </xs:attribute>
544
+ <xs:attribute name="char" type="xs:string"/>
545
+ <xs:attribute name="charoff" type="xs:string"/>
546
+ <xs:attribute name="valign">
547
+ <xs:simpleType>
548
+ <xs:restriction base="xs:NMTOKEN">
549
+ <xs:enumeration value="top"/>
550
+ <xs:enumeration value="middle"/>
551
+ <xs:enumeration value="bottom"/>
552
+ <xs:enumeration value="baseline"/>
553
+ </xs:restriction>
554
+ </xs:simpleType>
555
+ </xs:attribute>
556
+ </xs:complexType>
557
+ </xs:schema>