IMS Final Release

# IMS Question and Test Interoperability (QTI): HTML5 Information Model and XSD Binding Version 2.2.1

# IMS Final Release
Version 1.0

Date Issued: | 1st August, 2016
Latest version: | http://www.imsglobal.org/question/

IPR and Distribution Notices

Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.

IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS's procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.

Copyright © 2016 IMS Global Learning Consortium. All Rights Reserved.

Use of this specification to develop products or services is governed by the license with IMS found on the IMS website: http://www.imsglobal.org/speclicense.html.

Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.

The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.

THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.

Public contributions, comments and questions can be posted here: www.imsglobal.org/forums/ims-glc-public-forums-and-resources.

© 2016 IMS Global Learning Consortium, Inc.
All Rights Reserved.

Trademark information: http://www.imsglobal.org/copyright.html

Document Name: IMS Question and Test Interoperability (QTI): HTML5 Information Model and XSD Binding v2.2.1

Revision: 1st August, 2016

toc | top

# Table of Contents

1. Introduction

1.1. QTI HTML5 Overview

1.2. Scope and Context

1.3. Structure of this Document

1.4. Nomenclature

1.5. References

2. Information Model

2.1. Information Model Overview

2.2. Root Attribute Descriptions

2.2.1 "article" Root Attribute Description

2.2.2 "aside" Root Attribute Description

2.2.3 "audio" Root Attribute Description

2.2.4 "bdi" Root Attribute Description

2.2.5 "figcaption" Root Attribute Description

2.2.6 "figure" Root Attribute Description

2.2.7 "footer" Root Attribute Description

2.2.8 "header" Root Attribute Description

2.2.9 "label" Root Attribute Description

2.2.10 "nav" Root Attribute Description

2.2.11 "rb" Root Attribute Description

2.2.12 "rp" Root Attribute Description

2.2.13 "rt" Root Attribute Description

2.2.14 "rtc" Root Attribute Description

2.2.15 "ruby" Root Attribute Description

2.2.16 "section" Root Attribute Description

2.2.17 "source" Root Attribute Description

2.2.18 "track" Root Attribute Description

2.2.19 "video" Root Attribute Description

2.3. Root Class Descriptions

2.3.1 "Article" Root Class Description

2.3.1.1 "flowGroup" Attribute Description

2.3.2 "Aside" Root Class Description

2.3.2.1 "flowGroup" Attribute Description

2.3.3 "Audio" Root Class Description

2.3.3.1 "src" Characteristic Description

2.3.3.2 "crossorigin" Characteristic Description

2.3.3.3 "preload" Characteristic Description

2.3.3.4 "autoplay" Characteristic Description

2.3.3.5 "mediagroup" Characteristic Description

2.3.3.6 "loop" Characteristic Description

2.3.3.7 "muted" Characteristic Description

2.3.3.8 "controls" Characteristic Description

2.3.3.9 "source" Attribute Description

2.3.3.10 "track" Attribute Description

2.3.4 "BDI" Root Class Description

2.3.4.1 "flowContentModel" Attribute Description

2.3.5 "FigCaption" Root Class Description

2.3.5.1 "flowGroup" Attribute Description

2.3.6 "Figure" Root Class Description

2.3.6.1 "figcaption" Attribute Description

2.3.6.2 "flowContentModel" Attribute Description

2.3.7 "Footer" Root Class Description

2.3.7.1 "flowGroup" Attribute Description

2.3.8 "Header" Root Class Description

2.3.8.1 "flowGroup" Attribute Description

2.3.9 "Label" Root Class Description

2.3.9.1 "flowGroup" Attribute Description

2.3.10 "Nav" Root Class Description

2.3.10.1 "flowGroup" Attribute Description

2.3.11 "RB" Root Class Description

2.3.11.1 "phrasingContentModel" Attribute Description

2.3.12 "RP" Root Class Description

2.3.12.1 "phrasingContentModel" Attribute Description

2.3.13 "RT" Root Class Description

2.3.13.1 "phrasingContentModel" Attribute Description

2.3.14 "RTC" Root Class Description

2.3.14.1 "phrasingContentModel" Attribute Description

2.3.14.2 "rt" Attribute Description

2.3.15 "Ruby" Root Class Description

2.3.15.1 "rubySelection" Attribute Description

2.3.16 "Section" Root Class Description

2.3.16.1 "flowGroup" Attribute Description

2.3.17 "Source" Root Class Description

2.3.17.1 "src" Characteristic Description

2.3.17.2 "type" Characteristic Description

2.3.18 "Track" Root Class Description

2.3.18.1 "kind" Characteristic Description

2.3.18.2 "src" Characteristic Description

2.3.18.3 "srclang" Characteristic Description

2.3.18.4 "default" Characteristic Description

2.3.19 "Video" Root Class Description

2.3.19.1 "src" Characteristic Description

2.3.19.2 "crossorigin" Characteristic Description

2.3.19.3 "preload" Characteristic Description

2.3.19.4 "autoplay" Characteristic Description

2.3.19.5 "mediagroup" Characteristic Description

2.3.19.6 "loop" Characteristic Description

2.3.19.7 "muted" Characteristic Description

2.3.19.8 "controls" Characteristic Description

2.3.19.9 "poster" Characteristic Description

2.3.19.10 "width" Characteristic Description

2.3.19.11 "height" Characteristic Description

2.3.19.12 "source" Attribute Description

2.3.19.13 "track" Attribute Description

2.4. Data Class Descriptions

2.4.1 "BaseHTML5" Class Description

2.4.1.1 "id" Characteristic Description

2.4.1.2 "language" Characteristic Description

2.4.1.3 "title" Characteristic Description

2.4.1.4 "label" Characteristic Description

2.4.1.5 "class" Characteristic Description

2.4.1.6 "dir" Characteristic Description

2.4.1.7 "role" Characteristic Description

2.4.1.8 "aria-controls" Characteristic Description

2.4.1.9 "aria-describedby" Characteristic Description

2.4.1.10 "aria-flowto" Characteristic Description

2.4.1.11 "aria-label" Characteristic Description

2.4.1.12 "aria-labelledby" Characteristic Description

2.4.1.13 "aria-level" Characteristic Description

2.4.1.14 "aria-live" Characteristic Description

2.4.1.15 "aria-orientation" Characteristic Description

2.4.1.16 "aria-owns" Characteristic Description

2.4.1.17 "dataExtension" Characteristic Description

2.5. Abstract Class Descriptions

2.5.1 "FlowContentModelHTML5" Class Description

2.5.1.1 "img" Attribute Description

2.5.1.2 "br" Attribute Description

2.5.1.3 "object" Attribute Description

2.5.1.4 "em" Attribute Description

2.5.1.5 "a" Attribute Description

2.5.1.6 "code" Attribute Description

2.5.1.7 "span" Attribute Description

2.5.1.8 "sub" Attribute Description

2.5.1.9 "acronym" Attribute Description

2.5.1.10 "big" Attribute Description

2.5.1.11 "tt" Attribute Description

2.5.1.12 "kbd" Attribute Description

2.5.1.13 "q" Attribute Description

2.5.1.14 "i" Attribute Description

2.5.1.15 "dfn" Attribute Description

2.5.1.16 "abbr" Attribute Description

2.5.1.17 "strong" Attribute Description

2.5.1.18 "sup" Attribute Description

2.5.1.19 "var" Attribute Description

2.5.1.20 "small" Attribute Description

2.5.1.21 "samp" Attribute Description

2.5.1.22 "b" Attribute Description

2.5.1.23 "cite" Attribute Description

2.5.1.24 "bdo" Attribute Description

2.5.1.25 "bdi" Attribute Description

2.5.1.26 "figure" Attribute Description

2.5.1.27 "audio" Attribute Description

2.5.1.28 "video" Attribute Description

2.5.1.29 "label" Attribute Description

2.5.1.30 "article" Attribute Description

2.5.1.31 "aside" Attribute Description

2.5.1.32 "footer" Attribute Description

2.5.1.33 "header" Attribute Description

2.5.1.34 "nav" Attribute Description

2.5.1.35 "section" Attribute Description

2.5.1.36 "pre" Attribute Description

2.5.1.37 "h1" Attribute Description

2.5.1.38 "h2" Attribute Description

2.5.1.39 "h3" Attribute Description

2.5.1.40 "h4" Attribute Description

2.5.1.41 "h5" Attribute Description

2.5.1.42 "h6" Attribute Description

2.5.1.43 "p" Attribute Description

2.5.1.44 "address" Attribute Description

2.5.1.45 "dl" Attribute Description

2.5.1.46 "ol" Attribute Description

2.5.1.47 "ul" Attribute Description

2.5.1.48 "hr" Attribute Description

2.5.1.49 "ssmlGroup" Attribute Description

2.5.1.50 "ruby" Attribute Description

2.5.2 "FlowGroupHTML5" Class Description

2.5.2.1 "math" Attribute Description

2.5.2.2 "math" Attribute Description

2.5.2.3 "include" Attribute Description

2.5.2.4 "flowContentModel" Attribute Description

2.5.3 "PhraseRBSelection" Class Description

2.5.3.1 "phrasingContentModel" Attribute Description

2.5.3.2 "rb" Attribute Description

2.5.4 "PhrasingContentModelHTML5" Class Description

2.5.4.1 "a" Attribute Description

2.5.4.2 "abbr" Attribute Description

2.5.4.3 "b" Attribute Description

2.5.4.4 "bdo" Attribute Description

2.5.4.5 "br" Attribute Description

2.5.4.6 "cite" Attribute Description

2.5.4.7 "code" Attribute Description

2.5.4.8 "dfn" Attribute Description

2.5.4.9 "em" Attribute Description

2.5.4.10 "i" Attribute Description

2.5.4.11 "img" Attribute Description

2.5.4.12 "kbd" Attribute Description

2.5.4.13 "object" Attribute Description

2.5.4.14 "q" Attribute Description

2.5.4.15 "samp" Attribute Description

2.5.4.16 "small" Attribute Description

2.5.4.17 "span" Attribute Description

2.5.4.18 "strong" Attribute Description

2.5.4.19 "sub" Attribute Description

2.5.4.20 "sup" Attribute Description

2.5.4.21 "var" Attribute Description

2.5.4.22 "audio" Attribute Description

2.5.4.23 "bdi" Attribute Description

2.5.4.24 "label" Attribute Description

2.5.4.25 "ruby" Attribute Description

2.5.4.26 "video" Attribute Description

2.5.5 "RPRTSelection" Class Description

2.5.5.1 "rp" Attribute Description

2.5.5.2 "rtrtcSelection" Attribute Description

2.5.6 "RTRTCSelection" Class Description

2.5.6.1 "rt" Attribute Description

2.5.6.2 "rtc" Attribute Description

2.5.7 "RubySelection" Class Description

2.5.7.1 "phraseSelection" Attribute Description

2.5.7.2 "rprtSelection" Attribute Description

2.5.8 "SSMLGroup" Class Description

2.5.8.1 "p" Attribute Description

2.5.8.2 "s" Attribute Description

2.5.8.3 "say-as" Attribute Description

2.5.8.4 "phoneme" Attribute Description

2.5.8.5 "sub" Attribute Description

2.5.8.6 "voice" Attribute Description

2.5.8.7 "emphasis" Attribute Description

2.5.8.8 "break" Attribute Description

2.5.8.9 "prosody" Attribute Description

2.5.8.10 "mark" Attribute Description

2.5.8.11 "audio" Attribute Description

2.5.8.12 "speak" Attribute Description

2.6. DerivedClass Descriptions

2.6.1 "AriaLevelInteger" Class Description

2.6.1.1 "minInclusive" Attribute Description

2.6.2 "BaseHTML5Empty" Class Description

2.6.2.1 "id" Characteristic Description

2.6.2.2 "language" Characteristic Description

2.6.2.3 "title" Characteristic Description

2.6.2.4 "label" Characteristic Description

2.6.2.5 "class" Characteristic Description

2.6.2.6 "dir" Characteristic Description

2.6.2.7 "role" Characteristic Description

2.6.2.8 "aria-controls" Characteristic Description

2.6.2.9 "aria-describedby" Characteristic Description

2.6.2.10 "aria-flowto" Characteristic Description

2.6.2.11 "aria-label" Characteristic Description

2.6.2.12 "aria-labelledby" Characteristic Description

2.6.2.13 "aria-level" Characteristic Description

2.6.2.14 "aria-live" Characteristic Description

2.6.2.15 "aria-orientation" Characteristic Description

2.6.2.16 "aria-owns" Characteristic Description

2.6.2.17 "dataExtension" Characteristic Description

2.6.3 "DataHTML5Extension" Class Description

2.6.3.1 "pattern" Attribute Description

2.6.4 "MimeType" Class Description

2.6.4.1 "pattern" Attribute Description

2.6.5 "URL" Class Description

2.6.6 "UniqueIdentifier" Class Description

2.7. Enumerated Vocabularies

2.7.1 "ARIALiveValue" Vocabulary Description

2.7.2 "ARIAOrientationValue" Vocabulary Description

2.7.3 "ARIARoleValue" Vocabulary Description

2.7.4 "CORSSettings" Vocabulary Description

2.7.5 "DirValue" Vocabulary Description

2.7.6 "KindValue" Vocabulary Description

2.7.7 "PreLoadValue" Vocabulary Description

2.8. List Class Descriptions

2.8.1 "StringList" Class Description

2.9. Imported Class Descriptions

2.9.1 "Include" Class Description

2.9.2 "MathML2" Class Description

2.9.3 "MathML3" Class Description

2.9.4 "QTIv2p2" Class Description

2.9.5 "SSMLv1p1" Class Description

3. XSD Binding

3.1. XSD Binding Overview

3.2. UML to XSD Mapping Rules

3.2.1 Root Attribute UML/XSD Mapping

3.2.2 Root Class UML/XSD Mapping

3.2.2.1 Article Root Class Mapping

3.2.2.2 Aside Root Class Mapping

3.2.2.3 Audio Root Class Mapping

3.2.2.4 BDI Root Class Mapping

3.2.2.5 FigCaption Root Class Mapping

3.2.2.6 Figure Root Class Mapping

3.2.2.7 Footer Root Class Mapping

3.2.2.8 Header Root Class Mapping

3.2.2.9 Label Root Class Mapping

3.2.2.10 Nav Root Class Mapping

3.2.2.11 RB Root Class Mapping

3.2.2.12 RP Root Class Mapping

3.2.2.13 RT Root Class Mapping

3.2.2.14 RTC Root Class Mapping

3.2.2.15 Ruby Root Class Mapping

3.2.2.16 Section Root Class Mapping

3.2.2.17 Source Root Class Mapping

3.2.2.18 Track Root Class Mapping

3.2.2.19 Video Root Class Mapping

3.2.3 Class UML/XSD Mapping

3.2.3.1 BaseHTML5 Class Mapping

3.2.4 Derived Class UML/XSD Mapping

3.2.4.1 AriaLevelInteger Class Mapping

3.2.4.2 BaseHTML5Empty Class Mapping

3.2.4.3 DataHTML5Extension Class Mapping

3.2.4.4 MimeType Class Mapping

3.2.4.5 URL Class Mapping

3.2.4.6 UniqueIdentifier Class Mapping

3.2.5 Enumerated Class UML/XSD Mapping

3.2.6 Enumerated List Class UML/XSD Mapping

3.2.7 List Class UML/XSD Mapping

3.2.8 Union Class UML/XSD Mapping

3.2.9 Primitive Type UML/XSD Mapping

3.3. XSD Files and Namespaces

3.3.1 Target Namespace Details

3.3.2 Imported Namespace Details

3.3.3 Implicit Namespace Details

3.4. Description of the XSD

3.4.1 Root Element Descriptions

3.4.1.1 "article" Root Element Description

3.4.1.2 "aside" Root Element Description

3.4.1.3 "audio" Root Element Description

3.4.1.4 "bdi" Root Element Description

3.4.1.5 "figcaption" Root Element Description

3.4.1.6 "figure" Root Element Description

3.4.1.7 "footer" Root Element Description

3.4.1.8 "header" Root Element Description

3.4.1.9 "label" Root Element Description

3.4.1.10 "nav" Root Element Description

3.4.1.11 "rb" Root Element Description

3.4.1.12 "rp" Root Element Description

3.4.1.13 "rt" Root Element Description

3.4.1.14 "rtc" Root Element Description

3.4.1.15 "ruby" Root Element Description

3.4.1.16 "section" Root Element Description

3.4.1.17 "source" Root Element Description

3.4.1.18 "track" Root Element Description

3.4.1.19 "video" Root Element Description

3.4.2 Global Element Descriptions

3.4.2.1 "qti:a" Global Element Description

3.4.2.2 "qti:abbr" Global Element Description

3.4.2.3 "qti:acronym" Global Element Description

3.4.2.4 "qti:address" Global Element Description

3.4.2.5 "ssml11:audio" Global Element Description

3.4.2.6 "qti:b" Global Element Description

3.4.2.7 "qti:bdo" Global Element Description

3.4.2.8 "qti:big" Global Element Description

3.4.2.9 "qti:br" Global Element Description

3.4.2.10 "ssml11:break" Global Element Description

3.4.2.11 "qti:cite" Global Element Description

3.4.2.12 "qti:code" Global Element Description

3.4.2.13 "qti:dfn" Global Element Description

3.4.2.14 "qti:dl" Global Element Description

3.4.2.15 "qti:em" Global Element Description

3.4.2.16 "ssml11:emphasis" Global Element Description

3.4.2.17 "qti:h1" Global Element Description

3.4.2.18 "qti:h2" Global Element Description

3.4.2.19 "qti:h3" Global Element Description

3.4.2.20 "qti:h4" Global Element Description

3.4.2.21 "qti:h5" Global Element Description

3.4.2.22 "qti:h6" Global Element Description

3.4.2.23 "qti:hr" Global Element Description

3.4.2.24 "qti:i" Global Element Description

3.4.2.25 "qti:img" Global Element Description

3.4.2.26 "xi:include" Global Element Description

3.4.2.27 "qti:kbd" Global Element Description

3.4.2.28 "ssml11:mark" Global Element Description

3.4.2.29 "m2:math" Global Element Description

3.4.2.30 "m3:math" Global Element Description

3.4.2.31 "qti:object" Global Element Description

3.4.2.32 "qti:ol" Global Element Description

3.4.2.33 "qti:p" Global Element Description

3.4.2.34 "ssml11:p" Global Element Description

3.4.2.35 "ssml11:phoneme" Global Element Description

3.4.2.36 "qti:pre" Global Element Description

3.4.2.37 "ssml11:prosody" Global Element Description

3.4.2.38 "qti:q" Global Element Description

3.4.2.39 "ssml11:s" Global Element Description

3.4.2.40 "qti:samp" Global Element Description

3.4.2.41 "ssml11:say-as" Global Element Description

3.4.2.42 "qti:small" Global Element Description

3.4.2.43 "qti:span" Global Element Description

3.4.2.44 "ssml11:speak" Global Element Description

3.4.2.45 "qti:strong" Global Element Description

3.4.2.46 "qti:sub" Global Element Description

3.4.2.47 "ssml11:sub" Global Element Description

3.4.2.48 "qti:sup" Global Element Description

3.4.2.49 "qti:tt" Global Element Description

3.4.2.50 "qti:ul" Global Element Description

3.4.2.51 "qti:var" Global Element Description

3.4.2.52 "ssml11:voice" Global Element Description

3.4.3 Attribute Group Descriptions

3.4.3.1 "aria-controls.BaseHTML5.Attr" Attribute Description

3.4.3.2 "aria-controls.BaseHTML5Empty.Attr" Attribute Description

3.4.3.3 "aria-describedby.BaseHTML5.Attr" Attribute Description

3.4.3.4 "aria-describedby.BaseHTML5Empty.Attr" Attribute Description

3.4.3.5 "aria-flowto.BaseHTML5.Attr" Attribute Description

3.4.3.6 "aria-flowto.BaseHTML5Empty.Attr" Attribute Description

3.4.3.7 "aria-label.BaseHTML5.Attr" Attribute Description

3.4.3.8 "aria-label.BaseHTML5Empty.Attr" Attribute Description

3.4.3.9 "aria-labelledby.BaseHTML5.Attr" Attribute Description

3.4.3.10 "aria-labelledby.BaseHTML5Empty.Attr" Attribute Description

3.4.3.11 "aria-level.BaseHTML5.Attr" Attribute Description

3.4.3.12 "aria-level.BaseHTML5Empty.Attr" Attribute Description

3.4.3.13 "aria-live.BaseHTML5.Attr" Attribute Description

3.4.3.14 "aria-live.BaseHTML5Empty.Attr" Attribute Description

3.4.3.15 "aria-orientation.BaseHTML5.Attr" Attribute Description

3.4.3.16 "aria-orientation.BaseHTML5Empty.Attr" Attribute Description

3.4.3.17 "aria-owns.BaseHTML5.Attr" Attribute Description

3.4.3.18 "aria-owns.BaseHTML5Empty.Attr" Attribute Description

3.4.3.19 "autoplay.Audio.Attr" Attribute Description

3.4.3.20 "autoplay.Video.Attr" Attribute Description

3.4.3.21 "class.BaseHTML5.Attr" Attribute Description

3.4.3.22 "class.BaseHTML5Empty.Attr" Attribute Description

3.4.3.23 "controls.Audio.Attr" Attribute Description

3.4.3.24 "controls.Video.Attr" Attribute Description

3.4.3.25 "crossorigin.Audio.Attr" Attribute Description

3.4.3.26 "crossorigin.Video.Attr" Attribute Description

3.4.3.27 "dataExtension.BaseHTML5.Attr" Attribute Description

3.4.3.28 "dataExtension.BaseHTML5Empty.Attr" Attribute Description

3.4.3.29 "default.Track.Attr" Attribute Description

3.4.3.30 "dir.BaseHTML5.Attr" Attribute Description

3.4.3.31 "dir.BaseHTML5Empty.Attr" Attribute Description

3.4.3.32 "height.Video.Attr" Attribute Description

3.4.3.33 "id.BaseHTML5.Attr" Attribute Description

3.4.3.34 "id.BaseHTML5Empty.Attr" Attribute Description

3.4.3.35 "kind.Track.Attr" Attribute Description

3.4.3.36 "label.BaseHTML5.Attr" Attribute Description

3.4.3.37 "label.BaseHTML5Empty.Attr" Attribute Description

3.4.3.38 "language.BaseHTML5.Attr" Attribute Description

3.4.3.39 "language.BaseHTML5Empty.Attr" Attribute Description

3.4.3.40 "loop.Audio.Attr" Attribute Description

3.4.3.41 "loop.Video.Attr" Attribute Description

3.4.3.42 "mediagroup.Audio.Attr" Attribute Description

3.4.3.43 "mediagroup.Video.Attr" Attribute Description

3.4.3.44 "muted.Audio.Attr" Attribute Description

3.4.3.45 "muted.Video.Attr" Attribute Description

3.4.3.46 "poster.Video.Attr" Attribute Description

3.4.3.47 "preload.Audio.Attr" Attribute Description

3.4.3.48 "preload.Video.Attr" Attribute Description

3.4.3.49 "role.BaseHTML5.Attr" Attribute Description

3.4.3.50 "role.BaseHTML5Empty.Attr" Attribute Description

3.4.3.51 "src.Audio.Attr" Attribute Description

3.4.3.52 "src.Source.Attr" Attribute Description

3.4.3.53 "src.Track.Attr" Attribute Description

3.4.3.54 "src.Video.Attr" Attribute Description

3.4.3.55 "srclang.Track.Attr" Attribute Description

3.4.3.56 "title.BaseHTML5.Attr" Attribute Description

3.4.3.57 "title.BaseHTML5Empty.Attr" Attribute Description

3.4.3.58 "type.Source.Attr" Attribute Description

3.4.3.59 "width.Video.Attr" Attribute Description

3.4.4 Root Complex Type Descriptions

3.4.4.1 Article.Type Root Complex Type Description

3.4.4.2 Aside.Type Root Complex Type Description

3.4.4.3 Audio.Type Root Complex Type Description

3.4.4.4 BDI.Type Root Complex Type Description

3.4.4.5 FigCaption.Type Root Complex Type Description

3.4.4.6 Figure.Type Root Complex Type Description

3.4.4.7 Footer.Type Root Complex Type Description

3.4.4.8 Header.Type Root Complex Type Description

3.4.4.9 Label.Type Root Complex Type Description

3.4.4.10 Nav.Type Root Complex Type Description

3.4.4.11 RB.Type Root Complex Type Description

3.4.4.12 RP.Type Root Complex Type Description

3.4.4.13 RT.Type Root Complex Type Description

3.4.4.14 RTC.Type Root Complex Type Description

3.4.4.15 Ruby.Type Root Complex Type Description

3.4.4.16 Section.Type Root Complex Type Description

3.4.4.17 Source.Type Root Complex Type Description

3.4.4.18 Track.Type Root Complex Type Description

3.4.4.19 Video.Type Root Complex Type Description

3.4.5 Core Complex Type Descriptions

3.4.5.1 BaseHTML5.Type Core Complex Type Description

3.4.6 Derived Complex Type Descriptions

3.4.6.1 BaseHTML5Empty.Type Derived Complex Type Description

3.4.7 Simple Type Descriptions

3.4.7.1 AriaLevelInteger.Type Simple Type Description

3.4.7.2 MimeType.Type Simple Type Description

3.4.7.3 StringList.Type Simple Type Description

3.4.7.4 URL.Type Simple Type Description

3.4.7.5 UniqueIdentifier.Type Simple Type Description

3.5. The Schematron Rules

3.5.1 Rules Imposing the Unordered Class Definition

3.5.1.1 Figure Unordered Class Rules

3.5.1.2 Ruby [Unordered] Class Rules

3.5.2 The Constrained Namespace Extension Rule Definitions

3.5.3 The Explicit Rule Definitions

3.5.3.1 RULE_SET_GENERAL

4. Extending and Profiling the Data Model

4.1. Extending the Data Model

4.2. Profiling the Data Model

Appendix A Modelling Concepts and Terms

A1 Data Model Descriptions

A1.1 Data Model Diagrams

A1.2 Class Descriptions

A1.3 Attribute and Characteristic Descriptions

A1.4 Enumerated Vocabulary Descriptions

A1.5 External Vocabulary Descriptions

A1.6 Import Class Descriptions

Appendix B XSD Binding Terms

B1 XSD Binding Description Terms

B1.1 UML/XSD Attribute Mapping Table Definition

B1.2 UML/XSD Class Mapping Table Definition

B1.3 UML/XSD Enumerated and Enumerated List Class Mapping Table Definition

B1.4 UML/XSD List and Union Mapping Tables Definition

B1.5 UML/XSD Primitive Types Mapping Table Definition

B1.6 XSD Description for an Element

B1.7 XSD Description for a Complex Type

B1.8 XSD Description for a Simple Type

B1.9 XSD Description for an Attribute Group

B1.10 XSD Description for an Attribute

B1.11 VDEX Description for an External Vocabulary

Appendix C XSD Listings

C1 QTI HTML5 XSD Listing

About this Document

List of Contributors

Revision History

toc | top

# List of Figures

Figure 2.3.1 Article class definitions

Figure 2.3.2 Aside class definitions

Figure 2.3.3 Audio class definitions

Figure 2.3.4 BDI class definitions

Figure 2.3.5 FigCaption class definitions

Figure 2.3.6 Figure class definitions

Figure 2.3.7 Footer class definitions

Figure 2.3.8 Header class definitions

Figure 2.3.9 Label class definitions

Figure 2.3.10 Nav class definitions

Figure 2.3.11 RB class definitions

Figure 2.3.12 RP class definitions

Figure 2.3.13 RT class definitions

Figure 2.3.14 RTC class definitions

Figure 2.3.15 Ruby class definitions

Figure 2.3.16 Section class definitions

Figure 2.3.17 Source class definitions

Figure 2.3.18 Track class definitions

Figure 2.3.19 Video class definitions

Figure 2.4.1 BaseHTML5 class definitions

Figure 2.5.1 FlowContentModelHTML5 class definitions

Figure 2.5.2 FlowGroupHTML5 class definitions

Figure 2.5.3 PhraseRBSelection class definitions

Figure 2.5.4 PhrasingContentModelHTML5 class definitions

Figure 2.5.5 RPRTSelection class definitions

Figure 2.5.6 RTRTCSelection class definitions

Figure 2.5.7 RubySelection class definitions

Figure 2.5.8 SSMLGroup class definitions

Figure 2.6.1 AriaLevelInteger class definitions

Figure 2.6.2 BaseHTML5Empty class definitions

Figure 2.6.3 DataHTML5Extension class definitions

Figure 2.6.4 MimeType class definitions

Figure 2.6.5 URL class definitions

Figure 2.6.6 UniqueIdentifier class definitions

Figure 2.7.1 ARIALiveValue class definitions

Figure 2.7.2 ARIAOrientationValue class definitions

Figure 2.7.3 ARIARoleValue class definitions

Figure 2.7.4 CORSSettings class definitions

Figure 2.7.5 DirValue class definitions

Figure 2.7.6 KindValue class definitions

Figure 2.7.7 PreLoadValue class definitions

Figure 2.8.1 StringList class definitions

Figure 3.4.1.1 XSD Description for the "article" Root Element

Figure 3.4.1.2 XSD Description for the "aside" Root Element

Figure 3.4.1.3 XSD Description for the "audio" Root Element

Figure 3.4.1.4 XSD Description for the "bdi" Root Element

Figure 3.4.1.5 XSD Description for the "figcaption" Root Element

Figure 3.4.1.6 XSD Description for the "figure" Root Element

Figure 3.4.1.7 XSD Description for the "footer" Root Element

Figure 3.4.1.8 XSD Description for the "header" Root Element

Figure 3.4.1.9 XSD Description for the "label" Root Element

Figure 3.4.1.10 XSD Description for the "nav" Root Element

Figure 3.4.1.11 XSD Description for the "rb" Root Element

Figure 3.4.1.12 XSD Description for the "rp" Root Element

Figure 3.4.1.13 XSD Description for the "rt" Root Element

Figure 3.4.1.14 XSD Description for the "rtc" Root Element

Figure 3.4.1.15 XSD Description for the "ruby" Root Element

Figure 3.4.1.16 XSD Description for the "section" Root Element

Figure 3.4.1.17 XSD Description for the "source" Root Element

Figure 3.4.1.18 XSD Description for the "track" Root Element

Figure 3.4.1.19 XSD Description for the "video" Root Element

Figure 3.4.2.1 XSD Description for the "qti:a" Global Element

Figure 3.4.2.2 XSD Description for the "qti:abbr" Global Element

Figure 3.4.2.3 XSD Description for the "qti:acronym" Global Element

Figure 3.4.2.4 XSD Description for the "qti:address" Global Element

Figure 3.4.2.5 XSD Description for the "ssml11:audio" Global Element

Figure 3.4.2.6 XSD Description for the "qti:b" Global Element

Figure 3.4.2.7 XSD Description for the "qti:bdo" Global Element

Figure 3.4.2.8 XSD Description for the "qti:big" Global Element

Figure 3.4.2.9 XSD Description for the "qti:br" Global Element

Figure 3.4.2.10 XSD Description for the "ssml11:break" Global Element

Figure 3.4.2.11 XSD Description for the "qti:cite" Global Element

Figure 3.4.2.12 XSD Description for the "qti:code" Global Element

Figure 3.4.2.13 XSD Description for the "qti:dfn" Global Element

Figure 3.4.2.14 XSD Description for the "qti:dl" Global Element

Figure 3.4.2.15 XSD Description for the "qti:em" Global Element

Figure 3.4.2.16 XSD Description for the "ssml11:emphasis" Global Element

Figure 3.4.2.17 XSD Description for the "qti:h1" Global Element

Figure 3.4.2.18 XSD Description for the "qti:h2" Global Element

Figure 3.4.2.19 XSD Description for the "qti:h3" Global Element

Figure 3.4.2.20 XSD Description for the "qti:h4" Global Element

Figure 3.4.2.21 XSD Description for the "qti:h5" Global Element

Figure 3.4.2.22 XSD Description for the "qti:h6" Global Element

Figure 3.4.2.23 XSD Description for the "qti:hr" Global Element

Figure 3.4.2.24 XSD Description for the "qti:i" Global Element

Figure 3.4.2.25 XSD Description for the "qti:img" Global Element

Figure 3.4.2.26 XSD Description for the "xi:include" Global Element

Figure 3.4.2.27 XSD Description for the "qti:kbd" Global Element

Figure 3.4.2.28 XSD Description for the "ssml11:mark" Global Element

Figure 3.4.2.29 XSD Description for the "m2:math" Global Element

Figure 3.4.2.30 XSD Description for the "m3:math" Global Element

Figure 3.4.2.31 XSD Description for the "qti:object" Global Element

Figure 3.4.2.32 XSD Description for the "qti:ol" Global Element

Figure 3.4.2.33 XSD Description for the "qti:p" Global Element

Figure 3.4.2.34 XSD Description for the "ssml11:p" Global Element

Figure 3.4.2.35 XSD Description for the "ssml11:phoneme" Global Element

Figure 3.4.2.36 XSD Description for the "qti:pre" Global Element

Figure 3.4.2.37 XSD Description for the "ssml11:prosody" Global Element

Figure 3.4.2.38 XSD Description for the "qti:q" Global Element

Figure 3.4.2.39 XSD Description for the "ssml11:s" Global Element

Figure 3.4.2.40 XSD Description for the "qti:samp" Global Element

Figure 3.4.2.41 XSD Description for the "ssml11:say-as" Global Element

Figure 3.4.2.42 XSD Description for the "qti:small" Global Element

Figure 3.4.2.43 XSD Description for the "qti:span" Global Element

Figure 3.4.2.44 XSD Description for the "ssml11:speak" Global Element

Figure 3.4.2.45 XSD Description for the "qti:strong" Global Element

Figure 3.4.2.46 XSD Description for the "qti:sub" Global Element

Figure 3.4.2.47 XSD Description for the "ssml11:sub" Global Element

Figure 3.4.2.48 XSD Description for the "qti:sup" Global Element

Figure 3.4.2.49 XSD Description for the "qti:tt" Global Element

Figure 3.4.2.50 XSD Description for the "qti:ul" Global Element

Figure 3.4.2.51 XSD Description for the "qti:var" Global Element

Figure 3.4.2.52 XSD Description for the "ssml11:voice" Global Element

Figure 3.4.3.1 XSD Description for the "aria-controls.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.2 XSD Description for the "aria-controls.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.3 XSD Description for the "aria-describedby.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.4 XSD Description for the "aria-describedby.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.5 XSD Description for the "aria-flowto.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.6 XSD Description for the "aria-flowto.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.7 XSD Description for the "aria-label.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.8 XSD Description for the "aria-label.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.9 XSD Description for the "aria-labelledby.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.10 XSD Description for the "aria-labelledby.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.11 XSD Description for the "aria-level.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.12 XSD Description for the "aria-level.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.13 XSD Description for the "aria-live.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.14 XSD Description for the "aria-live.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.15 XSD Description for the "aria-orientation.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.16 XSD Description for the "aria-orientation.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.17 XSD Description for the "aria-owns.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.18 XSD Description for the "aria-owns.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.19 XSD Description for the "autoplay.Audio.Attr" Attribute Group

Figure 3.4.3.20 XSD Description for the "autoplay.Video.Attr" Attribute Group

Figure 3.4.3.21 XSD Description for the "class.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.22 XSD Description for the "class.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.23 XSD Description for the "controls.Audio.Attr" Attribute Group

Figure 3.4.3.24 XSD Description for the "controls.Video.Attr" Attribute Group

Figure 3.4.3.25 XSD Description for the "crossorigin.Audio.Attr" Attribute Group

Figure 3.4.3.26 XSD Description for the "crossorigin.Video.Attr" Attribute Group

Figure 3.4.3.27 XSD Description for the "dataExtension.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.28 XSD Description for the "dataExtension.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.29 XSD Description for the "default.Track.Attr" Attribute Group

Figure 3.4.3.30 XSD Description for the "dir.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.31 XSD Description for the "dir.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.32 XSD Description for the "height.Video.Attr" Attribute Group

Figure 3.4.3.33 XSD Description for the "id.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.34 XSD Description for the "id.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.35 XSD Description for the "kind.Track.Attr" Attribute Group

Figure 3.4.3.36 XSD Description for the "label.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.37 XSD Description for the "label.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.38 XSD Description for the "language.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.39 XSD Description for the "language.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.40 XSD Description for the "loop.Audio.Attr" Attribute Group

Figure 3.4.3.41 XSD Description for the "loop.Video.Attr" Attribute Group

Figure 3.4.3.42 XSD Description for the "mediagroup.Audio.Attr" Attribute Group

Figure 3.4.3.43 XSD Description for the "mediagroup.Video.Attr" Attribute Group

Figure 3.4.3.44 XSD Description for the "muted.Audio.Attr" Attribute Group

Figure 3.4.3.45 XSD Description for the "muted.Video.Attr" Attribute Group

Figure 3.4.3.46 XSD Description for the "poster.Video.Attr" Attribute Group

Figure 3.4.3.47 XSD Description for the "preload.Audio.Attr" Attribute Group

Figure 3.4.3.48 XSD Description for the "preload.Video.Attr" Attribute Group

Figure 3.4.3.49 XSD Description for the "role.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.50 XSD Description for the "role.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.51 XSD Description for the "src.Audio.Attr" Attribute Group

Figure 3.4.3.52 XSD Description for the "src.Source.Attr" Attribute Group

Figure 3.4.3.53 XSD Description for the "src.Track.Attr" Attribute Group

Figure 3.4.3.54 XSD Description for the "src.Video.Attr" Attribute Group

Figure 3.4.3.55 XSD Description for the "srclang.Track.Attr" Attribute Group

Figure 3.4.3.56 XSD Description for the "title.BaseHTML5.Attr" Attribute Group

Figure 3.4.3.57 XSD Description for the "title.BaseHTML5Empty.Attr" Attribute Group

Figure 3.4.3.58 XSD Description for the "type.Source.Attr" Attribute Group

Figure 3.4.3.59 XSD Description for the "width.Video.Attr" Attribute Group

Figure 3.4.4.1 XSD Description for the "Article.Type" Root ComplexType

Figure 3.4.4.2 XSD Description for the "Aside.Type" Root ComplexType

Figure 3.4.4.3 XSD Description for the "Audio.Type" Root ComplexType

Figure 3.4.4.4 XSD Description for the "BDI.Type" Root ComplexType

Figure 3.4.4.5 XSD Description for the "FigCaption.Type" Root ComplexType

Figure 3.4.4.6 XSD Description for the "Figure.Type" Root ComplexType

Figure 3.4.4.7 XSD Description for the "Footer.Type" Root ComplexType

Figure 3.4.4.8 XSD Description for the "Header.Type" Root ComplexType

Figure 3.4.4.9 XSD Description for the "Label.Type" Root ComplexType

Figure 3.4.4.10 XSD Description for the "Nav.Type" Root ComplexType

Figure 3.4.4.11 XSD Description for the "RB.Type" Root ComplexType

Figure 3.4.4.12 XSD Description for the "RP.Type" Root ComplexType

Figure 3.4.4.13 XSD Description for the "RT.Type" Root ComplexType

Figure 3.4.4.14 XSD Description for the "RTC.Type" Root ComplexType

Figure 3.4.4.15 XSD Description for the "Ruby.Type" Root ComplexType

Figure 3.4.4.16 XSD Description for the "Section.Type" Root ComplexType

Figure 3.4.4.17 XSD Description for the "Source.Type" Root ComplexType

Figure 3.4.4.18 XSD Description for the "Track.Type" Root ComplexType

Figure 3.4.4.19 XSD Description for the "Video.Type" Root ComplexType

Figure 3.4.5.1 XSD Description for the "BaseHTML5.Type" Core Complex Type

Figure 3.4.6.1 XSD Description for the "BaseHTML5Empty.Type" Derived Complex Type

Figure 3.4.7.1 XSD Description for the "AriaLevelInteger.Type" Simple Type

Figure 3.4.7.2 XSD Description for the "MimeType.Type" Simple Type

Figure 3.4.7.3 XSD Description for the "StringList.Type" Simple Type

Figure 3.4.7.4 XSD Description for the "URL.Type" Simple Type

Figure 3.4.7.5 XSD Description for the "UniqueIdentifier.Type" Simple Type

toc | top

# List of Tables

Table 2.2.1 "article" root attribute description

Table 2.2.2 "aside" root attribute description

Table 2.2.3 "audio" root attribute description

Table 2.2.4 "bdi" root attribute description

Table 2.2.5 "figcaption" root attribute description

Table 2.2.6 "figure" root attribute description

Table 2.2.7 "footer" root attribute description

Table 2.2.8 "header" root attribute description

Table 2.2.9 "label" root attribute description

Table 2.2.10 "nav" root attribute description

Table 2.2.11 "rb" root attribute description

Table 2.2.12 "rp" root attribute description

Table 2.2.13 "rt" root attribute description

Table 2.2.14 "rtc" root attribute description

Table 2.2.15 "ruby" root attribute description

Table 2.2.16 "section" root attribute description

Table 2.2.17 "source" root attribute description

Table 2.2.18 "track" root attribute description

Table 2.2.19 "video" root attribute description

Table 2.3.1 Article class definitions

Table 2.3.1.1 Description of the "flowGroup" attribute for the "Article" class

Table 2.3.2 Aside class definitions

Table 2.3.2.1 Description of the "flowGroup" attribute for the "Aside" class

Table 2.3.3 Audio class definitions

Table 2.3.3.1 Description of the "src" characteristic for the "Audio" class

Table 2.3.3.2 Description of the "crossorigin" characteristic for the "Audio" class

Table 2.3.3.3 Description of the "preload" characteristic for the "Audio" class

Table 2.3.3.4 Description of the "autoplay" characteristic for the "Audio" class

Table 2.3.3.5 Description of the "mediagroup" characteristic for the "Audio" class

Table 2.3.3.6 Description of the "loop" characteristic for the "Audio" class

Table 2.3.3.7 Description of the "muted" characteristic for the "Audio" class

Table 2.3.3.8 Description of the "controls" characteristic for the "Audio" class

Table 2.3.3.9 Description of the "source" attribute for the "Audio" class

Table 2.3.3.10 Description of the "track" attribute for the "Audio" class

Table 2.3.4 BDI class definitions

Table 2.3.4.1 Description of the "flowContentModel" attribute for the "BDI" class

Table 2.3.5 FigCaption class definitions

Table 2.3.5.1 Description of the "flowGroup" attribute for the "FigCaption" class

Table 2.3.6 Figure class definitions

Table 2.3.6.1 Description of the "figcaption" attribute for the "Figure" class

Table 2.3.6.2 Description of the "flowContentModel" attribute for the "Figure" class

Table 2.3.7 Footer class definitions

Table 2.3.7.1 Description of the "flowGroup" attribute for the "Footer" class

Table 2.3.8 Header class definitions

Table 2.3.8.1 Description of the "flowGroup" attribute for the "Header" class

Table 2.3.9 Label class definitions

Table 2.3.9.1 Description of the "flowGroup" attribute for the "Label" class

Table 2.3.10 Nav class definitions

Table 2.3.10.1 Description of the "flowGroup" attribute for the "Nav" class

Table 2.3.11 RB class definitions

Table 2.3.11.1 Description of the "phrasingContentModel" attribute for the "RB" class

Table 2.3.12 RP class definitions

Table 2.3.12.1 Description of the "phrasingContentModel" attribute for the "RP" class

Table 2.3.13 RT class definitions

Table 2.3.13.1 Description of the "phrasingContentModel" attribute for the "RT" class

Table 2.3.14 RTC class definitions

Table 2.3.14.1 Description of the "phrasingContentModel" attribute for the "RTC" class

Table 2.3.14.2 Description of the "rt" attribute for the "RTC" class

Table 2.3.15 Ruby class definitions

Table 2.3.15.1 Description of the "rubySelection" attribute for the "Ruby" class

Table 2.3.16 Section class definitions

Table 2.3.16.1 Description of the "flowGroup" attribute for the "Section" class

Table 2.3.17 Source class definitions

Table 2.3.17.1 Description of the "src" characteristic for the "Source" class

Table 2.3.17.2 Description of the "type" characteristic for the "Source" class

Table 2.3.18 Track class definitions

Table 2.3.18.1 Description of the "kind" characteristic for the "Track" class

Table 2.3.18.2 Description of the "src" characteristic for the "Track" class

Table 2.3.18.3 Description of the "srclang" characteristic for the "Track" class

Table 2.3.18.4 Description of the "default" characteristic for the "Track" class

Table 2.3.19 Video class definitions

Table 2.3.19.1 Description of the "src" characteristic for the "Video" class

Table 2.3.19.2 Description of the "crossorigin" characteristic for the "Video" class

Table 2.3.19.3 Description of the "preload" characteristic for the "Video" class

Table 2.3.19.4 Description of the "autoplay" characteristic for the "Video" class

Table 2.3.19.5 Description of the "mediagroup" characteristic for the "Video" class

Table 2.3.19.6 Description of the "loop" characteristic for the "Video" class

Table 2.3.19.7 Description of the "muted" characteristic for the "Video" class

Table 2.3.19.8 Description of the "controls" characteristic for the "Video" class

Table 2.3.19.9 Description of the "poster" characteristic for the "Video" class

Table 2.3.19.10 Description of the "width" characteristic for the "Video" class

Table 2.3.19.11 Description of the "height" characteristic for the "Video" class

Table 2.3.19.12 Description of the "source" attribute for the "Video" class

Table 2.3.19.13 Description of the "track" attribute for the "Video" class

Table 2.4.1 BaseHTML5 class definitions

Table 2.4.1.1 Description of the "id" characteristic for the "BaseHTML5" class

Table 2.4.1.2 Description of the "language" characteristic for the "BaseHTML5" class

Table 2.4.1.3 Description of the "title" characteristic for the "BaseHTML5" class

Table 2.4.1.4 Description of the "label" characteristic for the "BaseHTML5" class

Table 2.4.1.5 Description of the "class" characteristic for the "BaseHTML5" class

Table 2.4.1.6 Description of the "dir" characteristic for the "BaseHTML5" class

Table 2.4.1.7 Description of the "role" characteristic for the "BaseHTML5" class

Table 2.4.1.8 Description of the "aria-controls" characteristic for the "BaseHTML5" class

Table 2.4.1.9 Description of the "aria-describedby" characteristic for the "BaseHTML5" class

Table 2.4.1.10 Description of the "aria-flowto" characteristic for the "BaseHTML5" class

Table 2.4.1.11 Description of the "aria-label" characteristic for the "BaseHTML5" class

Table 2.4.1.12 Description of the "aria-labelledby" characteristic for the "BaseHTML5" class

Table 2.4.1.13 Description of the "aria-level" characteristic for the "BaseHTML5" class

Table 2.4.1.14 Description of the "aria-live" characteristic for the "BaseHTML5" class

Table 2.4.1.15 Description of the "aria-orientation" characteristic for the "BaseHTML5" class

Table 2.4.1.16 Description of the "aria-owns" characteristic for the "BaseHTML5" class

Table 2.4.1.17 Description of the "dataExtension" characteristic for the "BaseHTML5" class

Table 2.5.1 FlowContentModelHTML5 class definitions

Table 2.5.1.1 Description of the "img" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.2 Description of the "br" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.3 Description of the "object" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.4 Description of the "em" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.5 Description of the "a" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.6 Description of the "code" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.7 Description of the "span" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.8 Description of the "sub" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.9 Description of the "acronym" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.10 Description of the "big" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.11 Description of the "tt" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.12 Description of the "kbd" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.13 Description of the "q" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.14 Description of the "i" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.15 Description of the "dfn" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.16 Description of the "abbr" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.17 Description of the "strong" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.18 Description of the "sup" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.19 Description of the "var" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.20 Description of the "small" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.21 Description of the "samp" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.22 Description of the "b" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.23 Description of the "cite" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.24 Description of the "bdo" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.25 Description of the "bdi" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.26 Description of the "figure" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.27 Description of the "audio" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.28 Description of the "video" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.29 Description of the "label" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.30 Description of the "article" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.31 Description of the "aside" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.32 Description of the "footer" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.33 Description of the "header" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.34 Description of the "nav" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.35 Description of the "section" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.36 Description of the "pre" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.37 Description of the "h1" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.38 Description of the "h2" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.39 Description of the "h3" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.40 Description of the "h4" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.41 Description of the "h5" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.42 Description of the "h6" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.43 Description of the "p" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.44 Description of the "address" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.45 Description of the "dl" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.46 Description of the "ol" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.47 Description of the "ul" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.48 Description of the "hr" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.49 Description of the "ssmlGroup" attribute for the "FlowContentModelHTML5" class

Table 2.5.1.50 Description of the "ruby" attribute for the "FlowContentModelHTML5" class

Table 2.5.2 FlowGroupHTML5 class definitions

Table 2.5.2.1 Description of the "math" attribute for the "FlowGroupHTML5" class

Table 2.5.2.2 Description of the "math" attribute for the "FlowGroupHTML5" class

Table 2.5.2.3 Description of the "include" attribute for the "FlowGroupHTML5" class

Table 2.5.2.4 Description of the "flowContentModel" attribute for the "FlowGroupHTML5" class

Table 2.5.3 PhraseRBSelection class definitions

Table 2.5.3.1 Description of the "phrasingContentModel" attribute for the "PhraseRBSelection" class

Table 2.5.3.2 Description of the "rb" attribute for the "PhraseRBSelection" class

Table 2.5.4 PhrasingContentModelHTML5 class definitions

Table 2.5.4.1 Description of the "a" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.2 Description of the "abbr" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.3 Description of the "b" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.4 Description of the "bdo" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.5 Description of the "br" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.6 Description of the "cite" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.7 Description of the "code" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.8 Description of the "dfn" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.9 Description of the "em" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.10 Description of the "i" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.11 Description of the "img" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.12 Description of the "kbd" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.13 Description of the "object" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.14 Description of the "q" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.15 Description of the "samp" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.16 Description of the "small" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.17 Description of the "span" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.18 Description of the "strong" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.19 Description of the "sub" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.20 Description of the "sup" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.21 Description of the "var" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.22 Description of the "audio" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.23 Description of the "bdi" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.24 Description of the "label" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.25 Description of the "ruby" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.4.26 Description of the "video" attribute for the "PhrasingContentModelHTML5" class

Table 2.5.5 RPRTSelection class definitions

Table 2.5.5.1 Description of the "rp" attribute for the "RPRTSelection" class

Table 2.5.5.2 Description of the "rtrtcSelection" attribute for the "RPRTSelection" class

Table 2.5.6 RTRTCSelection class definitions

Table 2.5.6.1 Description of the "rt" attribute for the "RTRTCSelection" class

Table 2.5.6.2 Description of the "rtc" attribute for the "RTRTCSelection" class

Table 2.5.7 RubySelection class definitions

Table 2.5.7.1 Description of the "phraseSelection" attribute for the "RubySelection" class

Table 2.5.7.2 Description of the "rprtSelection" attribute for the "RubySelection" class

Table 2.5.8 SSMLGroup class definitions

Table 2.5.8.1 Description of the "p" attribute for the "SSMLGroup" class

Table 2.5.8.2 Description of the "s" attribute for the "SSMLGroup" class

Table 2.5.8.3 Description of the "say-as" attribute for the "SSMLGroup" class

Table 2.5.8.4 Description of the "phoneme" attribute for the "SSMLGroup" class

Table 2.5.8.5 Description of the "sub" attribute for the "SSMLGroup" class

Table 2.5.8.6 Description of the "voice" attribute for the "SSMLGroup" class

Table 2.5.8.7 Description of the "emphasis" attribute for the "SSMLGroup" class

Table 2.5.8.8 Description of the "break" attribute for the "SSMLGroup" class

Table 2.5.8.9 Description of the "prosody" attribute for the "SSMLGroup" class

Table 2.5.8.10 Description of the "mark" attribute for the "SSMLGroup" class

Table 2.5.8.11 Description of the "audio" attribute for the "SSMLGroup" class

Table 2.5.8.12 Description of the "speak" attribute for the "SSMLGroup" class

Table 2.6.1 AriaLevelInteger class definitions

Table 2.6.1.1 Description of the "minInclusive" attribute for the "AriaLevelInteger" class

Table 2.6.2 BaseHTML5Empty class definitions

Table 2.6.2.1 Description of the "id" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.2 Description of the "language" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.3 Description of the "title" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.4 Description of the "label" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.5 Description of the "class" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.6 Description of the "dir" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.7 Description of the "role" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.8 Description of the "aria-controls" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.9 Description of the "aria-describedby" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.10 Description of the "aria-flowto" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.11 Description of the "aria-label" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.12 Description of the "aria-labelledby" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.13 Description of the "aria-level" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.14 Description of the "aria-live" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.15 Description of the "aria-orientation" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.16 Description of the "aria-owns" characteristic for the "BaseHTML5Empty" class

Table 2.6.2.17 Description of the "dataExtension" characteristic for the "BaseHTML5Empty" class

Table 2.6.3 DataHTML5Extension class definitions

Table 2.6.3.1 Description of the "pattern" attribute for the "DataHTML5Extension" class

Table 2.6.4 MimeType class definitions

Table 2.6.4.1 Description of the "pattern" attribute for the "MimeType" class

Table 2.6.5 URL class definitions

Table 2.6.6 UniqueIdentifier class definitions

Table 2.7.1 ARIALiveValue class definitions

Table 2.7.2 ARIAOrientationValue class definitions

Table 2.7.3 ARIARoleValue class definitions

Table 2.7.4 CORSSettings class definitions

Table 2.7.5 DirValue class definitions

Table 2.7.6 KindValue class definitions

Table 2.7.7 PreLoadValue class definitions

Table 2.8.1 StringList class description

Table 2.9.1 Include class description

Table 2.9.2 MathML2 class description

Table 2.9.3 MathML3 class description

Table 2.9.4 QTIv2p2 class description

Table 2.9.5 SSMLv1p1 class description

Table 3.2.1 UML/XSD Mapping for the Root Attributes

Table 3.2.2.1 UML/XSD Mapping for the Article Root Class

Table 3.2.2.2 UML/XSD Mapping for the Aside Root Class

Table 3.2.2.3 UML/XSD Mapping for the Audio Root Class

Table 3.2.2.4 UML/XSD Mapping for the BDI Root Class

Table 3.2.2.5 UML/XSD Mapping for the FigCaption Root Class

Table 3.2.2.6 UML/XSD Mapping for the Figure Root Class

Table 3.2.2.7 UML/XSD Mapping for the Footer Root Class

Table 3.2.2.8 UML/XSD Mapping for the Header Root Class

Table 3.2.2.9 UML/XSD Mapping for the Label Root Class

Table 3.2.2.10 UML/XSD Mapping for the Nav Root Class

Table 3.2.2.11 UML/XSD Mapping for the RB Root Class

Table 3.2.2.12 UML/XSD Mapping for the RP Root Class

Table 3.2.2.13 UML/XSD Mapping for the RT Root Class

Table 3.2.2.14 UML/XSD Mapping for the RTC Root Class

Table 3.2.2.15 UML/XSD Mapping for the Ruby Root Class

Table 3.2.2.16 UML/XSD Mapping for the Section Root Class

Table 3.2.2.17 UML/XSD Mapping for the Source Root Class

Table 3.2.2.18 UML/XSD Mapping for the Track Root Class

Table 3.2.2.19 UML/XSD Mapping for the Video Root Class

Table 3.2.3.1 UML/XSD Mapping for the BaseHTML5 Core Class

Table 3.2.4.1 UML/XSD Mapping for the AriaLevelInteger Derived Class

Table 3.2.4.2 UML/XSD Mapping for the BaseHTML5Empty Derived Class

Table 3.2.4.3 UML/XSD Mapping for the DataHTML5Extension Derived Class

Table 3.2.4.4 UML/XSD Mapping for the MimeType Derived Class

Table 3.2.4.5 UML/XSD Mapping for the URL Derived Class

Table 3.2.4.6 UML/XSD Mapping for the UniqueIdentifier Derived Class

Table 3.2.5 UML/XSD Mapping for the Enumerated Class Definitions

Table 3.2.7 UML/XSD Mapping for the List Class Definitions

Table 3.2.9 UML/XSD Mapping for the Primitive Type Definitions

Table 3.4.1.1 XSD Description for the "article" Root Element

Table 3.4.1.2 XSD Description for the "aside" Root Element

Table 3.4.1.3 XSD Description for the "audio" Root Element

Table 3.4.1.4 XSD Description for the "bdi" Root Element

Table 3.4.1.5 XSD Description for the "figcaption" Root Element

Table 3.4.1.6 XSD Description for the "figure" Root Element

Table 3.4.1.7 XSD Description for the "footer" Root Element

Table 3.4.1.8 XSD Description for the "header" Root Element

Table 3.4.1.9 XSD Description for the "label" Root Element

Table 3.4.1.10 XSD Description for the "nav" Root Element

Table 3.4.1.11 XSD Description for the "rb" Root Element

Table 3.4.1.12 XSD Description for the "rp" Root Element

Table 3.4.1.13 XSD Description for the "rt" Root Element

Table 3.4.1.14 XSD Description for the "rtc" Root Element

Table 3.4.1.15 XSD Description for the "ruby" Root Element

Table 3.4.1.16 XSD Description for the "section" Root Element

Table 3.4.1.17 XSD Description for the "source" Root Element

Table 3.4.1.18 XSD Description for the "track" Root Element

Table 3.4.1.19 XSD Description for the "video" Root Element

Table 3.4.2.1 XSD Description for the "qti:a" Global Element

Table 3.4.2.2 XSD Description for the "qti:abbr" Global Element

Table 3.4.2.3 XSD Description for the "qti:acronym" Global Element

Table 3.4.2.4 XSD Description for the "qti:address" Global Element

Table 3.4.2.5 XSD Description for the "ssml11:audio" Global Element

Table 3.4.2.6 XSD Description for the "qti:b" Global Element

Table 3.4.2.7 XSD Description for the "qti:bdo" Global Element

Table 3.4.2.8 XSD Description for the "qti:big" Global Element

Table 3.4.2.9 XSD Description for the "qti:br" Global Element

Table 3.4.2.10 XSD Description for the "ssml11:break" Global Element

Table 3.4.2.11 XSD Description for the "qti:cite" Global Element

Table 3.4.2.12 XSD Description for the "qti:code" Global Element

Table 3.4.2.13 XSD Description for the "qti:dfn" Global Element

Table 3.4.2.14 XSD Description for the "qti:dl" Global Element

Table 3.4.2.15 XSD Description for the "qti:em" Global Element

Table 3.4.2.16 XSD Description for the "ssml11:emphasis" Global Element

Table 3.4.2.17 XSD Description for the "qti:h1" Global Element

Table 3.4.2.18 XSD Description for the "qti:h2" Global Element

Table 3.4.2.19 XSD Description for the "qti:h3" Global Element

Table 3.4.2.20 XSD Description for the "qti:h4" Global Element

Table 3.4.2.21 XSD Description for the "qti:h5" Global Element

Table 3.4.2.22 XSD Description for the "qti:h6" Global Element

Table 3.4.2.23 XSD Description for the "qti:hr" Global Element

Table 3.4.2.24 XSD Description for the "qti:i" Global Element

Table 3.4.2.25 XSD Description for the "qti:img" Global Element

Table 3.4.2.26 XSD Description for the "xi:include" Global Element

Table 3.4.2.27 XSD Description for the "qti:kbd" Global Element

Table 3.4.2.28 XSD Description for the "ssml11:mark" Global Element

Table 3.4.2.29 XSD Description for the "m2:math" Global Element

Table 3.4.2.30 XSD Description for the "m3:math" Global Element

Table 3.4.2.31 XSD Description for the "qti:object" Global Element

Table 3.4.2.32 XSD Description for the "qti:ol" Global Element

Table 3.4.2.33 XSD Description for the "qti:p" Global Element

Table 3.4.2.34 XSD Description for the "ssml11:p" Global Element

Table 3.4.2.35 XSD Description for the "ssml11:phoneme" Global Element

Table 3.4.2.36 XSD Description for the "qti:pre" Global Element

Table 3.4.2.37 XSD Description for the "ssml11:prosody" Global Element

Table 3.4.2.38 XSD Description for the "qti:q" Global Element

Table 3.4.2.39 XSD Description for the "ssml11:s" Global Element

Table 3.4.2.40 XSD Description for the "qti:samp" Global Element

Table 3.4.2.41 XSD Description for the "ssml11:say-as" Global Element

Table 3.4.2.42 XSD Description for the "qti:small" Global Element

Table 3.4.2.43 XSD Description for the "qti:span" Global Element

Table 3.4.2.44 XSD Description for the "ssml11:speak" Global Element

Table 3.4.2.45 XSD Description for the "qti:strong" Global Element

Table 3.4.2.46 XSD Description for the "qti:sub" Global Element

Table 3.4.2.47 XSD Description for the "ssml11:sub" Global Element

Table 3.4.2.48 XSD Description for the "qti:sup" Global Element

Table 3.4.2.49 XSD Description for the "qti:tt" Global Element

Table 3.4.2.50 XSD Description for the "qti:ul" Global Element

Table 3.4.2.51 XSD Description for the "qti:var" Global Element

Table 3.4.2.52 XSD Description for the "ssml11:voice" Global Element

Table 3.4.3.1 XSD Description for the "aria-controls.BaseHTML5.Attr" Attribute Group

Table 3.4.3.2 XSD Description for the "aria-controls.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.3 XSD Description for the "aria-describedby.BaseHTML5.Attr" Attribute Group

Table 3.4.3.4 XSD Description for the "aria-describedby.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.5 XSD Description for the "aria-flowto.BaseHTML5.Attr" Attribute Group

Table 3.4.3.6 XSD Description for the "aria-flowto.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.7 XSD Description for the "aria-label.BaseHTML5.Attr" Attribute Group

Table 3.4.3.8 XSD Description for the "aria-label.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.9 XSD Description for the "aria-labelledby.BaseHTML5.Attr" Attribute Group

Table 3.4.3.10 XSD Description for the "aria-labelledby.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.11 XSD Description for the "aria-level.BaseHTML5.Attr" Attribute Group

Table 3.4.3.12 XSD Description for the "aria-level.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.13 XSD Description for the "aria-live.BaseHTML5.Attr" Attribute Group

Table 3.4.3.14 XSD Description for the "aria-live.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.15 XSD Description for the "aria-orientation.BaseHTML5.Attr" Attribute Group

Table 3.4.3.16 XSD Description for the "aria-orientation.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.17 XSD Description for the "aria-owns.BaseHTML5.Attr" Attribute Group

Table 3.4.3.18 XSD Description for the "aria-owns.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.19 XSD Description for the "autoplay.Audio.Attr" Attribute Group

Table 3.4.3.20 XSD Description for the "autoplay.Video.Attr" Attribute Group

Table 3.4.3.21 XSD Description for the "class.BaseHTML5.Attr" Attribute Group

Table 3.4.3.22 XSD Description for the "class.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.23 XSD Description for the "controls.Audio.Attr" Attribute Group

Table 3.4.3.24 XSD Description for the "controls.Video.Attr" Attribute Group

Table 3.4.3.25 XSD Description for the "crossorigin.Audio.Attr" Attribute Group

Table 3.4.3.26 XSD Description for the "crossorigin.Video.Attr" Attribute Group

Table 3.4.3.27 XSD Description for the "dataExtension.BaseHTML5.Attr" Attribute Group

Table 3.4.3.28 XSD Description for the "dataExtension.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.29 XSD Description for the "default.Track.Attr" Attribute Group

Table 3.4.3.30 XSD Description for the "dir.BaseHTML5.Attr" Attribute Group

Table 3.4.3.31 XSD Description for the "dir.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.32 XSD Description for the "height.Video.Attr" Attribute Group

Table 3.4.3.33 XSD Description for the "id.BaseHTML5.Attr" Attribute Group

Table 3.4.3.34 XSD Description for the "id.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.35 XSD Description for the "kind.Track.Attr" Attribute Group

Table 3.4.3.36 XSD Description for the "label.BaseHTML5.Attr" Attribute Group

Table 3.4.3.37 XSD Description for the "label.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.38 XSD Description for the "language.BaseHTML5.Attr" Attribute Group

Table 3.4.3.39 XSD Description for the "language.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.40 XSD Description for the "loop.Audio.Attr" Attribute Group

Table 3.4.3.41 XSD Description for the "loop.Video.Attr" Attribute Group

Table 3.4.3.42 XSD Description for the "mediagroup.Audio.Attr" Attribute Group

Table 3.4.3.43 XSD Description for the "mediagroup.Video.Attr" Attribute Group

Table 3.4.3.44 XSD Description for the "muted.Audio.Attr" Attribute Group

Table 3.4.3.45 XSD Description for the "muted.Video.Attr" Attribute Group

Table 3.4.3.46 XSD Description for the "poster.Video.Attr" Attribute Group

Table 3.4.3.47 XSD Description for the "preload.Audio.Attr" Attribute Group

Table 3.4.3.48 XSD Description for the "preload.Video.Attr" Attribute Group

Table 3.4.3.49 XSD Description for the "role.BaseHTML5.Attr" Attribute Group

Table 3.4.3.50 XSD Description for the "role.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.51 XSD Description for the "src.Audio.Attr" Attribute Group

Table 3.4.3.52 XSD Description for the "src.Source.Attr" Attribute Group

Table 3.4.3.53 XSD Description for the "src.Track.Attr" Attribute Group

Table 3.4.3.54 XSD Description for the "src.Video.Attr" Attribute Group

Table 3.4.3.55 XSD Description for the "srclang.Track.Attr" Attribute Group

Table 3.4.3.56 XSD Description for the "title.BaseHTML5.Attr" Attribute Group

Table 3.4.3.57 XSD Description for the "title.BaseHTML5Empty.Attr" Attribute Group

Table 3.4.3.58 XSD Description for the "type.Source.Attr" Attribute Group

Table 3.4.3.59 XSD Description for the "width.Video.Attr" Attribute Group

Table 3.4.4.1 XSD Description for the "Article.Type" Root ComplexType

Table 3.4.4.2 XSD Description for the "Aside.Type" Root ComplexType

Table 3.4.4.3 XSD Description for the "Audio.Type" Root ComplexType

Table 3.4.4.4 XSD Description for the "BDI.Type" Root ComplexType

Table 3.4.4.5 XSD Description for the "FigCaption.Type" Root ComplexType

Table 3.4.4.6 XSD Description for the "Figure.Type" Root ComplexType

Table 3.4.4.7 XSD Description for the "Footer.Type" Root ComplexType

Table 3.4.4.8 XSD Description for the "Header.Type" Root ComplexType

Table 3.4.4.9 XSD Description for the "Label.Type" Root ComplexType

Table 3.4.4.10 XSD Description for the "Nav.Type" Root ComplexType

Table 3.4.4.11 XSD Description for the "RB.Type" Root ComplexType

Table 3.4.4.12 XSD Description for the "RP.Type" Root ComplexType

Table 3.4.4.13 XSD Description for the "RT.Type" Root ComplexType

Table 3.4.4.14 XSD Description for the "RTC.Type" Root ComplexType

Table 3.4.4.15 XSD Description for the "Ruby.Type" Root ComplexType

Table 3.4.4.16 XSD Description for the "Section.Type" Root ComplexType

Table 3.4.4.17 XSD Description for the "Source.Type" Root ComplexType

Table 3.4.4.18 XSD Description for the "Track.Type" Root ComplexType

Table 3.4.4.19 XSD Description for the "Video.Type" Root ComplexType

Table 3.4.5.1 XSD Description for the "BaseHTML5.Type" Core Complex Type

Table 3.4.6.1 XSD Description for the "BaseHTML5Empty.Type" Derived Complex Type

Table 3.4.7.1 XSD Description for the "AriaLevelInteger.Type" Simple Type

Table 3.4.7.2 XSD Description for the "MimeType.Type" Simple Type

Table 3.4.7.3 XSD Description for the "StringList.Type" Simple Type

Table 3.4.7.4 XSD Description for the "URL.Type" Simple Type

Table 3.4.7.5 XSD Description for the "UniqueIdentifier.Type" Simple Type

Table A1.1 The key to the descriptions of data model diagrams

Table A1.2 The key to the descriptions of the data class tables

Table A1.3 The key to the descriptions of the data attribute/characteristic tables

Table A1.4 The key to the descriptions of the enumerated vocabulary tables

Table A1.5 The key to the descriptions of the external vocabulary tables

Table A1.6 The key to the descriptions of the import class tables

Table B1.1 The key to the descriptions of UML to XSD attribute mapping tables

Table B1.2 The key to the descriptions of UML to XSD class mapping tables

Table B1.3 The key to the descriptions of UML to XSD enumerated and enumerated list class mapping tables

Table B1.4 The key to the descriptions of UML to XSD list class mapping table

Table B1.5 The key to the descriptions of UML to XSD primitive mapping table

Table B1.6 The key to the descriptions of XSD element tables

Table B1.7 The key to the descriptions of XSD complex type tables

Table B1.8 The key to the descriptions of XSD simple type tables

Table B1.9 The key to the descriptions of XSD attribute group tables

Table B1.10 The key to the descriptions of XSD attribute tables

Table B1.11 The key to the descriptions of VDEX vocabulary binding tables

toc | top

# 1. Introduction

## 1.1. QTI HTML5 Overview

This document is a part of the IMS Global Question and Test Interoperability (QTI) v2.2 specification. It introduces HTML5 [HTML, 14], from the World Wide Web Consortium (W3C), additions to the IMS QTIv2.2 Assessment, Section and Item (ASI) specification [QTI, 16a]. Only a subset of the HTML5 additions to HTML4.2 are valid within QTI. Namely:

- Support for the 'figure' and 'figcaption' elements;
- Support for the 'audio' and 'video' elements and the associated 'source' and 'track' elements;
- Support for the 'footer', 'header', 'article', 'aside', 'nav' and 'section' document structuring elements;
- Support for the 'bdi' element to support bidirectional content;
- Support for the 'label' element is included to differentiate it from the current non-HTML element already supported by QTI ASI;
- Support for Ruby annotations (including 'ruby', rb', 'rp', 'rt' and 'rtc');
- Support for the HTML attribute extension mechanism using 'data-*'.

The HTML5 additions are bound in a separate XML namespace to that of the QTI ASI binding.

## 1.2. Scope and Context

The IMS QTI HTML5 v2.2 is used in conjunction with the following documents:

- IMS Question and Test Interoperability: Assessment, Section and Item (ASI) Information Model v2.2 [QTI, 16a] - the data model definition for the exchange of Assessments, Sections and Items;
- IMS Question and Test Interoperability v2.2 Best Practice and Implementation Guide v1.0 [QTI, 15b] - key information on how to adopt and implement the specification.

This QTI HTML5 v2.2 specification is an extension to the core IMS QTI ASI specification and enables support for a number of HTML5 tags. The QTI Information Model is bound to an XML Schema Definition (XSD). This document and the accompanying XSD is generated using the IMS Binding Auto-generation Tool-kit (I-BAT) [I-BAT, 06].

## 1.3. Structure of this Document

The structure of the rest of this document is:

2. Information Model | The Information Model description for the QTI HTML5 components. This description uses a profile of the Unified Modeling Language (UML) to represent the structure of the data model (see Appendix A1 for further details of the format of the information model description);
3. XSD Binding | This is the description of the binding of the data model to XML and the corresponding XSD that is used to partially validate QTI Assessment, Section and Item instances. This description includes an explanation of the relationship between the UML representation and the XSD that is produced through transformation of that representation (see Appendix B1 for further details on the format of the description of the XSD);
4. Extending and Profiling the Data Model | Identification of the ways in which the data model can be extended (both in terms of the extending features and proprietary extensions to the model) and how this base specification, and its model-based description, can be profiled to produce derivative specifications;
Appendix A Modelling Concepts and Terms | An overview of the model driven approach, the concepts and the terms used by IMS to create the data model representations (based upon a profile of UML), the corresponding set of bindings and the accompanying documentation (including this information model);
Appendix B XSD Binding Terms | An overview of the concepts and the terms used by IMS to create theXSD-based bindings representations and the accompanying documentation. The XSD binding is auto-generated from the UML representation to ensure full consistency between the information model and binding;
Appendix C XSD Listings | The listing of the QTI HTML5 XSD that should be used to validate instances of the data exchange.

## 1.4. Nomenclature

ARIA | Accessible Rich Internet Applications
ASI | Assessment, Section and Item
DT | Derived Type
HTML | HyperText Markup Language
I-BAT | IMS Binding Autogeneration Toolkit
ISO | International Standards Organization
PT | Primitive Type
QTI | Question and Test Interoperability
RFC | Request For Comment
SSML | Speech Synthesis Markup Language
UML | Unified Modeling Language
URL | Uniform Resource Locator
VDEX | Vocabulary Definition Exchange
W3C | World Wide Web Consortium
XHTML | XML HyperText Markup Language
XML | Exchange Markup Language
XOR | Exclusive OR
XSD | XML Schema Definition

## 1.5. References

[HTML5, 14] | A vocabulary and associated APIs for HTML and XHTML, Ian Hickson, Robin Berjon, Steve Faulkner, Travis Leithead, Erika Doyle Navara, Edward O'Connor and Silvia Pfeiffer, World Wide Web Consortium W3C Recommendation, October 2014, http://www.w3.org/TR/html5/.
[I-BAT, 06] | IMS Binding Auto-generation Toolkit (I-BAT), Colin Smythe, IMS Global Learning Consortium Inc., July 2006.
[ISO 8601] | ISO8601:2004 Data elements and interchange formats - Information interchange - Representation of dates and times, ISO, International Standards Organization (ISO), 2000, p.33.
[QTI, 15b] | IMS Question and Test Interoperability (QTI): Best Practices and Implementation Guide v2.2, Tom Hoffmann and Wilbert Kraan, IMS Global Learning Consortium Inc., September 2015, http://www.imsglobal.org/question/qtiv2p2/imsqti_v2p2_impl.html.
[QTI, 16a] | IMS Question and Test Interoperability (QTI): Assessment, Section and Item (ASI) Information Model v2.2.1, Colin Smythe, Wilbert Kraan and Mark McKell, IMS Global Learning Consortium Inc., August 2016, http://www.imsglobal.org/question/qtiv2p2/QTIv2p2p1-ASI-InformationModelv1p0/imsqtiv2p2p1_asi_v1p0_InfoModelv1p0.html.
[RFC 1738] | Uniform Resource Locators (URL), T.Berbers-Lee, L.Masinter and M.McCahill, Internet Engineering Task Force, December 1994, https://www.ietf.org/rfc/rfc1738.txt.
[RFC 2045] | Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies, N. Freed and N. Borenstein, Internet Engineering Task Force, November 1996, https://www.ietf.org/rfc/rfc2045.txt.
[URI, 98] | RFC 2396 Uniform Resource Identifiers (URI): Generic Syntax, T. Berners-Lee, R. Fielding and L. Masinter, Internet Engineering Task Force, August 1998, https://www.ietf.org/rfc/rfc2396.txt.
[VDEX, 04] | IMS Vocabulary Definition Exchange Information Model v1.0, Adam Cooper, IMS Global Learning Consortium Inc., February 2004, http://www.imsglobal.org/vdex/vdexv1p0/imsvdex_infov1p0.html.
[XML, 00] | Extensible Markup Language (XML), Version 1.0 (second edition), Tim Bray, Jean Paoli, C. M. Sperberg-McQueen and Eve Maler, World Wide Web Consortium, October 2000, http://www.w3.org/TR/2000/REC-xml-20001006.

toc | top

# 2. Information Model

## 2.1. Information Model Overview

The Information Model is described using a UML representation approach. The description consists of:

- Root Attributes - the root object that contains the QTI HTML5 structure;
- Root Classes - the root class that defines the QTI HTML5 structure;
- Data Classes - the core data class that define the QTI HTML5 structure;
- Abstract Classes - the abstract classes that define the QTI HTML5 structure;
- Derived Classes - the classes in the data model that are derived from the primitive types or other derived types;
- Enumerated Classes - the classes that contain the intrinsic enumerated vocabularies;
- List Classes - the list classes that are defined in the data model;
- Imported Classes - the set of classes that are imported i.e. defined in another information model.

## 2.2. Root Attribute Descriptions

All of the Root attributes (the root name for the instances that can be exchanged) used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.3. The root attributes are:

- article - this makes the HTML5 'article' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag allows independent, self-contained content to be identified;

- aside - this makes the HTML5 'aside' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag allows pieces of information that are related to the main flow to be identified;

- audio - this makes the HTML5 'audio' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies audio content;

- bdi - this makes the HTML5 'bdi' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag isolates a part of text that might be formatted in a different direction from other text outside it;

- figcaption - this makes the HTML5 'figcaption' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag defines a caption for a 'figure' tag (the figcaption must be the first or last child within the 'figure' tag);

- figure - this makes the HTML5 'figure' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag specifies self-contained content, like illustrations, diagrams, photos, code listings, etc.

- footer - this makes the HTML5 'footer' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies content as a page footer;

- header - this makes the HTML5 'header' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies content as a page header;

- label - this makes the HTML4 'label' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies content as a label for input. Note that this has been placed with the HTML5 content due to another QTI tag called 'label' already existing in the QTI ASI;

- nav - this makes the HTML5 'nav' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies navigation content;

- rb - this makes the HTML5 'rb' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag, a child of 'ruby', is used to contain the characters that require pronunciation help or are displayed as a learning aid;

- rp - this makes the HTML5 'rp' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies the content to be displayed if Ruby annotation is not supported;

- rt - this makes the HTML5 'rt' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag defines an explanation or pronunction of characters in a Ruby annotation;

- rtc - this makes the HTML5 'rtc' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag is a container for a collection of 'rt' tags;

- ruby - this makes the HTML5 'ruby' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies ruby annotation for the content;

- section - this makes the HTML5 'section' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies the content as a section in a document e.g. chapter, etc.

- source - this makes the HTML5 'source' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag is used to specify multiple media resources for media tags;

- track - this makes the HTML5 'track' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies text tracks for media tags ('audio' and 'video');

- video - this makes the HTML5 'video' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies video content.

### 2.2.1 "article" Root Attribute Description

The definition of the "article" root attribute is shown in Table 2.2.1.

Table 2.2.1 Description of the "article" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | article
Data Type | Article
Description | This makes the HTML5 'article' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag allows independent, self-contained content to be identified;

### 2.2.2 "aside" Root Attribute Description

The definition of the "aside" root attribute is shown in Table 2.2.2.

Table 2.2.2 Description of the "aside" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | aside
Data Type | Aside
Description | This makes the HTML5 'aside' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag allows pieces of information that are related to the main flow to be identified;

### 2.2.3 "audio" Root Attribute Description

The definition of the "audio" root attribute is shown in Table 2.2.3.

Table 2.2.3 Description of the "audio" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | audio
Data Type | Audio
Description | This makes the HTML5 'audio' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies audio content;

### 2.2.4 "bdi" Root Attribute Description

The definition of the "bdi" root attribute is shown in Table 2.2.4.

Table 2.2.4 Description of the "bdi" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | bdi
Data Type | BDI
Description | This makes the HTML5 'bdi' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag isolates a part of text that might be formatted in a different direction from other text outside it;

### 2.2.5 "figcaption" Root Attribute Description

The definition of the "figcaption" root attribute is shown in Table 2.2.5.

Table 2.2.5 Description of the "figcaption" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | figcaption
Data Type | FigCaption
Description | This makes the HTML5 'figcaption' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag defines a caption for a 'figure' tag (the figcaption must be the first or last child within the 'figure' tag);

### 2.2.6 "figure" Root Attribute Description

The definition of the "figure" root attribute is shown in Table 2.2.6.

Table 2.2.6 Description of the "figure" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | figure
Data Type | Figure
Description | This makes the HTML5 'figure' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag specifies self-contained content, like illustrations, diagrams, photos, code listings, etc.

### 2.2.7 "footer" Root Attribute Description

The definition of the "footer" root attribute is shown in Table 2.2.7.

Table 2.2.7 Description of the "footer" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | footer
Data Type | Footer
Description | This makes the HTML5 'footer' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies content as a page footer;

### 2.2.8 "header" Root Attribute Description

The definition of the "header" root attribute is shown in Table 2.2.8.

Table 2.2.8 Description of the "header" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | header
Data Type | Header
Description | This makes the HTML5 'header' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies content as a page header;

### 2.2.9 "label" Root Attribute Description

The definition of the "label" root attribute is shown in Table 2.2.9.

Table 2.2.9 Description of the "label" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | label
Data Type | Label
Description | This makes the HTML4 'label' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies content as a label for input. Note that this has been placed with the HTML5 content due to another QTI tag called 'label' already existing in the QTI ASI;

### 2.2.10 "nav" Root Attribute Description

The definition of the "nav" root attribute is shown in Table 2.2.10.

Table 2.2.10 Description of the "nav" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | nav
Data Type | Nav
Description | This makes the HTML5 'nav' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies navigation content;

### 2.2.11 "rb" Root Attribute Description

The definition of the "rb" root attribute is shown in Table 2.2.11.

Table 2.2.11 Description of the "rb" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | rb
Data Type | RB
Description | This makes the HTML5 'rb' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag, a child of 'ruby', is used to contain the characters that require pronunciation help or are displayed as a learning aid;

### 2.2.12 "rp" Root Attribute Description

The definition of the "rp" root attribute is shown in Table 2.2.12.

Table 2.2.12 Description of the "rp" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | rp
Data Type | RP
Description | This makes the HTML5 'rp' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies the content to be displayed if Ruby annotation is not supported;

### 2.2.13 "rt" Root Attribute Description

The definition of the "rt" root attribute is shown in Table 2.2.13.

Table 2.2.13 Description of the "rt" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | rt
Data Type | RT
Description | This makes the HTML5 'rt' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag defines an explanation or pronunction of characters in a Ruby annotation;

### 2.2.14 "rtc" Root Attribute Description

The definition of the "rtc" root attribute is shown in Table 2.2.14.

Table 2.2.14 Description of the "rtc" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | rtc
Data Type | RTC
Description | This makes the HTML5 'rtc' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag is a container for a collection of 'rt' tags;

### 2.2.15 "ruby" Root Attribute Description

The definition of the "ruby" root attribute is shown in Table 2.2.15.

Table 2.2.15 Description of the "ruby" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | ruby
Data Type | Ruby
Description | This makes the HTML5 'ruby' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies ruby annotation for the content;

### 2.2.16 "section" Root Attribute Description

The definition of the "section" root attribute is shown in Table 2.2.16.

Table 2.2.16 Description of the "section" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | section
Data Type | Section
Description | This makes the HTML5 'section' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies the content as a section in a document e.g. chapter, etc.

### 2.2.17 "source" Root Attribute Description

The definition of the "source" root attribute is shown in Table 2.2.17.

Table 2.2.17 Description of the "source" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | source
Data Type | Source
Description | This makes the HTML5 'source' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag is used to specify multiple media resources for media tags;

### 2.2.18 "track" Root Attribute Description

The definition of the "track" root attribute is shown in Table 2.2.18.

Table 2.2.18 Description of the "track" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | track
Data Type | Track
Description | This makes the HTML5 'track' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies text tracks for media tags ('audio' and 'video');

### 2.2.19 "video" Root Attribute Description

The definition of the "video" root attribute is shown in Table 2.2.19.

Table 2.2.19 Description of the "video" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | video
Data Type | Video
Description | This makes the HTML5 'video' tag functionality available to the classes within the QTIv2.2 specification. This is a new feature added in QTIv2.2. This tag identifies video content.

## 2.3. Root Class Descriptions

All of the Root data classes (the first class objects that can be exchanged using the data model) used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.2.

### 2.3.1 Article Root Class Description

The data model for the "Article" root class is shown in Figure 2.3.1 and the accompanying definition in Table 2.3.1.

Figure 2.3.1 - Article class definitions.

Table 2.3.1 Description of the "Article" class.
Descriptor | Definition
--- | ---
Class Name | Article
Class Type | Container [ Sequence , Mixed ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: flowGroup
Description | This defines the permitted content for the HTML5 'article' tag. The article tag represents a complete, or self-contained, composition in a document, page, application, or site and that is, in principle, independently distributable or reusable, e.g. in syndication. This could be a forum post, a magazine or newspaper article, a blog entry, a user-submitted comment, an interactive widget or gadget, or any other independent item of content. When article tags are nested, the inner article tags represent articles that are in principle related to the contents of the outer article. For instance, a blog entry on a site that accepts user-submitted comments could represent the comments as article elements nested within the article tag for the blog entry. Author information associated with an article tag (q.v. the address tag) does not apply to nested article tags.

#### 2.3.1.1 "flowGroup" Attribute Description

The description of the "flowGroup" attribute for the "Article" root class is given in Table 2.3.1.1.

Table 2.3.1.1 Description of the "flowGroup" attribute for the "Article" root class.
Descriptor | Definition
--- | ---
Attribute Name | flowGroup
Data Type | FlowGroupHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child. It is used to denote the permitted flow content i.e. the permitted set of HTML and other children.

### 2.3.2 Aside Root Class Description

The data model for the "Aside" root class is shown in Figure 2.3.2 and the accompanying definition in Table 2.3.2.

Figure 2.3.2 - Aside class definitions.

Table 2.3.2 Description of the "Aside" class.
Descriptor | Definition
--- | ---
Class Name | Aside
Class Type | Container [ Sequence , Mixed ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: flowGroup
Description | This defines the permitted content for the HTML5 'aside' tag. The aside tag represents a section of a page that consists of content that is tangentially related to the content around the aside tag, and which could be considered separate from that content. Such sections are often represented as sidebars in printed typography. The tag can be used for typographical effects like pull quotes or sidebars, for advertising, for groups of nav tags, and for other content that is considered separate from the main content of the page.

#### 2.3.2.1 "flowGroup" Attribute Description

The description of the "flowGroup" attribute for the "Aside" root class is given in Table 2.3.2.1.

Table 2.3.2.1 Description of the "flowGroup" attribute for the "Aside" root class.
Descriptor | Definition
--- | ---
Attribute Name | flowGroup
Data Type | FlowGroupHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child. It is used to denote the permitted flow content i.e. the permitted set of HTML and other children.

### 2.3.3 Audio Root Class Description

The data model for the "Audio" root class is shown in Figure 2.3.3 and the accompanying definition in Table 2.3.3.

Figure 2.3.3 - Audio class definitions.

Table 2.3.3 Description of the "Audio" class.
Descriptor | Definition
--- | ---
Class Name | Audio
Class Type | Container [ Sequence ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of characteristics are: src crossorigin preload autoplay mediagroup loop muted controls The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: source track
Description | The 'audio' tag is an HTML5 feature. An audio tag represents a sound or audio stream. Content may be provided inside the audio tag. User agents should not show this content to the user; it is intended for older Web browsers which do not support audio, so that legacy audio plugins can be tried, or to show text to the users of these older browsers informing them of how to access the audio contents.

#### 2.3.3.1 "src" Characteristic Description

The description of the "src" characteristic for the "Audio" root class is given in Table 2.3.3.1

Table 2.3.3.1 Description of the "src" characteristic for the "Audio" class.
Descriptor | Definition
--- | ---
Characteristic Name | src
Data Type | URL
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'src' content characteristic on media tags gives the address of the media resource (video, audio) to show. The attribute, if present, must contain a valid non-empty URL potentially surrounded by spaces.

#### 2.3.3.2 "crossorigin" Characteristic Description

The description of the "crossorigin" characteristic for the "Audio" root class is given in Table 2.3.3.2

Table 2.3.3.2 Description of the "crossorigin" characteristic for the "Audio" class.
Descriptor | Definition
--- | ---
Characteristic Name | crossorigin
Data Type | CORSSettings
Value Space | Enumerated value set of: { anonymous | use-credentials }
Scope | Global ("+")
Multiplicity | [0..1]
Description | The crossorigin content characteristic on media tags is a CORS settings attribute.

#### 2.3.3.3 "preload" Characteristic Description

The description of the "preload" characteristic for the "Audio" root class is given in Table 2.3.3.3

Table 2.3.3.3 Description of the "preload" characteristic for the "Audio" class.
Descriptor | Definition
--- | ---
Characteristic Name | preload
Data Type | PreLoadValue
Value Space | Enumerated value set of: { none | auto | metadata } Default = "metadata".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The preload characteristic is an enumerated value. The characteristic can be changed even once the media resource is being buffered or played; the descriptions in the table below are to be interpreted with that in mind.

#### 2.3.3.4 "autoplay" Characteristic Description

The description of the "autoplay" characteristic for the "Audio" root class is given in Table 2.3.3.4

Table 2.3.3.4 Description of the "autoplay" characteristic for the "Audio" class.
Descriptor | Definition
--- | ---
Characteristic Name | autoplay
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'autoplay' characteristic is a boolean. When present, the user agent (as described in the algorithm described herein) will automatically begin playback of the media resource as soon as it can do so without stopping.

#### 2.3.3.5 "mediagroup" Characteristic Description

The description of the "mediagroup" characteristic for the "Audio" root class is given in Table 2.3.3.5

Table 2.3.3.5 Description of the "mediagroup" characteristic for the "Audio" class.
Descriptor | Definition
--- | ---
Characteristic Name | mediagroup
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'mediagroup' content characteristic on media elements can be used to link multiple media tags together by implicitly creating a MediaController. The value is text; media tags with the same value are automatically linked by the user agent.

#### 2.3.3.6 "loop" Characteristic Description

The description of the "loop" characteristic for the "Audio" root class is given in Table 2.3.3.6

Table 2.3.3.6 Description of the "loop" characteristic for the "Audio" class.
Descriptor | Definition
--- | ---
Characteristic Name | loop
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'loop' characteristic is a boolean that, if specified, indicates that the media tag is to seek back to the start of the media resource upon reaching the end.

#### 2.3.3.7 "muted" Characteristic Description

The description of the "muted" characteristic for the "Audio" root class is given in Table 2.3.3.7

Table 2.3.3.7 Description of the "muted" characteristic for the "Audio" class.
Descriptor | Definition
--- | ---
Characteristic Name | muted
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'muted' characteristic on media tags is a boolean that controls the default state of the audio output of the media resource, potentially overriding user preferences. When a media tag is created, if it has a muted characteristic specified, the user agent must mute the media tag's audio output, overriding any user preference.

#### 2.3.3.8 "controls" Characteristic Description

The description of the "controls" characteristic for the "Audio" root class is given in Table 2.3.3.8

Table 2.3.3.8 Description of the "controls" characteristic for the "Audio" class.
Descriptor | Definition
--- | ---
Characteristic Name | controls
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'controls' characteristic is a boolean. If present, it indicates that the author has not provided a scripted controller and would like the user agent to provide its own set of controls.

#### 2.3.3.9 "source" Attribute Description

The description of the "source" attribute for the "Audio" root class is given in Table 2.3.3.9.

Table 2.3.3.9 Description of the "source" attribute for the "Audio" root class.
Descriptor | Definition
--- | ---
Attribute Name | source
Data Type | Source
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | The 'source' tag allows authors to specify multiple alternative media resources for audio tags.

#### 2.3.3.10 "track" Attribute Description

The description of the "track" attribute for the "Audio" root class is given in Table 2.3.3.10.

Table 2.3.3.10 Description of the "track" attribute for the "Audio" root class.
Descriptor | Definition
--- | ---
Attribute Name | track
Data Type | Track
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | The track tag allows authors to specify explicit external timed text tracks for the audio tags.

### 2.3.4 BDI Root Class Description

The data model for the "BDI" root class is shown in Figure 2.3.4 and the accompanying definition in Table 2.3.4.

Figure 2.3.4 - BDI class definitions.

Table 2.3.4 Description of the "BDI" class.
Descriptor | Definition
--- | ---
Class Name | BDI
Class Type | Container [ Sequence , Mixed ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: flowContentModel
Description | This defines the content for defining bidirectional content. The bdi tag represents a span of text that is to be isolated from its surroundings for the purposes of bidirectional text formatting.

#### 2.3.4.1 "flowContentModel" Attribute Description

The description of the "flowContentModel" attribute for the "BDI" root class is given in Table 2.3.4.1.

Table 2.3.4.1 Description of the "flowContentModel" attribute for the "BDI" root class.
Descriptor | Definition
--- | ---
Attribute Name | flowContentModel
Data Type | FlowContentModelHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child. It is used to denote the permitted flow content i.e. the permitted set of HTML children.

### 2.3.5 FigCaption Root Class Description

The data model for the "FigCaption" root class is shown in Figure 2.3.5 and the accompanying definition in Table 2.3.5.

Figure 2.3.5 - FigCaption class definitions.

Table 2.3.5 Description of the "FigCaption" class.
Descriptor | Definition
--- | ---
Class Name | FigCaption
Class Type | Container [ Sequence , Mixed ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: flowGroup
Description | This defines the permitted content for the HTML5 'figcaption' tag. The 'figcaption' element represents a caption or legend for the rest of the contents of the figcaption element's parent figure element, if any.

#### 2.3.5.1 "flowGroup" Attribute Description

The description of the "flowGroup" attribute for the "FigCaption" root class is given in Table 2.3.5.1.

Table 2.3.5.1 Description of the "flowGroup" attribute for the "FigCaption" root class.
Descriptor | Definition
--- | ---
Attribute Name | flowGroup
Data Type | FlowGroupHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child. It is used to denote the permitted flow content i.e. the permitted set of HTML and other children.

### 2.3.6 Figure Root Class Description

The data model for the "Figure" root class is shown in Figure 2.3.6 and the accompanying definition in Table 2.3.6.

Figure 2.3.6 - Figure class definitions.

Table 2.3.6 Description of the "Figure" class.
Descriptor | Definition
--- | ---
Class Name | Figure
Class Type | Container [ Unordered , Mixed ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: figcaption flowContentModel
Description | This defines the permitted content for the HTML5 'figure' tag. The 'figure' tag represents some flow content, optionally with a caption, that is self-contained (like a complete sentence) and is typically referenced as a single unit from the main flow of the document.

#### 2.3.6.1 "figcaption" Attribute Description

The description of the "figcaption" attribute for the "Figure" root class is given in Table 2.3.6.1.

Table 2.3.6.1 Description of the "figcaption" attribute for the "Figure" root class.
Descriptor | Definition
--- | ---
Attribute Name | figcaption
Data Type | FigCaption
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The optional 'figcaption' that can be either the first or last child. This provides the caption for the figure.

#### 2.3.6.2 "flowContentModel" Attribute Description

The description of the "flowContentModel" attribute for the "Figure" root class is given in Table 2.3.6.2.

Table 2.3.6.2 Description of the "flowContentModel" attribute for the "Figure" root class.
Descriptor | Definition
--- | ---
Attribute Name | flowContentModel
Data Type | FlowContentModelHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child. It is used to denote the permitted flow content i.e. the permitted set of HTML children.

### 2.3.7 Footer Root Class Description

The data model for the "Footer" root class is shown in Figure 2.3.7 and the accompanying definition in Table 2.3.7.

Figure 2.3.7 - Footer class definitions.

Table 2.3.7 Description of the "Footer" class.
Descriptor | Definition
--- | ---
Class Name | Footer
Class Type | Container [ Sequence , Mixed ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: flowGroup
Description | This defines the permitted content for the HTML5 'footer' tag. The footer tag represents a footer for its nearest ancestor sectioning content or sectioning root element. A footer typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like.

#### 2.3.7.1 "flowGroup" Attribute Description

The description of the "flowGroup" attribute for the "Footer" root class is given in Table 2.3.7.1.

Table 2.3.7.1 Description of the "flowGroup" attribute for the "Footer" root class.
Descriptor | Definition
--- | ---
Attribute Name | flowGroup
Data Type | FlowGroupHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child. It is used to denote the permitted flow content i.e. the permitted set of HTML and other children.

### 2.3.8 Header Root Class Description

The data model for the "Header" root class is shown in Figure 2.3.8 and the accompanying definition in Table 2.3.8.

Figure 2.3.8 - Header class definitions.

Table 2.3.8 Description of the "Header" class.
Descriptor | Definition
--- | ---
Class Name | Header
Class Type | Container [ Sequence , Mixed ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: flowGroup
Description | This defines the permitted content for the HTML5 'header' tag. The header tag represents introductory content for its nearest ancestor sectioning content or sectioning root tag. A header typically contains a group of introductory or navigational aids.

#### 2.3.8.1 "flowGroup" Attribute Description

The description of the "flowGroup" attribute for the "Header" root class is given in Table 2.3.8.1.

Table 2.3.8.1 Description of the "flowGroup" attribute for the "Header" root class.
Descriptor | Definition
--- | ---
Attribute Name | flowGroup
Data Type | FlowGroupHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child. It is used to denote the permitted flow content i.e. the permitted set of HTML and other children.

### 2.3.9 Label Root Class Description

The data model for the "Label" root class is shown in Figure 2.3.9 and the accompanying definition in Table 2.3.9.

Figure 2.3.9 - Label class definitions.

Table 2.3.9 Description of the "Label" class.
Descriptor | Definition
--- | ---
Class Name | Label
Class Type | Container [ Sequence , Mixed ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: flowGroup
Description | This defines the permitted content for the HTML5 'label' tag. The label tag represents a caption in a user interface. The caption can be associated with a specific form control, known as the label element's labeled control, either using the for attribute, or by putting the form control inside the label element itself. Except where otherwise specified by the following rules, a label element has no labeled control.

#### 2.3.9.1 "flowGroup" Attribute Description

The description of the "flowGroup" attribute for the "Label" root class is given in Table 2.3.9.1.

Table 2.3.9.1 Description of the "flowGroup" attribute for the "Label" root class.
Descriptor | Definition
--- | ---
Attribute Name | flowGroup
Data Type | FlowGroupHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child. It is used to denote the permitted flow content i.e. the permitted set of HTML and other children.

### 2.3.10 Nav Root Class Description

The data model for the "Nav" root class is shown in Figure 2.3.10 and the accompanying definition in Table 2.3.10.

Figure 2.3.10 - Nav class definitions.

Table 2.3.10 Description of the "Nav" class.
Descriptor | Definition
--- | ---
Class Name | Nav
Class Type | Container [ Sequence , Mixed ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: flowGroup
Description | This defines the permitted content for the HTML5 'nav' tag. The nav tag represents a section of a page that links to other pages or to parts within the page: a section with navigation links.

#### 2.3.10.1 "flowGroup" Attribute Description

The description of the "flowGroup" attribute for the "Nav" root class is given in Table 2.3.10.1.

Table 2.3.10.1 Description of the "flowGroup" attribute for the "Nav" root class.
Descriptor | Definition
--- | ---
Attribute Name | flowGroup
Data Type | FlowGroupHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child. It is used to denote the permitted flow content i.e. the permitted set of HTML and other children.

### 2.3.11 RB Root Class Description

The data model for the "RB" root class is shown in Figure 2.3.11 and the accompanying definition in Table 2.3.11.

Figure 2.3.11 - RB class definitions.

Table 2.3.11 Description of the "RB" class.
Descriptor | Definition
--- | ---
Class Name | RB
Class Type | Container [ Sequence , Mixed ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: phrasingContentModel
Description | This feature is a part of the HTML5 Ruby annotation. The rb tag marks the base text component of a ruby annotation. When it is the child of a ruby tag, it doesn't represent anything itself, but its parent ruby tag uses it as part of determining what it represents.

#### 2.3.11.1 "phrasingContentModel" Attribute Description

The description of the "phrasingContentModel" attribute for the "RB" root class is given in Table 2.3.11.1.

Table 2.3.11.1 Description of the "phrasingContentModel" attribute for the "RB" root class.
Descriptor | Definition
--- | ---
Attribute Name | phrasingContentModel
Data Type | PhrasingContentModelHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that defines the permitted content for the 'rb' tag. This content is collectively termed 'Phrasing'. Phrasing content is the text of the document, as well as tags that mark up that text at the intra-paragraph level. Runs of phrasing content form paragraphs.

### 2.3.12 RP Root Class Description

The data model for the "RP" root class is shown in Figure 2.3.12 and the accompanying definition in Table 2.3.12.

Figure 2.3.12 - RP class definitions.

Table 2.3.12 Description of the "RP" class.
Descriptor | Definition
--- | ---
Class Name | RP
Class Type | Container [ Sequence , Mixed ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: phrasingContentModel
Description | This feature is a part of the HTML5 Ruby annotation. The 'rp' tag is used to provide fallback text to be shown by user agents that don't support ruby annotations. One widespread convention is to provide parentheses around the ruby text component of a ruby annotation. The contents of the rp tags are typically not displayed by user agents which do support ruby annotations. An rp tag that is a child of a ruby tag represents nothing. An rp element whose parent tag is not a ruby tag represents its children.

#### 2.3.12.1 "phrasingContentModel" Attribute Description

The description of the "phrasingContentModel" attribute for the "RP" root class is given in Table 2.3.12.1.

Table 2.3.12.1 Description of the "phrasingContentModel" attribute for the "RP" root class.
Descriptor | Definition
--- | ---
Attribute Name | phrasingContentModel
Data Type | PhrasingContentModelHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that defines the permitted content for the 'rp' tag. This content is collectively termed 'Phrasing'. Phrasing content is the text of the document, as well as elements that mark up that text at the intra-paragraph level. Runs of phrasing content form paragraphs.

### 2.3.13 RT Root Class Description

The data model for the "RT" root class is shown in Figure 2.3.13 and the accompanying definition in Table 2.3.13.

Figure 2.3.13 - RT class definitions.

Table 2.3.13 Description of the "RT" class.
Descriptor | Definition
--- | ---
Class Name | RT
Class Type | Container [ Sequence , Mixed ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: phrasingContentModel
Description | This feature is a part of the HTML5 Ruby annotation. The 'rt' tag marks the ruby text component of a ruby annotation. When it is the child of a ruby tag or of an rtc tag that is itself the child of a ruby tag, it doesn't represent anything itself, but its ancestor ruby tag uses it as part of determining what it represents.

#### 2.3.13.1 "phrasingContentModel" Attribute Description

The description of the "phrasingContentModel" attribute for the "RT" root class is given in Table 2.3.13.1.

Table 2.3.13.1 Description of the "phrasingContentModel" attribute for the "RT" root class.
Descriptor | Definition
--- | ---
Attribute Name | phrasingContentModel
Data Type | PhrasingContentModelHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that defines the permitted content for the 'rt' tag. This content is collectively termed 'Phrasing'. Phrasing content is the text of the document, as well as tags that mark up that text at the intra-paragraph level. Runs of phrasing content form paragraphs.

### 2.3.14 RTC Root Class Description

The data model for the "RTC" root class is shown in Figure 2.3.14 and the accompanying definition in Table 2.3.14.

Figure 2.3.14 - RTC class definitions.

Table 2.3.14 Description of the "RTC" class.
Descriptor | Definition
--- | ---
Class Name | RTC
Class Type | Container [ Selection , Mixed ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: phrasingContentModel rt
Description | This feature is a part of the HTML5 Ruby annotation. The 'rtc' tag marks a ruby text container for ruby text components in a ruby annotation. When it is the child of a ruby tag it doesn't represent anything itself, but its parent ruby tag uses it as part of determining what it represents. An rtc tag that is not a child of a ruby tag represents the same thing as its children.

#### 2.3.14.1 "phrasingContentModel" Attribute Description

The description of the "phrasingContentModel" attribute for the "RTC" root class is given in Table 2.3.14.1.

Table 2.3.14.1 Description of the "phrasingContentModel" attribute for the "RTC" root class.
Descriptor | Definition
--- | ---
Attribute Name | phrasingContentModel
Data Type | PhrasingContentModelHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that defines the permitted content for the 'rtc' tag. This content is collectively termed 'Phrasing'. Phrasing content is the text of the document, as well as tags that mark up that text at the intra-paragraph level. Runs of phrasing content form paragraphs.

#### 2.3.14.2 "rt" Attribute Description

The description of the "rt" attribute for the "RTC" root class is given in Table 2.3.14.2.

Table 2.3.14.2 Description of the "rt" attribute for the "RTC" root class.
Descriptor | Definition
--- | ---
Attribute Name | rt
Data Type | RT
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is the 'rt' Ruby tag within the 'rtc' Ruby tag. This tag can be intermingled with the associated 'Phrasing' content.

### 2.3.15 Ruby Root Class Description

The data model for the "Ruby" root class is shown in Figure 2.3.15 and the accompanying definition in Table 2.3.15.

Figure 2.3.15 - Ruby class definitions.

Table 2.3.15 Description of the "Ruby" class.
Descriptor | Definition
--- | ---
Class Name | Ruby
Class Type | Container [ Sequence , Mixed ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: rubySelection
Description | This feature is a part of the HTML5 Ruby annotation. The ruby tag allows one or more spans of phrasing content to be marked with ruby annotations. Ruby annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations. In Japanese, this form of typography is also known as furigana. Ruby text can appear on either side, and sometimes both sides, of the base text, and it is possible to control its position using CSS.

#### 2.3.15.1 "rubySelection" Attribute Description

The description of the "rubySelection" attribute for the "Ruby" root class is given in Table 2.3.15.1.

Table 2.3.15.1 Description of the "rubySelection" attribute for the "Ruby" root class.
Descriptor | Definition
--- | ---
Attribute Name | rubySelection
Data Type | RubySelection
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the Ruby annotation to be composed of any combination of HTML5 Phrasing content and combinations of 'rp', 'rt' and 'rtc' tags.

### 2.3.16 Section Root Class Description

The data model for the "Section" root class is shown in Figure 2.3.16 and the accompanying definition in Table 2.3.16.

Figure 2.3.16 - Section class definitions.

Table 2.3.16 Description of the "Section" class.
Descriptor | Definition
--- | ---
Class Name | Section
Class Type | Container [ Sequence , Mixed ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: flowGroup
Description | This defines the permitted content for the HTML5 'section' tag. The section tag represents a generic section of a document or application. A section, in this context, is a thematic grouping of content. The theme of each section should be identified, typically by including a heading (h1-h6 tag) as a child of the section tag.

#### 2.3.16.1 "flowGroup" Attribute Description

The description of the "flowGroup" attribute for the "Section" root class is given in Table 2.3.16.1.

Table 2.3.16.1 Description of the "flowGroup" attribute for the "Section" root class.
Descriptor | Definition
--- | ---
Attribute Name | flowGroup
Data Type | FlowGroupHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child. It is used to denote the permitted flow content i.e. the permitted set of HTML and other children.

### 2.3.17 Source Root Class Description

The data model for the "Source" root class is shown in Figure 2.3.17 and the accompanying definition in Table 2.3.17.

Figure 2.3.17 - Source class definitions.

Table 2.3.17 Description of the "Source" class.
Descriptor | Definition
--- | ---
Class Name | Source
Class Type | Container [ Sequence ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5Empty
Characteristics | The set of characteristics are: src type The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | The 'source' tag is an HTML5 feature. The source tag allows authors to specify multiple alternative media resources for media tags. It does not represent anything on its own.

#### 2.3.17.1 "src" Characteristic Description

The description of the "src" characteristic for the "Source" root class is given in Table 2.3.17.1

Table 2.3.17.1 Description of the "src" characteristic for the "Source" class.
Descriptor | Definition
--- | ---
Characteristic Name | src
Data Type | URL
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The 'src' characteristic gives the address of the media resource. The value must be a valid non-empty URL potentially surrounded by spaces. This characteristic must be present.

#### 2.3.17.2 "type" Characteristic Description

The description of the "type" characteristic for the "Source" root class is given in Table 2.3.17.2

Table 2.3.17.2 Description of the "type" characteristic for the "Source" class.
Descriptor | Definition
--- | ---
Characteristic Name | type
Data Type | MimeType
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'type' characteristic gives the type of the media resource, to help the user agent determine if it can play this media resource before fetching it. If specified, its value must be a valid MIME type.

### 2.3.18 Track Root Class Description

The data model for the "Track" root class is shown in Figure 2.3.18 and the accompanying definition in Table 2.3.18.

Figure 2.3.18 - Track class definitions.

Table 2.3.18 Description of the "Track" class.
Descriptor | Definition
--- | ---
Class Name | Track
Class Type | Container [ Sequence ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5Empty
Characteristics | The set of characteristics are: kind src srclang default The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | The 'track' tag is an HTML5 feature. The track tag allows authors to specify explicit external timed text tracks for media elements. It does not represent anything on its own.

#### 2.3.18.1 "kind" Characteristic Description

The description of the "kind" characteristic for the "Track" root class is given in Table 2.3.18.1

Table 2.3.18.1 Description of the "kind" characteristic for the "Track" class.
Descriptor | Definition
--- | ---
Characteristic Name | kind
Data Type | KindValue
Value Space | Enumerated value set of: { subtitles | captions | descriptions | chapters | metadata } Default = "subtitles".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'kind' characteristic is an enumerated attribute. The following table lists the keywords defined for this attribute. The keyword given in the first cell of each row maps to the state given in the second cell.

#### 2.3.18.2 "src" Characteristic Description

The description of the "src" characteristic for the "Track" root class is given in Table 2.3.18.2

Table 2.3.18.2 Description of the "src" characteristic for the "Track" class.
Descriptor | Definition
--- | ---
Characteristic Name | src
Data Type | URL
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The 'src' characteristic gives the address of the text track data. The value must be a valid non-empty URL potentially surrounded by spaces. This attribute must be present.

#### 2.3.18.3 "srclang" Characteristic Description

The description of the "srclang" characteristic for the "Track" root class is given in Table 2.3.18.3

Table 2.3.18.3 Description of the "srclang" characteristic for the "Track" class.
Descriptor | Definition
--- | ---
Characteristic Name | srclang
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'srclang' characteristic gives the language of the text track data. The value must be a valid BCP 47 language tag. This attribute must be present if the tag's kind attribute is in the subtitles state.

#### 2.3.18.4 "default" Characteristic Description

The description of the "default" characteristic for the "Track" root class is given in Table 2.3.18.4

Table 2.3.18.4 Description of the "default" characteristic for the "Track" class.
Descriptor | Definition
--- | ---
Characteristic Name | default
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'default' is a boolean, which, if specified, indicates that the track is to be enabled if the user's preferences do not indicate that another track would be more appropriate.

### 2.3.19 Video Root Class Description

The data model for the "Video" root class is shown in Figure 2.3.19 and the accompanying definition in Table 2.3.19.

Figure 2.3.19 - Video class definitions.

Table 2.3.19 Description of the "Video" class.
Descriptor | Definition
--- | ---
Class Name | Video
Class Type | Container [ Sequence ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseHTML5
Characteristics | The set of characteristics are: src crossorigin preload autoplay mediagroup loop muted controls poster width height The set of inherited characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: source track
Description | The 'video' tag is an HTML5 feature. A video tag is used for playing videos or movies, and audio files with captions.

#### 2.3.19.1 "src" Characteristic Description

The description of the "src" characteristic for the "Video" root class is given in Table 2.3.19.1

Table 2.3.19.1 Description of the "src" characteristic for the "Video" class.
Descriptor | Definition
--- | ---
Characteristic Name | src
Data Type | URL
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'src' content characteristic on media tags gives the address of the media resource (video, audio) to show. The attribute, if present, must contain a valid non-empty URL potentially surrounded by spaces.

#### 2.3.19.2 "crossorigin" Characteristic Description

The description of the "crossorigin" characteristic for the "Video" root class is given in Table 2.3.19.2

Table 2.3.19.2 Description of the "crossorigin" characteristic for the "Video" class.
Descriptor | Definition
--- | ---
Characteristic Name | crossorigin
Data Type | CORSSettings
Value Space | Enumerated value set of: { anonymous | use-credentials }
Scope | Global ("+")
Multiplicity | [0..1]
Description | The crossorigin content characteristic on media tags is a CORS settings attribute.

#### 2.3.19.3 "preload" Characteristic Description

The description of the "preload" characteristic for the "Video" root class is given in Table 2.3.19.3

Table 2.3.19.3 Description of the "preload" characteristic for the "Video" class.
Descriptor | Definition
--- | ---
Characteristic Name | preload
Data Type | PreLoadValue
Value Space | Enumerated value set of: { none | auto | metadata } Default = "metadata".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The preload characteristic is an enumerated value. The attribute can be changed even once the media resource is being buffered or played; the descriptions in the table below are to be interpreted with that in mind.

#### 2.3.19.4 "autoplay" Characteristic Description

The description of the "autoplay" characteristic for the "Video" root class is given in Table 2.3.19.4

Table 2.3.19.4 Description of the "autoplay" characteristic for the "Video" class.
Descriptor | Definition
--- | ---
Characteristic Name | autoplay
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'autoplay' characteristic is a boolean. When present, the user agent (as described in the algorithm described herein) will automatically begin playback of the media resource as soon as it can do so without stopping.

#### 2.3.19.5 "mediagroup" Characteristic Description

The description of the "mediagroup" characteristic for the "Video" root class is given in Table 2.3.19.5

Table 2.3.19.5 Description of the "mediagroup" characteristic for the "Video" class.
Descriptor | Definition
--- | ---
Characteristic Name | mediagroup
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'mediagroup' content characteristic on media tags can be used to link multiple media elements together by implicitly creating a MediaController. The value is text; media elements with the same value are automatically linked by the user agent.

#### 2.3.19.6 "loop" Characteristic Description

The description of the "loop" characteristic for the "Video" root class is given in Table 2.3.19.6

Table 2.3.19.6 Description of the "loop" characteristic for the "Video" class.
Descriptor | Definition
--- | ---
Characteristic Name | loop
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'loop' characteristic is a boolean that, if specified, indicates that the media tag is to seek back to the start of the media resource upon reaching the end.

#### 2.3.19.7 "muted" Characteristic Description

The description of the "muted" characteristic for the "Video" root class is given in Table 2.3.19.7

Table 2.3.19.7 Description of the "muted" characteristic for the "Video" class.
Descriptor | Definition
--- | ---
Characteristic Name | muted
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'muted' characteristic on media tags is a boolean that controls the default state of the audio output of the media resource, potentially overriding user preferences. When a media tag is created, if it has a muted attribute specified, the user agent must mute the media element's audio output, overriding any user preference.

#### 2.3.19.8 "controls" Characteristic Description

The description of the "controls" characteristic for the "Video" root class is given in Table 2.3.19.8

Table 2.3.19.8 Description of the "controls" characteristic for the "Video" class.
Descriptor | Definition
--- | ---
Characteristic Name | controls
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'controls' characteristic is a boolean. If present, it indicates that the author has not provided a scripted controller and would like the user agent to provide its own set of controls

#### 2.3.19.9 "poster" Characteristic Description

The description of the "poster" characteristic for the "Video" root class is given in Table 2.3.19.9

Table 2.3.19.9 Description of the "poster" characteristic for the "Video" class.
Descriptor | Definition
--- | ---
Characteristic Name | poster
Data Type | URL
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'poster' characteristic gives the address of an image file that the user agent can show while no video data is available. The characteristic, if present, must contain a valid non-empty URL potentially surrounded by spaces.

#### 2.3.19.10 "width" Characteristic Description

The description of the "width" characteristic for the "Video" root class is given in Table 2.3.19.10

Table 2.3.19.10 Description of the "width" characteristic for the "Video" class.
Descriptor | Definition
--- | ---
Characteristic Name | width
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'width' characteristic defines the width of the video content in CSS pixels.

#### 2.3.19.11 "height" Characteristic Description

The description of the "height" characteristic for the "Video" root class is given in Table 2.3.19.11

Table 2.3.19.11 Description of the "height" characteristic for the "Video" class.
Descriptor | Definition
--- | ---
Characteristic Name | height
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'height' characteristic defines the width of the video content in CSS pixels.

#### 2.3.19.12 "source" Attribute Description

The description of the "source" attribute for the "Video" root class is given in Table 2.3.19.12.

Table 2.3.19.12 Description of the "source" attribute for the "Video" root class.
Descriptor | Definition
--- | ---
Attribute Name | source
Data Type | Source
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | The 'source' tag allows authors to specify multiple alternative media resources for video elements.

#### 2.3.19.13 "track" Attribute Description

The description of the "track" attribute for the "Video" root class is given in Table 2.3.19.13.

Table 2.3.19.13 Description of the "track" attribute for the "Video" root class.
Descriptor | Definition
--- | ---
Attribute Name | track
Data Type | Track
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | The track tag allows authors to specify explicit external timed text tracks for the video tags.

## 2.4. Data Class Descriptions

All of the data classes used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.2.

### 2.4.1 BaseHTML5 Class Description

The data model for the "BaseHTML5" class is shown in Figure 2.4.1 and the accompanying definition in Table 2.4.1.

Figure 2.4.1 - BaseHTML5 class definitions.

Table 2.4.1 Description of the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Class Name | BaseHTML5
Class Type | Container [ Sequence ]
Parents | There are no parent classes.
Derived Classes | The set of derived classes are: Article Aside Audio BDI FigCaption Figure Footer Header Label Nav RB RP RT RTC Ruby Section Video
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | This is the base class for the HTML5 features that have children. This consists of a set of children characteristics.

#### 2.4.1.1 "id" Characteristic Description

The description of the "id" characteristic for the "BaseHTML5" class is given in Table 2.4.1.1.

Table 2.4.1.1 Description of the "id" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | id
Data Type | UniqueIdentifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The unique identifier assigned to the HTML tag. This must be unique otherwise features such as the APIP accessibilty text cannot be supplied as an alternative.

#### 2.4.1.2 "language" Characteristic Description

The description of the "language" characteristic for the "BaseHTML5" class is given in Table 2.4.1.2.

Table 2.4.1.2 Description of the "language" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | language
Data Type | Language (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This chracteristic specifies the primary language for the tag's contents and for any of the tag's attributes that contain text. Its value must be a valid BCP 47 language tag, or the empty string. Setting the characteristic to the empty string indicates that the primary language is unknown.

#### 2.4.1.3 "title" Characteristic Description

The description of the "title" characteristic for the "BaseHTML5" class is given in Table 2.4.1.3.

Table 2.4.1.3 Description of the "title" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | title
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The title characteristic represents advisory information for the tag, such as would be appropriate for a tooltip. On a link, this could be the title or a description of the target resource; on an image, it could be the image credit or a description of the image; on a paragraph, it could be a footnote or commentary on the text; on a citation, it could be further information about the source; on interactive content, it could be a label for, or instructions for, use of the element; and so forth. The value is text.

#### 2.4.1.4 "label" Characteristic Description

The description of the "label" characteristic for the "BaseHTML5" class is given in Table 2.4.1.4.

Table 2.4.1.4 Description of the "label" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The label characteristic represents information for the tag that can be used to identify it or its functionality, such as would be appropriate for a tooltip. The value is text.

#### 2.4.1.5 "class" Characteristic Description

The description of the "class" characteristic for the "BaseHTML5" class is given in Table 2.4.1.5.

Table 2.4.1.5 Description of the "class" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | class
Data Type | StringList
Value Space | The list consist of values of data-type(s): String (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | Every HTML tag may have a class attribute specified. If specified, it must have a value that is a set of space-separated tokens representing the various classes to which the tag belongs.

#### 2.4.1.6 "dir" Characteristic Description

The description of the "dir" characteristic for the "BaseHTML5" class is given in Table 2.4.1.6.

Table 2.4.1.6 Description of the "dir" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | dir
Data Type | DirValue
Value Space | Enumerated value set of: { ltr | rtl | auto } Default = "auto".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Specifies the tag's text directionality.

#### 2.4.1.7 "role" Characteristic Description

The description of the "role" characteristic for the "BaseHTML5" class is given in Table 2.4.1.7.

Table 2.4.1.7 Description of the "role" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | role
Data Type | ARIARoleValue
Value Space | Enumerated value set of: { article | columnheader | definition | directory | document | group | heading | img | list | listitem | math | note | presentation | region | row | rowgroup | rowheader | separator | toolbar | button | checkbox | gridcell | link | log | option | radio | slider | spinbutton | status | tab | tabpanel | textbox | timer | listbox | radiogroup | tablist | complementary | contentinfo }
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the ARIA role. Roles are defined and described by their characteristics. Characteristics define the structural function of a role, such as what a role is, concepts behind it, and what instances the role can or must contain.

#### 2.4.1.8 "aria-controls" Characteristic Description

The description of the "aria-controls" characteristic for the "BaseHTML5" class is given in Table 2.4.1.8.

Table 2.4.1.8 Description of the "aria-controls" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-controls
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. This identifies the tag (or tags) whose contents or presence are controlled by the current tag.

#### 2.4.1.9 "aria-describedby" Characteristic Description

The description of the "aria-describedby" characteristic for the "BaseHTML5" class is given in Table 2.4.1.9.

Table 2.4.1.9 Description of the "aria-describedby" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-describedby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the element (or elements) that describes the object.

#### 2.4.1.10 "aria-flowto" Characteristic Description

The description of the "aria-flowto" characteristic for the "BaseHTML5" class is given in Table 2.4.1.10.

Table 2.4.1.10 Description of the "aria-flowto" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-flowto
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the next tag (or tags) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.

#### 2.4.1.11 "aria-label" Characteristic Description

The description of the "aria-label" characteristic for the "BaseHTML5" class is given in Table 2.4.1.11.

Table 2.4.1.11 Description of the "aria-label" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines a string value that labels the current tag. See related aria-labelledby. The purpose of aria-label is the same as that of aria-labelledby. It provides the user with a recognizable name of the object.

#### 2.4.1.12 "aria-labelledby" Characteristic Description

The description of the "aria-labelledby" characteristic for the "BaseHTML5" class is given in Table 2.4.1.12.

Table 2.4.1.12 Description of the "aria-labelledby" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-labelledby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the tag (or tags) that labels the current element. See related aria-label and aria-describedby. The purpose of aria-labelledby is the same as that of aria-label. It provides the user with a recognizable name of the object. The most common accessibility API mapping for a label is the accessible name property. If the label text is visible on screen, authors SHOULD use aria-labelledby and SHOULD NOT use aria-label. Use aria-label only if the interface is such that it is not possible to have a visible label on the screen. As required by the text alternative computation, user agents give precedence to aria-labelledby over aria-label when computing the accessible name property. The aria-labelledby attribute is similar to aria-describedby in that both reference other elements to calculate a text alternative, but a label should be concise, where a description is intended to provide more verbose information.

#### 2.4.1.13 "aria-level" Characteristic Description

The description of the "aria-level" characteristic for the "BaseHTML5" class is given in Table 2.4.1.13.

Table 2.4.1.13 Description of the "aria-level" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-level
Data Type | AriaLevelInteger
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines the hierarchical level of an tag within a structure. This can be applied inside trees to tree items, to headings inside a document, to nested grids, nested tablists and to other structural items that may appear inside a container or participate in an ownership hierarchy. The value for aria-level is an integer greater than or equal to 1.

#### 2.4.1.14 "aria-live" Characteristic Description

The description of the "aria-live" characteristic for the "BaseHTML5" class is given in Table 2.4.1.14.

Table 2.4.1.14 Description of the "aria-live" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-live
Data Type | ARIALiveValue
Value Space | Enumerated value set of: { off | polite | assertive } Default = "off".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates that a tag will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. The values of this attribute are expressed in degrees of importance. When regions are specified as polite, assistive technologies will notify users of updates but generally do not interrupt the current task, and updates take low priority. When regions are specified as assertive, assistive technologies will immediately notify the user, and could potentially clear the speech queue of previous updates.

#### 2.4.1.15 "aria-orientation" Characteristic Description

The description of the "aria-orientation" characteristic for the "BaseHTML5" class is given in Table 2.4.1.15.

Table 2.4.1.15 Description of the "aria-orientation" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-orientation
Data Type | ARIAOrientationValue
Value Space | Enumerated value set of: { vertical | horizontal } Default = "horizontal".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates whether the tag and orientation is horizontal or vertical.

#### 2.4.1.16 "aria-owns" Characteristic Description

The description of the "aria-owns" characteristic for the "BaseHTML5" class is given in Table 2.4.1.16.

Table 2.4.1.16 Description of the "aria-owns" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-owns
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. See related aria-controls. The value of the aria-owns attribute is a space-separated list of IDREFS that reference one or more elements in the document by ID.

#### 2.4.1.17 "dataExtension" Characteristic Description

The description of the "dataExtension" characteristic for the "BaseHTML5" class is given in Table 2.4.1.17.

Table 2.4.1.17 Description of the "dataExtension" characteristic for the "BaseHTML5" class.
Descriptor | Definition
--- | ---
Characteristic Name | dataExtension
Data Type | DataHTML5Extension
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is the HTML5 extension characteristic. A custom data characteristic is a characteristic in no namespace whose name starts with the string 'data-', has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters.

## 2.5. Abstract Class Descriptions

All of the abstract data classes used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.2.

### 2.5.1 FlowContentModelHTML5 Class Description

The data model for the "FlowContentModelHTML5" class is shown in Figure 2.5.1 and the accompanying definition in Table 2.5.1

Figure 2.5.1 - FlowContentModelHTML5 class definitions.

Table 2.5.1 Description of the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Class Name | FlowContentModelHTML5
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: BDI Figure FlowGroupHTML5
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: img br object em a code span sub acronym big tt kbd q i dfn abbr strong sup var small samp b cite bdo bdi figure audio video label article aside footer header nav section pre h1 h2 h3 h4 h5 h6 p address dl ol ul hr ssmlGroup ruby
Description | This is the abstract class that is used to provide the set of HTML tag options defined as flow content. The formal definition of flow content is given in [QTI, 16a].

#### 2.5.1.1 "img" Attribute Description

The description of the "img" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.1.

Table 2.5.1.1 Description of the "img" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | img
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'img' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.2 "br" Attribute Description

The description of the "br" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.2.

Table 2.5.1.2 Description of the "br" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | br
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'br' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.3 "object" Attribute Description

The description of the "object" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.3.

Table 2.5.1.3 Description of the "object" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | object
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'object' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.4 "em" Attribute Description

The description of the "em" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.4.

Table 2.5.1.4 Description of the "em" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | em
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'em' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.5 "a" Attribute Description

The description of the "a" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.5.

Table 2.5.1.5 Description of the "a" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | a
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'a' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.6 "code" Attribute Description

The description of the "code" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.6.

Table 2.5.1.6 Description of the "code" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | code
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'code' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.7 "span" Attribute Description

The description of the "span" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.7.

Table 2.5.1.7 Description of the "span" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | span
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'span' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.8 "sub" Attribute Description

The description of the "sub" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.8.

Table 2.5.1.8 Description of the "sub" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | sub
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'sub' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.9 "acronym" Attribute Description

The description of the "acronym" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.9.

Table 2.5.1.9 Description of the "acronym" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | acronym
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'acronym' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.10 "big" Attribute Description

The description of the "big" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.10.

Table 2.5.1.10 Description of the "big" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | big
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'big' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.11 "tt" Attribute Description

The description of the "tt" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.11.

Table 2.5.1.11 Description of the "tt" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | tt
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'tt' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.12 "kbd" Attribute Description

The description of the "kbd" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.12.

Table 2.5.1.12 Description of the "kbd" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | kbd
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'kbd' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.13 "q" Attribute Description

The description of the "q" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.13.

Table 2.5.1.13 Description of the "q" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | q
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'q' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.14 "i" Attribute Description

The description of the "i" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.14.

Table 2.5.1.14 Description of the "i" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | i
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'i' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.15 "dfn" Attribute Description

The description of the "dfn" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.15.

Table 2.5.1.15 Description of the "dfn" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | dfn
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'dfn' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.16 "abbr" Attribute Description

The description of the "abbr" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.16.

Table 2.5.1.16 Description of the "abbr" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | abbr
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'abbr' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.17 "strong" Attribute Description

The description of the "strong" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.17.

Table 2.5.1.17 Description of the "strong" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | strong
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'strong' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.18 "sup" Attribute Description

The description of the "sup" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.18.

Table 2.5.1.18 Description of the "sup" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | sup
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'sup' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.19 "var" Attribute Description

The description of the "var" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.19.

Table 2.5.1.19 Description of the "var" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | var
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'var' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.20 "small" Attribute Description

The description of the "small" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.20.

Table 2.5.1.20 Description of the "small" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | small
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'small' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.21 "samp" Attribute Description

The description of the "samp" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.21.

Table 2.5.1.21 Description of the "samp" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | samp
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'samp' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.22 "b" Attribute Description

The description of the "b" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.22.

Table 2.5.1.22 Description of the "b" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | b
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'b' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.23 "cite" Attribute Description

The description of the "cite" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.23.

Table 2.5.1.23 Description of the "cite" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | cite
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'cite' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.24 "bdo" Attribute Description

The description of the "bdo" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.24.

Table 2.5.1.24 Description of the "bdo" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | bdo
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'bdo' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.25 "bdi" Attribute Description

The description of the "bdi" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.25.

Table 2.5.1.25 Description of the "bdi" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | bdi
Data Type | BDI
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'bdi' tag for the HTML. This is taken from the QTI HTML5.

#### 2.5.1.26 "figure" Attribute Description

The description of the "figure" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.26.

Table 2.5.1.26 Description of the "figure" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | figure
Data Type | Figure
Value Space | Container [ Unordered ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'figure' tag for the HTML. This is taken from the QTI HTML5.

#### 2.5.1.27 "audio" Attribute Description

The description of the "audio" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.27.

Table 2.5.1.27 Description of the "audio" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | audio
Data Type | Audio
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'audio' tag for the HTML. This is taken from the QTI HTML5.

#### 2.5.1.28 "video" Attribute Description

The description of the "video" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.28.

Table 2.5.1.28 Description of the "video" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | video
Data Type | Video
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'video' tag for the HTML. This is taken from the QTI HTML5.

#### 2.5.1.29 "label" Attribute Description

The description of the "label" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.29.

Table 2.5.1.29 Description of the "label" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | label
Data Type | Label
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'label' tag for the HTML. This is taken from the QTI HTML but placed in the HTML5 due to a clash with another tag already in QTI ASI.

#### 2.5.1.30 "article" Attribute Description

The description of the "article" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.30.

Table 2.5.1.30 Description of the "article" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | article
Data Type | Article
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'article' tag for the HTML. This is taken from the QTI HTML5.

#### 2.5.1.31 "aside" Attribute Description

The description of the "aside" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.31.

Table 2.5.1.31 Description of the "aside" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | aside
Data Type | Aside
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'aside' tag for the HTML. This is taken from the QTI HTML5.

#### 2.5.1.32 "footer" Attribute Description

The description of the "footer" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.32.

Table 2.5.1.32 Description of the "footer" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | footer
Data Type | Footer
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'footer' tag for the HTML. This is taken from the QTI HTML5.

#### 2.5.1.33 "header" Attribute Description

The description of the "header" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.33.

Table 2.5.1.33 Description of the "header" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | header
Data Type | Header
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'header' tag for the HTML. This is taken from the QTI HTML5.

#### 2.5.1.34 "nav" Attribute Description

The description of the "nav" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.34.

Table 2.5.1.34 Description of the "nav" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | nav
Data Type | Nav
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'nav' tag for the HTML. This is taken from the QTI HTML5.

#### 2.5.1.35 "section" Attribute Description

The description of the "section" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.35.

Table 2.5.1.35 Description of the "section" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | section
Data Type | Section
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'section' tag for the HTML. This is taken from the QTI HTML5.

#### 2.5.1.36 "pre" Attribute Description

The description of the "pre" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.36.

Table 2.5.1.36 Description of the "pre" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | pre
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'pre' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.37 "h1" Attribute Description

The description of the "h1" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.37.

Table 2.5.1.37 Description of the "h1" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | h1
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'h1' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.38 "h2" Attribute Description

The description of the "h2" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.38.

Table 2.5.1.38 Description of the "h2" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | h2
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'h2' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.39 "h3" Attribute Description

The description of the "h3" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.39.

Table 2.5.1.39 Description of the "h3" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | h3
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'h3' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.40 "h4" Attribute Description

The description of the "h4" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.40.

Table 2.5.1.40 Description of the "h4" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | h4
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'h4' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.41 "h5" Attribute Description

The description of the "h5" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.41.

Table 2.5.1.41 Description of the "h5" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | h5
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'h5' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.42 "h6" Attribute Description

The description of the "h6" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.42.

Table 2.5.1.42 Description of the "h6" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | h6
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'h6' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.43 "p" Attribute Description

The description of the "p" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.43.

Table 2.5.1.43 Description of the "p" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | p
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'p' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.44 "address" Attribute Description

The description of the "address" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.44.

Table 2.5.1.44 Description of the "address" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | address
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'address' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.45 "dl" Attribute Description

The description of the "dl" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.45.

Table 2.5.1.45 Description of the "dl" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | dl
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'dl' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.46 "ol" Attribute Description

The description of the "ol" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.46.

Table 2.5.1.46 Description of the "ol" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | ol
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'ol' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.47 "ul" Attribute Description

The description of the "ul" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.47.

Table 2.5.1.47 Description of the "ul" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | ul
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'ul' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.48 "hr" Attribute Description

The description of the "hr" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.48.

Table 2.5.1.48 Description of the "hr" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | hr
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'hr' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.1.49 "ssmlGroup" Attribute Description

The description of the "ssmlGroup" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.49.

Table 2.5.1.49 Description of the "ssmlGroup" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | ssmlGroup
Data Type | SSMLGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that is used to offer the set of SSML tags for annotating the content.

#### 2.5.1.50 "ruby" Attribute Description

The description of the "ruby" attribute for the "FlowContentModelHTML5" class is given in Table 2.5.1.50.

Table 2.5.1.50 Description of the "ruby" attribute for the "FlowContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | ruby
Data Type | Ruby
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'ruby' tag for the HTML. This is taken from the QTI HTML5.

### 2.5.2 FlowGroupHTML5 Class Description

The data model for the "FlowGroupHTML5" class is shown in Figure 2.5.2 and the accompanying definition in Table 2.5.2

Figure 2.5.2 - FlowGroupHTML5 class definitions.

Table 2.5.2 Description of the "FlowGroupHTML5" class.
Descriptor | Definition
--- | ---
Class Name | FlowGroupHTML5
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: Article Aside FigCaption Footer Header Label Nav Section
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: math math include flowContentModel
Description | This is the abstract class that provides the selection of the flow group content, namely between: MathML 2, MathML 3, XInclude and the flow content model as defined under HTML (see the abstract class FlowContentModel for more details).

#### 2.5.2.1 "math" Attribute Description

The description of the "math" attribute for the "FlowGroupHTML5" class is given in Table 2.5.2.1.

Table 2.5.2.1 Description of the "math" attribute for the "FlowGroupHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the option for the MathML 2 content.

#### 2.5.2.2 "math" Attribute Description

The description of the "math" attribute for the "FlowGroupHTML5" class is given in Table 2.5.2.2.

Table 2.5.2.2 Description of the "math" attribute for the "FlowGroupHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the option for the MathML 3 content.

#### 2.5.2.3 "include" Attribute Description

The description of the "include" attribute for the "FlowGroupHTML5" class is given in Table 2.5.2.3.

Table 2.5.2.3 Description of the "include" attribute for the "FlowGroupHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the option for the inclusion of content fragments. In the case of XML-based bindings this makes use of the XInclude standard.

#### 2.5.2.4 "flowContentModel" Attribute Description

The description of the "flowContentModel" attribute for the "FlowGroupHTML5" class is given in Table 2.5.2.4.

Table 2.5.2.4 Description of the "flowContentModel" attribute for the "FlowGroupHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | flowContentModel
Data Type | FlowContentModelHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child. It is used to denote the permitted flow content i.e. the permitted set of HTML children.

### 2.5.3 PhraseRBSelection Class Description

The data model for the "PhraseRBSelection" class is shown in Figure 2.5.3 and the accompanying definition in Table 2.5.3

Figure 2.5.3 - PhraseRBSelection class definitions.

Table 2.5.3 Description of the "PhraseRBSelection" class.
Descriptor | Definition
--- | ---
Class Name | PhraseRBSelection
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: RubySelection
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: phrasingContentModel rb
Description | This is an abstract class that forms a part of the Ruby annotation. It enables the Ruby markup to be composed of combinations of the HTML5 Phrasing content and 'rb' tags.

#### 2.5.3.1 "phrasingContentModel" Attribute Description

The description of the "phrasingContentModel" attribute for the "PhraseRBSelection" class is given in Table 2.5.3.1.

Table 2.5.3.1 Description of the "phrasingContentModel" attribute for the "PhraseRBSelection" class.
Descriptor | Definition
--- | ---
Attribute Name | phrasingContentModel
Data Type | PhrasingContentModelHTML5
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that allows the contents to be composed of the HTML phrasing content.

#### 2.5.3.2 "rb" Attribute Description

The description of the "rb" attribute for the "PhraseRBSelection" class is given in Table 2.5.3.2.

Table 2.5.3.2 Description of the "rb" attribute for the "PhraseRBSelection" class.
Descriptor | Definition
--- | ---
Attribute Name | rb
Data Type | RB
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | The 'rp' Ruby annotation tag option.

### 2.5.4 PhrasingContentModelHTML5 Class Description

The data model for the "PhrasingContentModelHTML5" class is shown in Figure 2.5.4 and the accompanying definition in Table 2.5.4

Figure 2.5.4 - PhrasingContentModelHTML5 class definitions.

Table 2.5.4 Description of the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Class Name | PhrasingContentModelHTML5
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: PhraseRBSelection RB RP RT RTC
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: a abbr b bdo br cite code dfn em i img kbd object q samp small span strong sub sup var audio bdi label ruby video
Description | This is the abstract class that is used to provide the set of HTML tag options defined as phrasing content. The formal definition of Phrasing content is given in [HTML5, 14].

#### 2.5.4.1 "a" Attribute Description

The description of the "a" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.1.

Table 2.5.4.1 Description of the "a" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | a
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'a' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.2 "abbr" Attribute Description

The description of the "abbr" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.2.

Table 2.5.4.2 Description of the "abbr" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | abbr
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'abbr' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.3 "b" Attribute Description

The description of the "b" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.3.

Table 2.5.4.3 Description of the "b" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | b
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'b' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.4 "bdo" Attribute Description

The description of the "bdo" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.4.

Table 2.5.4.4 Description of the "bdo" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | bdo
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'bdo' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.5 "br" Attribute Description

The description of the "br" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.5.

Table 2.5.4.5 Description of the "br" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | br
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'br' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.6 "cite" Attribute Description

The description of the "cite" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.6.

Table 2.5.4.6 Description of the "cite" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | cite
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'cite' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.7 "code" Attribute Description

The description of the "code" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.7.

Table 2.5.4.7 Description of the "code" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | code
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'code' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.8 "dfn" Attribute Description

The description of the "dfn" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.8.

Table 2.5.4.8 Description of the "dfn" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | dfn
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'dfn' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.9 "em" Attribute Description

The description of the "em" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.9.

Table 2.5.4.9 Description of the "em" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | em
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'em' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.10 "i" Attribute Description

The description of the "i" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.10.

Table 2.5.4.10 Description of the "i" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | i
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'i' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.11 "img" Attribute Description

The description of the "img" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.11.

Table 2.5.4.11 Description of the "img" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | img
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'img' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.12 "kbd" Attribute Description

The description of the "kbd" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.12.

Table 2.5.4.12 Description of the "kbd" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | kbd
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'kbd' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.13 "object" Attribute Description

The description of the "object" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.13.

Table 2.5.4.13 Description of the "object" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | object
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'object' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.14 "q" Attribute Description

The description of the "q" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.14.

Table 2.5.4.14 Description of the "q" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | q
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'q' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.15 "samp" Attribute Description

The description of the "samp" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.15.

Table 2.5.4.15 Description of the "samp" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | samp
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'samp' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.16 "small" Attribute Description

The description of the "small" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.16.

Table 2.5.4.16 Description of the "small" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | small
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'small' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.17 "span" Attribute Description

The description of the "span" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.17.

Table 2.5.4.17 Description of the "span" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | span
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'span' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.18 "strong" Attribute Description

The description of the "strong" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.18.

Table 2.5.4.18 Description of the "strong" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | strong
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'strong' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.19 "sub" Attribute Description

The description of the "sub" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.19.

Table 2.5.4.19 Description of the "sub" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | sub
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'sub' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.20 "sup" Attribute Description

The description of the "sup" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.20.

Table 2.5.4.20 Description of the "sup" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | sup
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'sup' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.21 "var" Attribute Description

The description of the "var" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.21.

Table 2.5.4.21 Description of the "var" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | var
Data Type | QTIv2p2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'var' tag for the HTML. This is taken from the QTI ASI.

#### 2.5.4.22 "audio" Attribute Description

The description of the "audio" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.22.

Table 2.5.4.22 Description of the "audio" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | audio
Data Type | Audio
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'audio' tag for the HTML5. This is taken from the QTI HTML5.

#### 2.5.4.23 "bdi" Attribute Description

The description of the "bdi" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.23.

Table 2.5.4.23 Description of the "bdi" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | bdi
Data Type | BDI
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'bdi' tag for the HTML5. This is taken from the QTI HTML5.

#### 2.5.4.24 "label" Attribute Description

The description of the "label" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.24.

Table 2.5.4.24 Description of the "label" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | label
Data Type | Label
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'label' tag for the HTML5. This is taken from the QTI HTML but placed in the HTML5 due to a clash with another tag already in QTI ASI.

#### 2.5.4.25 "ruby" Attribute Description

The description of the "ruby" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.25.

Table 2.5.4.25 Description of the "ruby" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | ruby
Data Type | Ruby
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'ruby' tag for the HTML5. This is taken from the QTI HTML5.

#### 2.5.4.26 "video" Attribute Description

The description of the "video" attribute for the "PhrasingContentModelHTML5" class is given in Table 2.5.4.26.

Table 2.5.4.26 Description of the "video" attribute for the "PhrasingContentModelHTML5" class.
Descriptor | Definition
--- | ---
Attribute Name | video
Data Type | Video
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the 'video' tag for the HTML5. This is taken from the QTI HTML5.

### 2.5.5 RPRTSelection Class Description

The data model for the "RPRTSelection" class is shown in Figure 2.5.5 and the accompanying definition in Table 2.5.5

Figure 2.5.5 - RPRTSelection class definitions.

Table 2.5.5 Description of the "RPRTSelection" class.
Descriptor | Definition
--- | ---
Class Name | RPRTSelection
Class Type | Abstract Container [ Unordered ]
Parents | The set of parent classes are: RubySelection
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: rp rtrtcSelection
Description | This is an abstract class that provides the choice between the 'rp', 'rt' and 'rtc' Ruby annotation tags.

#### 2.5.5.1 "rp" Attribute Description

The description of the "rp" attribute for the "RPRTSelection" class is given in Table 2.5.5.1.

Table 2.5.5.1 Description of the "rp" attribute for the "RPRTSelection" class.
Descriptor | Definition
--- | ---
Attribute Name | rp
Data Type | RP
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'rp' Ruby annotation tag option.

#### 2.5.5.2 "rtrtcSelection" Attribute Description

The description of the "rtrtcSelection" attribute for the "RPRTSelection" class is given in Table 2.5.5.2.

Table 2.5.5.2 Description of the "rtrtcSelection" attribute for the "RPRTSelection" class.
Descriptor | Definition
--- | ---
Attribute Name | rtrtcSelection
Data Type | RTRTCSelection
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that rovides choices between the 'rt' and 'rtc' Ruby annotation tag option.

### 2.5.6 RTRTCSelection Class Description

The data model for the "RTRTCSelection" class is shown in Figure 2.5.6 and the accompanying definition in Table 2.5.6

Figure 2.5.6 - RTRTCSelection class definitions.

Table 2.5.6 Description of the "RTRTCSelection" class.
Descriptor | Definition
--- | ---
Class Name | RTRTCSelection
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: RPRTSelection
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: rt rtc
Description | This is an abstract class that provides the choice between the 'rt' and the 'rtc' Ruby annotation tags.

#### 2.5.6.1 "rt" Attribute Description

The description of the "rt" attribute for the "RTRTCSelection" class is given in Table 2.5.6.1.

Table 2.5.6.1 Description of the "rt" attribute for the "RTRTCSelection" class.
Descriptor | Definition
--- | ---
Attribute Name | rt
Data Type | RT
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The 'rt' Ruby annotation tag option.

#### 2.5.6.2 "rtc" Attribute Description

The description of the "rtc" attribute for the "RTRTCSelection" class is given in Table 2.5.6.2.

Table 2.5.6.2 Description of the "rtc" attribute for the "RTRTCSelection" class.
Descriptor | Definition
--- | ---
Attribute Name | rtc
Data Type | RTC
Value Space | Container [ Selection ]
Scope | Global ("+")
Multiplicity | [1]
Description | The 'rtc' Ruby annotation tag option.

### 2.5.7 RubySelection Class Description

The data model for the "RubySelection" class is shown in Figure 2.5.7 and the accompanying definition in Table 2.5.7

Figure 2.5.7 - RubySelection class definitions.

Table 2.5.7 Description of the "RubySelection" class.
Descriptor | Definition
--- | ---
Class Name | RubySelection
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: Ruby
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: phraseSelection rprtSelection
Description | This is an abstract class that forms a part of the Ruby annotation. It enables the Ruby markup to be composed of combinations of the HTML5 Phrasing content and the 'rb' tags, and the 'rp', 'rt' and rtc' tags.

#### 2.5.7.1 "phraseSelection" Attribute Description

The description of the "phraseSelection" attribute for the "RubySelection" class is given in Table 2.5.7.1.

Table 2.5.7.1 Description of the "phraseSelection" attribute for the "RubySelection" class.
Descriptor | Definition
--- | ---
Attribute Name | phraseSelection
Data Type | PhraseRBSelection
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that allows the contents to be composed of the HTML phrasing content and 'rb' tags.

#### 2.5.7.2 "rprtSelection" Attribute Description

The description of the "rprtSelection" attribute for the "RubySelection" class is given in Table 2.5.7.2.

Table 2.5.7.2 Description of the "rprtSelection" attribute for the "RubySelection" class.
Descriptor | Definition
--- | ---
Attribute Name | rprtSelection
Data Type | RPRTSelection
Value Space | Abstract Container [ Unordered ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the content to be based upon various combinations of the 'rp', 'rt' and rtc' tags.

### 2.5.8 SSMLGroup Class Description

The data model for the "SSMLGroup" class is shown in Figure 2.5.8 and the accompanying definition in Table 2.5.8

Figure 2.5.8 - SSMLGroup class definitions.

Table 2.5.8 Description of the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Class Name | SSMLGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: FlowContentModelHTML5
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: p s say-as phoneme sub voice emphasis break prosody mark audio speak
Description | This is an abstract class that enables the set of SSML annotations to be used within the HTML5 content. SSML is part of a larger set of markup specifications for voice browsers developed through the open processes of the W3C. It is designed to provide a rich, XML-based markup language for assisting the generation of synthetic speech in Web and other applications. The essential role of the markup language is to give authors of synthesizable content a standard way to control aspects of speech output such as pronunciation, volume, pitch, rate, etc. across different synthesis-capable platforms.

#### 2.5.8.1 "p" Attribute Description

The description of the "p" attribute for the "SSMLGroup" class is given in Table 2.5.8.1.

Table 2.5.8.1 Description of the "p" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | p
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. A 'p' tag represents a paragraph.

#### 2.5.8.2 "s" Attribute Description

The description of the "s" attribute for the "SSMLGroup" class is given in Table 2.5.8.2.

Table 2.5.8.2 Description of the "s" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | s
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. A 's' tag represents a sentence.

#### 2.5.8.3 "say-as" Attribute Description

The description of the "say-as" attribute for the "SSMLGroup" class is given in Table 2.5.8.3.

Table 2.5.8.3 Description of the "say-as" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | say-as
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The 'say-as' tag allows the author to indicate information on the type of text construct contained within the tag and to help specify the level of detail for rendering the contained text. Defining a comprehensive set of text format types is difficult because of the variety of languages that have to be considered and because of the innate flexibility of written languages. SSML only specifies the 'say-as' tag, its characteristics, and their purpose. It does not enumerate the possible values for the characteristics. The Working Group expects to produce a separate document that will define standard values and associated normative behavior for these values.

#### 2.5.8.4 "phoneme" Attribute Description

The description of the "phoneme" attribute for the "SSMLGroup" class is given in Table 2.5.8.4.

Table 2.5.8.4 Description of the "phoneme" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | phoneme
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The phoneme tag provides a phonemic/phonetic pronunciation for the contained text. The phoneme tag may be empty. However, it is recommended that the tag contain human-readable text that can be used for non-spoken rendering of the document. For example, the content may be displayed visually for users with hearing impairments.

#### 2.5.8.5 "sub" Attribute Description

The description of the "sub" attribute for the "SSMLGroup" class is given in Table 2.5.8.5.

Table 2.5.8.5 Description of the "sub" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | sub
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The 'sub' tag is employed to indicate that the text in the alias attribute value replaces the contained text for pronunciation. This allows a document to contain both a spoken and written form.

#### 2.5.8.6 "voice" Attribute Description

The description of the "voice" attribute for the "SSMLGroup" class is given in Table 2.5.8.6.

Table 2.5.8.6 Description of the "voice" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | voice
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The 'voice' tag is a production element that requests a change in speaking voice.

#### 2.5.8.7 "emphasis" Attribute Description

The description of the "emphasis" attribute for the "SSMLGroup" class is given in Table 2.5.8.7.

Table 2.5.8.7 Description of the "emphasis" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | emphasis
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The emphasis tag requests that the contained text be spoken with emphasis (also referred to as prominence or stress). The synthesis processor determines how to render emphasis since the nature of emphasis differs between languages, dialects or even voices.

#### 2.5.8.8 "break" Attribute Description

The description of the "break" attribute for the "SSMLGroup" class is given in Table 2.5.8.8.

Table 2.5.8.8 Description of the "break" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | break
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The 'break' tag is an empty tag that controls the pausing or other prosodic boundaries between words. The use of the break tag between any pair of words is optional. If the tag is not present between words, the synthesis processor is expected to automatically determine a break based on the linguistic context. In practice, the break tag is most often used to override the typical automatic behavior of a synthesis processor.

#### 2.5.8.9 "prosody" Attribute Description

The description of the "prosody" attribute for the "SSMLGroup" class is given in Table 2.5.8.9.

Table 2.5.8.9 Description of the "prosody" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | prosody
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The 'prosody' tag permits control of the pitch, speaking rate and volume of the speech output.

#### 2.5.8.10 "mark" Attribute Description

The description of the "mark" attribute for the "SSMLGroup" class is given in Table 2.5.8.10.

Table 2.5.8.10 Description of the "mark" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | mark
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. A 'mark' tag is an empty tag that places a marker into the text/tag sequence.

#### 2.5.8.11 "audio" Attribute Description

The description of the "audio" attribute for the "SSMLGroup" class is given in Table 2.5.8.11.

Table 2.5.8.11 Description of the "audio" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | audio
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The 'audio' tag supports the insertion of recorded audio files and the insertion of other audio formats in conjunction with synthesized speech output. The audio tag may be empty. If the audio tag is not empty then the contents should be the marked-up text to be spoken if the audio document is not available. The alternate content may include text, speech markup, desc tags, or other audio tags.

#### 2.5.8.12 "speak" Attribute Description

The description of the "speak" attribute for the "SSMLGroup" class is given in Table 2.5.8.12.

Table 2.5.8.12 Description of the "speak" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | speak
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The 'speak' tag is the root for the markup annotation.

## 2.6. DerivedClass Descriptions

All of the derived data classes used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.2.

### 2.6.1 AriaLevelInteger Class Description

The data model for the "AriaLevelInteger" class is shown in Figure 2.6.1 and the accompanying definition in Table 2.6.1.

Figure 2.6.1 - AriaLevelInteger class definitions.

Table 2.6.1 Description of the "AriaLevelInteger" class.
Descriptor | Definition
--- | ---
Class Name | AriaLevelInteger
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: BaseHTML5 BaseHTML5Empty
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Integer (PrimitiveType)
Characteristics | There are no characteristics.
Children | The set of children attributes are: minInclusive
Description | Defines the datatype for the 'aria-level' property. This is an integer that must be '1' or greater.

#### 2.6.1.1 "minInclusive" Attribute Description

The description of the "minInclusive" attribute for the "AriaLevelInteger" class is given in Table 2.6.1.

Table 2.6.1 Description of the "minInclusive" attribute for the "AriaLevelInteger" class.
Descriptor | Definition
--- | ---
Attribute Name | minInclusive
Data Type | Integer (Primitive-type)
Value Space | See Appendix A1.3. Default = "1".
Scope | Local ("-")
Multiplicity | [1]
Description | Constrains the value to be at least '1'.

### 2.6.2 BaseHTML5Empty Class Description

The data model for the "BaseHTML5Empty" class is shown in Figure 2.6.2 and the accompanying definition in Table 2.6.2.

Figure 2.6.2 - BaseHTML5Empty class definitions.

Table 2.6.2 Description of the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Class Name | BaseHTML5Empty
Class Type | Container [ DerivedType ]
Parents | There are no parent classes.
Derived Classes | The set of derived classes are: Source Track
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: id language title label class dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | This is the base class for the HTML5 features that have no children tags i.e. must be empty. This consists of a set of children characteristics.

#### 2.6.2.1 "id" Characteristic Description

The description of the "id" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.1.

Table 2.6.2.1 Description of the "id" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | id
Data Type | UniqueIdentifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The unique identifier assigned to the HTML tag. This must be unique otherwise features such as the APIP accessibilty text cannot be supplied as an alternative.

#### 2.6.2.2 "language" Characteristic Description

The description of the "language" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.2.

Table 2.6.2.2 Description of the "language" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | language
Data Type | Language (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This attribute specifies the primary language for the tag's contents and for any of the tag's characeristics that contain text. Its value must be a valid BCP 47 language tag, or the empty string. Setting the attribute to the empty string indicates that the primary language is unknown.

#### 2.6.2.3 "title" Characteristic Description

The description of the "title" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.3.

Table 2.6.2.3 Description of the "title" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | title
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The title attribute represents advisory information for the tag, such as would be appropriate for a tooltip. On a link, this could be the title or a description of the target resource; on an image, it could be the image credit or a description of the image; on a paragraph, it could be a footnote or commentary on the text; on a citation, it could be further information about the source; on interactive content, it could be a label for, or instructions for, use of the tag; and so forth. The value is text.

#### 2.6.2.4 "label" Characteristic Description

The description of the "label" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.4.

Table 2.6.2.4 Description of the "label" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The label characteristic represents information for the tag that can be used to identify it or its functionality, such as would be appropriate for a tooltip. The value is text.

#### 2.6.2.5 "class" Characteristic Description

The description of the "class" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.5.

Table 2.6.2.5 Description of the "class" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | class
Data Type | StringList
Value Space | The list consist of values of data-type(s): String (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | Every HTML tag may have a class characteristic specified. If specified, it must have a value that is a set of space-separated tokens representing the various classes to which the tag belongs.

#### 2.6.2.6 "dir" Characteristic Description

The description of the "dir" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.6.

Table 2.6.2.6 Description of the "dir" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | dir
Data Type | DirValue
Value Space | Enumerated value set of: { ltr | rtl | auto } Default = "auto".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Specifies the tag's text directionality.

#### 2.6.2.7 "role" Characteristic Description

The description of the "role" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.7.

Table 2.6.2.7 Description of the "role" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | role
Data Type | ARIARoleValue
Value Space | Enumerated value set of: { article | columnheader | definition | directory | document | group | heading | img | list | listitem | math | note | presentation | region | row | rowgroup | rowheader | separator | toolbar | button | checkbox | gridcell | link | log | option | radio | slider | spinbutton | status | tab | tabpanel | textbox | timer | listbox | radiogroup | tablist | complementary | contentinfo }
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the ARIA role. Roles are defined and described by their characteristics. Characteristics define the structural function of a role, such as what a role is, concepts behind it, and what instances the role can or must contain.

#### 2.6.2.8 "aria-controls" Characteristic Description

The description of the "aria-controls" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.8.

Table 2.6.2.8 Description of the "aria-controls" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-controls
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. This identifies the tag (or tags) whose contents or presence are controlled by the current tag.

#### 2.6.2.9 "aria-describedby" Characteristic Description

The description of the "aria-describedby" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.9.

Table 2.6.2.9 Description of the "aria-describedby" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-describedby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the tag (or tags) that describes the object.

#### 2.6.2.10 "aria-flowto" Characteristic Description

The description of the "aria-flowto" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.10.

Table 2.6.2.10 Description of the "aria-flowto" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-flowto
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the next tag (or tags) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.

#### 2.6.2.11 "aria-label" Characteristic Description

The description of the "aria-label" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.11.

Table 2.6.2.11 Description of the "aria-label" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines a string value that labels the current tag. See related aria-labelledby. The purpose of aria-label is the same as that of aria-labelledby. It provides the user with a recognizable name of the object.

#### 2.6.2.12 "aria-labelledby" Characteristic Description

The description of the "aria-labelledby" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.12.

Table 2.6.2.12 Description of the "aria-labelledby" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-labelledby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the tag (or tags) that labels the current element. See related aria-label and aria-describedby. The purpose of aria-labelledby is the same as that of aria-label. It provides the user with a recognizable name of the object. The most common accessibility API mapping for a label is the accessible name property. If the label text is visible on screen, authors SHOULD use aria-labelledby and SHOULD NOT use aria-label. Use aria-label only if the interface is such that it is not possible to have a visible label on the screen. As required by the text alternative computation, user agents give precedence to aria-labelledby over aria-label when computing the accessible name property. The aria-labelledby attribute is similar to aria-describedby in that both reference other elements to calculate a text alternative, but a label should be concise, where a description is intended to provide more verbose information.

#### 2.6.2.13 "aria-level" Characteristic Description

The description of the "aria-level" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.13.

Table 2.6.2.13 Description of the "aria-level" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-level
Data Type | AriaLevelInteger
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines the hierarchical level of an tag within a structure. This can be applied inside trees to tree items, to headings inside a document, to nested grids, nested tablists and to other structural items that may appear inside a container or participate in an ownership hierarchy. The value for aria-level is an integer greater than or equal to 1.

#### 2.6.2.14 "aria-live" Characteristic Description

The description of the "aria-live" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.14.

Table 2.6.2.14 Description of the "aria-live" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-live
Data Type | ARIALiveValue
Value Space | Enumerated value set of: { off | polite | assertive } Default = "off".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates that a tag will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. The values of this characteristic are expressed in degrees of importance. When regions are specified as polite, assistive technologies will notify users of updates but generally do not interrupt the current task, and updates take low priority. When regions are specified as assertive, assistive technologies will immediately notify the user, and could potentially clear the speech queue of previous updates.

#### 2.6.2.15 "aria-orientation" Characteristic Description

The description of the "aria-orientation" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.15.

Table 2.6.2.15 Description of the "aria-orientation" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-orientation
Data Type | ARIAOrientationValue
Value Space | Enumerated value set of: { vertical | horizontal } Default = "horizontal".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates whether the tag and orientation is horizontal or vertical.

#### 2.6.2.16 "aria-owns" Characteristic Description

The description of the "aria-owns" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.16.

Table 2.6.2.16 Description of the "aria-owns" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-owns
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. See related aria-controls. The value of the aria-owns characteristic is a space-separated list of IDREFS that reference one or more tags in the document by ID.

#### 2.6.2.17 "dataExtension" Characteristic Description

The description of the "dataExtension" characteristic for the "BaseHTML5Empty" class is given in Table 2.6.2.17.

Table 2.6.2.17 Description of the "dataExtension" characteristic for the "BaseHTML5Empty" class.
Descriptor | Definition
--- | ---
Characteristic Name | dataExtension
Data Type | DataHTML5Extension
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is the HTML5 extension characteristic. A custom data characteristic is an characteristic in no namespace whose name starts with the string 'data-', has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters.

### 2.6.3 DataHTML5Extension Class Description

The data model for the "DataHTML5Extension" class is shown in Figure 2.6.3 and the accompanying definition in Table 2.6.3.

Figure 2.6.3 - DataHTML5Extension class definitions.

Table 2.6.3 Description of the "DataHTML5Extension" class.
Descriptor | Definition
--- | ---
Class Name | DataHTML5Extension
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: BaseHTML5 BaseHTML5Empty
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: AnyTypeLax (PrimitiveType)
Characteristics | There are no characteristics.
Children | The set of children attributes are: pattern
Description | This data-type is used to define a constrained extension. The extension is in no namespace but has a name that starts with the string 'data-', has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters.

#### 2.6.3.1 "pattern" Attribute Description

The description of the "pattern" attribute for the "DataHTML5Extension" class is given in Table 2.6.3.

Table 2.6.3 Description of the "pattern" attribute for the "DataHTML5Extension" class.
Descriptor | Definition
--- | ---
Attribute Name | pattern
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3. Default = "(data-)[a-z|A-Z|0-9|-|.|_]+".
Scope | Local ("-")
Multiplicity | [1]
Description | This is the pattern that defines the regular expression for the name of the attrubute. It is a the string starting with 'data-', has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters.

### 2.6.4 MimeType Class Description

The data model for the "MimeType" class is shown in Figure 2.6.4 and the accompanying definition in Table 2.6.4.

Figure 2.6.4 - MimeType class definitions.

Table 2.6.4 Description of the "MimeType" class.
Descriptor | Definition
--- | ---
Class Name | MimeType
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: Source
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: NormalizedString (PrimitiveType)
Characteristics | There are no characteristics.
Children | The set of children attributes are: pattern
Description | The set of mime types (type and subtype), as defined by [RFC 2045].

#### 2.6.4.1 "pattern" Attribute Description

The description of the "pattern" attribute for the "MimeType" class is given in Table 2.6.4.

Table 2.6.4 Description of the "pattern" attribute for the "MimeType" class.
Descriptor | Definition
--- | ---
Attribute Name | pattern
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3. Default = "[\p{IsBasicLatin}-[()<>@,;:\\"/\[\]?=]]+/[\p{IsBasicLatin}-[()<>@,;:\\"/\[\]?=]]+".
Scope | Local ("-")
Multiplicity | [1]
Description | Defines the regular expression for a mimeType value.

### 2.6.5 URL Class Description

The data model for the "URL" class is shown in Figure 2.6.5 and the accompanying definition in Table 2.6.5.

Figure 2.6.5 - URL class definitions.

Table 2.6.5 Description of the "URL" class.
Descriptor | Definition
--- | ---
Class Name | URL
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: Audio Source Track Video
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: NormalizedString (PrimitiveType)
Characteristics | There are no characteristics.
Children | There are no children.
Description | This is a Uniform Resource Locator as defined in [RFC 1738].

### 2.6.6 UniqueIdentifier Class Description

The data model for the "UniqueIdentifier" class is shown in Figure 2.6.6 and the accompanying definition in Table 2.6.6.

Figure 2.6.6 - UniqueIdentifier class definitions.

Table 2.6.6 Description of the "UniqueIdentifier" class.
Descriptor | Definition
--- | ---
Class Name | UniqueIdentifier
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: BaseHTML5 BaseHTML5Empty
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: ID (PrimitiveType)
Characteristics | There are no characteristics.
Children | There are no children.
Description | This is a unique identifier i.e. it must be unique within the structure being exchanged. An identifier is simply a logical reference to another object in the item, such as an itemVariable or choice. An identifier is a string of characters that must start with a Letter or an underscore ('_') and contain only Letters, underscores, hyphens ('-'), period ('.', a.k.a. full-stop), Digits, CombiningChars and Extenders. Identifiers containing the period character are reserved for use in prefixing, as described in the definition of variable. The character classes Letter, Digit, CombiningChar and Extender are defined in the Extensible Markup Language (XML) 1.0 (Second Edition) [XML, 00]. Note particularly that identifiers may not contain the colon (':') character. Identifiers should have no more than 32 characters for compatibility with version 1. They are always compared case-sensitively.

## 2.7. Enumerated Vocabularies

All of the enumerated vocabularies used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.4.

### 2.7.1 ARIALiveValue Vocabulary Description

The vocabulary for the 'aria-live' property. This denotes the nature of the types of updates.The data model for the "ARIALiveValue" enumerated class is shown in Figure 2.7.1 and the accompanying vocabulary definition in Table 2.7.1.

Figure 2.7.1 - ARIALiveValue class definitions.

Table 2.7.1 Description of the "ARIALiveValue" enumerated vocabulary terms.
Term | Definition
--- | ---
assertive | This information has the highest priority and assistive technologies SHOULD notify the user immediately. Because an interruption may disorient users or cause them to not complete their current task, authors SHOULD NOT use the assertive value unless the interruption is imperative.
off | Updates to the region will not be presented to the user unless the assistive technology is currently focused on that region. This is the default value for the 'aria-live' property.
polite | (Background change) Assistive technologies SHOULD announce updates at the next graceful opportunity, such as at the end of speaking the current sentence or when the user pauses typing.

### 2.7.2 ARIAOrientationValue Vocabulary Description

The vocabulary for the 'aria-orientation' property i.e. for the orientation of the associated element.The data model for the "ARIAOrientationValue" enumerated class is shown in Figure 2.7.2 and the accompanying vocabulary definition in Table 2.7.2.

Figure 2.7.2 - ARIAOrientationValue class definitions.

Table 2.7.2 Description of the "ARIAOrientationValue" enumerated vocabulary terms.
Term | Definition
--- | ---
horizontal | The tag is oriented horizontally.
vertical | The tag is oriented vertically.

### 2.7.3 ARIARoleValue Vocabulary Description

The set of permitted values for the 'aria-roles' property (this is a subset of the full ARIA vocabulary i.e. the terms relevant to QTI).The data model for the "ARIARoleValue" enumerated class is shown in Figure 2.7.3 and the accompanying vocabulary definition in Table 2.7.3.

Figure 2.7.3 - ARIARoleValue class definitions.

Table 2.7.3 Description of the "ARIARoleValue" enumerated vocabulary terms.
Term | Definition
--- | ---
article | A section of a page that consists of a composition that forms an independent part of a document, page, or site.
button | An input that allows for user-triggered actions when clicked or pressed. See related link.
checkbox | A checkable input that has three possible values: true, false, or mixed.
columnheader | A cell containing header information for a column.
complementary | A supporting section of the document, designed to be complementary to the main content at a similar level in the DOM hierarchy, but remains meaningful when separated from the main content.
contentinfo | A large perceivable region that contains information about the parent document.
definition | A definition of a term or concept.
directory | A list of references to members of a group, such as a static table of contents.
document | A region containing related information that is declared as document content, as opposed to a web application.
gridcell | A cell in a grid or treegrid.
group | A set of user interface objects which are not intended to be included in a page summary or table of contents by assistive technologies.
heading | A heading for a section of the page.
img | A container for a collection of elements that form an image.
link | An interactive reference to an internal or external resource that, when activated, causes the user agent to navigate to that resource. See related button.
list | A group of non-interactive list items. See related listbox.
listbox | A widget that allows the user to select one or more items from a list of choices. See related combobox and list.
listitem | A single item in a list or directory.
log | A type of live region where new information is added in meaningful order and old information may disappear. See related marquee.
math | Content that represents a mathematical expression.
note | A section whose content is parenthetic or ancillary to the main content of the resource.
option | A selectable item in a select list.
presentation | An element whose implicit native role semantics will not be mapped to the accessibility API.
radio | A checkable input in a group of radio roles, only one of which can be checked at a time.
radiogroup | A group of radio buttons.
region | A large perceivable section of a web page or document, that is important enough to be included in a page summary or table of contents, for example, an area of the page containing live sporting event statistics.
row | A row of cells in a grid.
rowgroup | A group containing one or more row elements in a grid.
rowheader | A cell containing header information for a row in a grid.
separator | A divider that separates and distinguishes sections of content or groups of menuitems.
slider | A user input where the user selects a value from within a given range.
spinbutton | A form of range that expects the user to select from among discrete choices.
status | A container whose content is advisory information for the user but is not important enough to justify an alert, often but not necessarily presented as a status bar. See related alert.
tab | A grouping label providing a mechanism for selecting the tab content that is to be rendered to the user.
tablist | A list of tab elements, which are references to tabpanel elements.
tabpanel | A container for the resources associated with a tab, where each tab is contained in a tablist.
textbox | Input that allows free-form text as its value.
timer | A type of live region containing a numerical counter which indicates an amount of elapsed time from a start point, or the time remaining until an end point.
toolbar | A collection of commonly used function buttons or controls represented in compact visual form.

### 2.7.4 CORSSettings Vocabulary Description

The permitted vocabulary for CORS settings for the 'crossorigin' attribute for the media elements in HTML5.The data model for the "CORSSettings" enumerated class is shown in Figure 2.7.4 and the accompanying vocabulary definition in Table 2.7.4.

Figure 2.7.4 - CORSSettings class definitions.

Table 2.7.4 Description of the "CORSSettings" enumerated vocabulary terms.
Term | Definition
--- | ---
anonymous | Cross-origin CORS requests for the element will have the omit credentials flag set.
use-credentials | Cross-origin CORS requests for the element will not have the omit credentials flag set.

### 2.7.5 DirValue Vocabulary Description

The permitted vocabulary for the direction of the content presented as part of the HTML5 'bdi' tag.The data model for the "DirValue" enumerated class is shown in Figure 2.7.5 and the accompanying vocabulary definition in Table 2.7.5.

Figure 2.7.5 - DirValue class definitions.

Table 2.7.5 Description of the "DirValue" enumerated vocabulary terms.
Term | Definition
--- | ---
auto | Indicates that the contents of the element are explicitly directionally isolated text, but that the direction is to be determined programmatically using the contents of the element (as described below).
ltr | Indicates that the contents of the element are explicitly directionally isolated left-to-right text.
rtl | Indicates that the contents of the element are explicitly directionally isolated right-to-left text.

### 2.7.6 KindValue Vocabulary Description

The permitted vocabulary for the 'kind' charateristic used with the HTML5 tags such as 'track'.The data model for the "KindValue" enumerated class is shown in Figure 2.7.6 and the accompanying vocabulary definition in Table 2.7.6.

Figure 2.7.6 - KindValue class definitions.

Table 2.7.6 Description of the "KindValue" enumerated vocabulary terms.
Term | Definition
--- | ---
captions | Transcription or translation of the dialogue, sound effects, relevant musical cues, and other relevant audio information, suitable for when sound is unavailable or not clearly audible (e.g. because it is muted, drowned-out by ambient noise, or because the user is deaf). Overlaid on the video; labeled as appropriate for the hard-of-hearing.
chapters | Chapter titles, intended to be used for navigating the media resource. Displayed as an interactive (potentially nested) list in the user agent's interface.
descriptions | Textual descriptions of the video component of the media resource, intended for audio synthesis when the visual component is obscured, unavailable, or not usable (e.g. because the user is interacting with the application without a screen while driving, or because the user is blind). Synthesized as audio.
metadata | Tracks intended for use from script. Not displayed by the user agent.
subtitles | Transcription or translation of the dialogue, suitable for when the sound is available but not understood (e.g. because the user does not understand the language of the media resource's audio track). Overlaid on the video.

### 2.7.7 PreLoadValue Vocabulary Description

The vocabulary for the 'preload' attribute used on the media-based HTML5 tags e.g. 'audio', etc.The data model for the "PreLoadValue" enumerated class is shown in Figure 2.7.7 and the accompanying vocabulary definition in Table 2.7.7.

Figure 2.7.7 - PreLoadValue class definitions.

Table 2.7.7 Description of the "PreLoadValue" enumerated vocabulary terms.
Term | Definition
--- | ---
auto | Hints to the user agent that the user agent can put the user's needs first without risk to the server, up to and including optimistically downloading the entire resource.
metadata | Hints to the user agent that the author does not expect the user to need the media resource, but that fetching the resource metadata (dimensions, track list, duration, etc), and maybe even the first few frames, is reasonable. If the user agent precisely fetches no more than the metadata, then the media element will end up with its readyState attribute set to HAVE_METADATA; typically though, some frames will be obtained as well and it will probably be HAVE_CURRENT_DATA or HAVE_FUTURE_DATA. When the media resource is playing, hints to the user agent that bandwidth is to be considered scarce, e.g. suggesting throttling the download so that the media data is obtained at the slowest possible rate that still maintains consistent playback.
none | Hints to the user agent that either the author does not expect the user to need the media resource, or that the server wants to minimize unnecessary traffic. This state does not provide a hint regarding how aggressively to actually download the media resource if buffering starts anyway (e.g. once the user hits 'play').

## 2.8. List Class Descriptions

The set of list classes used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.2.

### 2.8.1 StringList Class Description

The data model for the "StringList" class is shown in Figure 2.8.1 and the accompanying definition in Table 2.8.1.

Figure 2.8.1 - StringList class definitions.

Table 2.8.1 Description of the "StringList" class.
Descriptor | Definition
--- | ---
Class Name | StringList
Class Type | Container [ List ]
Parents | The set of parent classes are: BaseHTML5 BaseHTML5Empty
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: String (PrimitiveType)
Characteristics | There are no characteristics.
Children | There are no children.
Description | The StringList is a list of Strings i.e. an unordered list of strings separated by spaces (a string must NOT contain a space). Each string is of primitiveType String.

## 2.9. Imported Class Descriptions

The set of imported classes (the classes that are referenced in this Information Model but defined in another separate Information Model) used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.6.

### 2.9.1 Include Class Description

The details for the "Include" class are shown in Table 2.9.1.

Table 2.9.1 Description of the "Include" imported class.
Descriptor | Definition
--- | ---
Import Class Name | Include
Parent Classes | The set of parent classes, and the associated children, that use this imported class are: FlowGroupHTML5 - include
Description | This denotes the XInclude specification. This is used to enable XML fragments to be included within the content layout.

### 2.9.2 MathML2 Class Description

The details for the "MathML2" class are shown in Table 2.9.2.

Table 2.9.2 Description of the "MathML2" imported class.
Descriptor | Definition
--- | ---
Import Class Name | MathML2
Parent Classes | The set of parent classes, and the associated children, that use this imported class are: FlowGroupHTML5 - math
Description | This denotes the MathML 2 specification. This is used to enable mathematical expressions to be defined using a standardised markup language. This refers to MathML version 2.

### 2.9.3 MathML3 Class Description

The details for the "MathML3" class are shown in Table 2.9.3.

Table 2.9.3 Description of the "MathML3" imported class.
Descriptor | Definition
--- | ---
Import Class Name | MathML3
Parent Classes | The set of parent classes, and the associated children, that use this imported class are: FlowGroupHTML5 - math
Description | This denotes the MathML 3.0 specification. This is used to enable mathematical expressions to be defined using a standardised markup language. This refers to MathML version 3.0.

### 2.9.4 QTIv2p2 Class Description

The details for the "QTIv2p2" class are shown in Table 2.9.4.

Table 2.9.4 Description of the "QTIv2p2" imported class.
Descriptor | Definition
--- | ---
Import Class Name | QTIv2p2
Parent Classes | The set of parent classes, and the associated children, that use this imported class are: FlowContentModelHTML5 - img, br, object, em, a, code, span, sub, acronym, big, tt, kbd, q, i, dfn, abbr, strong, sup, var, small, samp, b, cite, bdo, pre, h1, h2, h3, h4, h5, h6, p, address, dl, ol, ul, hr PhrasingContentModelHTML5 - a, abbr, b, bdo, br, cite, code, dfn, em, i, img, kbd, object, q, samp, small, span, strong, sub, sup, var
Description | This refers to the core QTI Assessment, Section and Item (ASI) standard. This enables the appropriate subset of the QTI to be used in this HTML5 context. It is a subset of the HTML features within the QTI ASI that are used within this HTML5 conetxt.

### 2.9.5 SSMLv1p1 Class Description

The details for the "SSMLv1p1" class are shown in Table 2.9.5.

Table 2.9.5 Description of the "SSMLv1p1" imported class.
Descriptor | Definition
--- | ---
Import Class Name | SSMLv1p1
Parent Classes | The set of parent classes, and the associated children, that use this imported class are: SSMLGroup - p, s, say-as, phoneme, sub, voice, emphasis, break, prosody, mark, audio, speak
Description | This denotes the Speech Synthesis Markup Language (SSML) standard. This allows all of the mark-up feaures to be for annotating the text content appropriately. This refers to SSMLv1.1. SSML is part of a larger set of markup specifications for voice browsers developed through the open processes of the W3C. It is designed to provide a rich, XML-based markup language for assisting the generation of synthetic speech in Web and other applications. The essential role of the markup language is to give authors of synthesizable content a standard way to control aspects of speech output such as pronunciation, volume, pitch, rate, etc. across different synthesis-capable platforms.

toc | top

# 3. XSD Binding

## 3.1. XSD Binding Overview

The XSD binding is described using a set of tables derived from the UML representation and a set of XML code snippets. The binding description consists of:

- UML/XSD Mapping Rules - the mapping rules that show the relationship between the information model (the UML representation) and the corresponding XSD components;
- XSD Files and Namespaces - the set of XSD files and the namespaces used within those files;
- Description of the XSD - the detailed description of the actual XSD (the XSD listing is provided in Appendix C);
- The Schematron Rules - the set of Schematron rules that have been created to further impose the constraints on the XML instances that are required by the information model but not possible using the standard XSD features.

An explanation of the structure and terms used XSD binding tables is given in Appendix B.

## 3.2. UML to XSD Mapping Rules

### 3.2.1 Root Attribute UML/XSD Mapping

The UML/XSD Mapping for the UML Root Attributes to the XSD Root Elements is given in Table 3.2.1. The syntax and semantics for this representation is described in Appendix B1.1.

Table 3.2.1 UML/XSD Mapping for the Root Attributes.
Attribute Name | UML Class | XSD Name | XSD Type | XSD Data Type
--- | --- | --- | --- | ---
article | Article | article | Element | Article.Type
aside | Aside | aside | Element | Aside.Type
audio | Audio | audio | Element | Audio.Type
bdi | BDI | bdi | Element | BDI.Type
figcaption | FigCaption | figcaption | Element | FigCaption.Type
figure | Figure | figure | Element | Figure.Type
footer | Footer | footer | Element | Footer.Type
header | Header | header | Element | Header.Type
label | Label | label | Element | Label.Type
nav | Nav | nav | Element | Nav.Type
rb | RB | rb | Element | RB.Type
rp | RP | rp | Element | RP.Type
rt | RT | rt | Element | RT.Type
rtc | RTC | rtc | Element | RTC.Type
ruby | Ruby | ruby | Element | Ruby.Type
section | Section | section | Element | Section.Type
source | Source | source | Element | Source.Type
track | Track | track | Element | Track.Type
video | Video | video | Element | Video.Type

### 3.2.2 Root Class UML/XSD Mapping

The syntax and semantics for the Root Class UML/XSD mapping representations is described in Appendix B1.2.

#### 3.2.2.1 Article Root Class Mapping

The UML/XSD Mapping for the "Article" Root Class is given in Table 3.2.2.1.

Table 3.2.2.1 UML/XSD Mapping for the "Article" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
Article | Root | Container [ Sequence ] | - N/A - | Article.Type | ComplexType
math | Attribute | [ Imported (MathML2) ] | XOR [0.. *] [1] | m2:math | Element (Global)
math | Attribute | [ Imported (MathML3) ] | XOR [0.. *] [1] | m3:math | Element (Global)
include | Attribute | [ Imported (Include) ] | XOR [0.. *] [1] | xi:include | Element (Global)
img | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:img | Element (Global)
br | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:br | Element (Global)
object | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:object | Element (Global)
em | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:em | Element (Global)
a | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:a | Element (Global)
code | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:code | Element (Global)
span | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:span | Element (Global)
sub | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sub | Element (Global)
acronym | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:acronym | Element (Global)
big | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:big | Element (Global)
tt | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:tt | Element (Global)
kbd | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:kbd | Element (Global)
q | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:q | Element (Global)
i | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:i | Element (Global)
dfn | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dfn | Element (Global)
abbr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:abbr | Element (Global)
strong | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:strong | Element (Global)
sup | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sup | Element (Global)
var | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:var | Element (Global)
small | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:small | Element (Global)
samp | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:samp | Element (Global)
b | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:b | Element (Global)
cite | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:cite | Element (Global)
bdo | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:bdo | Element (Global)
bdi | Attribute | BDI | XOR [0.. *] [1] | bdi | Element (Global)
figure | Attribute | Figure | XOR [0.. *] [1] | figure | Element (Global)
audio | Attribute | Audio | XOR [0.. *] [1] | audio | Element (Global)
video | Attribute | Video | XOR [0.. *] [1] | video | Element (Global)
label | Attribute | Label | XOR [0.. *] [1] | label | Element (Global)
article | Attribute | Article | XOR [0.. *] [1] | article | Element (Global)
aside | Attribute | Aside | XOR [0.. *] [1] | aside | Element (Global)
footer | Attribute | Footer | XOR [0.. *] [1] | footer | Element (Global)
header | Attribute | Header | XOR [0.. *] [1] | header | Element (Global)
nav | Attribute | Nav | XOR [0.. *] [1] | nav | Element (Global)
section | Attribute | Section | XOR [0.. *] [1] | section | Element (Global)
pre | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:pre | Element (Global)
h1 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h1 | Element (Global)
h2 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h2 | Element (Global)
h3 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h3 | Element (Global)
h4 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h4 | Element (Global)
h5 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h5 | Element (Global)
h6 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h6 | Element (Global)
p | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:p | Element (Global)
address | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:address | Element (Global)
dl | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dl | Element (Global)
ol | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ol | Element (Global)
ul | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ul | Element (Global)
hr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:hr | Element (Global)
p | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:p | Element (Global)
s | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:s | Element (Global)
say-as | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:say-as | Element (Global)
phoneme | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:phoneme | Element (Global)
sub | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:sub | Element (Global)
voice | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:voice | Element (Global)
emphasis | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:emphasis | Element (Global)
break | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:break | Element (Global)
prosody | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:prosody | Element (Global)
mark | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:mark | Element (Global)
audio | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:audio | Element (Global)
speak | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:speak | Element (Global)
ruby | Attribute | Ruby | XOR [0.. *] [1] | ruby | Element (Global)

#### 3.2.2.2 Aside Root Class Mapping

The UML/XSD Mapping for the "Aside" Root Class is given in Table 3.2.2.2.

Table 3.2.2.2 UML/XSD Mapping for the "Aside" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
Aside | Root | Container [ Sequence ] | - N/A - | Aside.Type | ComplexType
math | Attribute | [ Imported (MathML2) ] | XOR [0.. *] [1] | m2:math | Element (Global)
math | Attribute | [ Imported (MathML3) ] | XOR [0.. *] [1] | m3:math | Element (Global)
include | Attribute | [ Imported (Include) ] | XOR [0.. *] [1] | xi:include | Element (Global)
img | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:img | Element (Global)
br | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:br | Element (Global)
object | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:object | Element (Global)
em | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:em | Element (Global)
a | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:a | Element (Global)
code | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:code | Element (Global)
span | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:span | Element (Global)
sub | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sub | Element (Global)
acronym | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:acronym | Element (Global)
big | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:big | Element (Global)
tt | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:tt | Element (Global)
kbd | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:kbd | Element (Global)
q | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:q | Element (Global)
i | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:i | Element (Global)
dfn | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dfn | Element (Global)
abbr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:abbr | Element (Global)
strong | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:strong | Element (Global)
sup | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sup | Element (Global)
var | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:var | Element (Global)
small | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:small | Element (Global)
samp | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:samp | Element (Global)
b | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:b | Element (Global)
cite | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:cite | Element (Global)
bdo | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:bdo | Element (Global)
bdi | Attribute | BDI | XOR [0.. *] [1] | bdi | Element (Global)
figure | Attribute | Figure | XOR [0.. *] [1] | figure | Element (Global)
audio | Attribute | Audio | XOR [0.. *] [1] | audio | Element (Global)
video | Attribute | Video | XOR [0.. *] [1] | video | Element (Global)
label | Attribute | Label | XOR [0.. *] [1] | label | Element (Global)
article | Attribute | Article | XOR [0.. *] [1] | article | Element (Global)
aside | Attribute | Aside | XOR [0.. *] [1] | aside | Element (Global)
footer | Attribute | Footer | XOR [0.. *] [1] | footer | Element (Global)
header | Attribute | Header | XOR [0.. *] [1] | header | Element (Global)
nav | Attribute | Nav | XOR [0.. *] [1] | nav | Element (Global)
section | Attribute | Section | XOR [0.. *] [1] | section | Element (Global)
pre | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:pre | Element (Global)
h1 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h1 | Element (Global)
h2 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h2 | Element (Global)
h3 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h3 | Element (Global)
h4 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h4 | Element (Global)
h5 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h5 | Element (Global)
h6 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h6 | Element (Global)
p | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:p | Element (Global)
address | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:address | Element (Global)
dl | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dl | Element (Global)
ol | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ol | Element (Global)
ul | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ul | Element (Global)
hr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:hr | Element (Global)
p | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:p | Element (Global)
s | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:s | Element (Global)
say-as | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:say-as | Element (Global)
phoneme | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:phoneme | Element (Global)
sub | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:sub | Element (Global)
voice | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:voice | Element (Global)
emphasis | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:emphasis | Element (Global)
break | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:break | Element (Global)
prosody | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:prosody | Element (Global)
mark | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:mark | Element (Global)
audio | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:audio | Element (Global)
speak | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:speak | Element (Global)
ruby | Attribute | Ruby | XOR [0.. *] [1] | ruby | Element (Global)

#### 3.2.2.3 Audio Root Class Mapping

The UML/XSD Mapping for the "Audio" Root Class is given in Table 3.2.2.3.

Table 3.2.2.3 UML/XSD Mapping for the "Audio" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
Audio | Root | Container [ Sequence ] | - N/A - | Audio.Type | ComplexType
src | Characteristic | DT: URL (PT: NormalizedString) | [0..1] | src | Attribute (Global)
crossorigin | Characteristic | [ Enumeration (CORSSettings) ] | [0..1] | crossorigin | Attribute (Global)
preload | Characteristic | [ Enumeration (PreLoadValue) ] | [0..1] | preload | Attribute (Global)
autoplay | Characteristic | PT: Boolean | [0..1] | autoplay | Attribute (Global)
mediagroup | Characteristic | PT: NormalizedString | [0..1] | mediagroup | Attribute (Global)
loop | Characteristic | PT: Boolean | [0..1] | loop | Attribute (Global)
muted | Characteristic | PT: Boolean | [0..1] | muted | Attribute (Global)
controls | Characteristic | PT: Boolean | [0..1] | controls | Attribute (Global)
source | Attribute | Source | [0.. *] | source | Element (Global)
track | Attribute | Track | [0.. *] | track | Element (Global)

#### 3.2.2.4 BDI Root Class Mapping

The UML/XSD Mapping for the "BDI" Root Class is given in Table 3.2.2.4.

Table 3.2.2.4 UML/XSD Mapping for the "BDI" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
BDI | Root | Container [ Sequence ] | - N/A - | BDI.Type | ComplexType
img | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:img | Element (Global)
br | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:br | Element (Global)
object | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:object | Element (Global)
em | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:em | Element (Global)
a | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:a | Element (Global)
code | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:code | Element (Global)
span | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:span | Element (Global)
sub | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sub | Element (Global)
acronym | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:acronym | Element (Global)
big | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:big | Element (Global)
tt | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:tt | Element (Global)
kbd | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:kbd | Element (Global)
q | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:q | Element (Global)
i | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:i | Element (Global)
dfn | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dfn | Element (Global)
abbr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:abbr | Element (Global)
strong | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:strong | Element (Global)
sup | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sup | Element (Global)
var | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:var | Element (Global)
small | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:small | Element (Global)
samp | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:samp | Element (Global)
b | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:b | Element (Global)
cite | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:cite | Element (Global)
bdo | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:bdo | Element (Global)
bdi | Attribute | BDI | XOR [0.. *] [1] | bdi | Element (Global)
figure | Attribute | Figure | XOR [0.. *] [1] | figure | Element (Global)
audio | Attribute | Audio | XOR [0.. *] [1] | audio | Element (Global)
video | Attribute | Video | XOR [0.. *] [1] | video | Element (Global)
label | Attribute | Label | XOR [0.. *] [1] | label | Element (Global)
article | Attribute | Article | XOR [0.. *] [1] | article | Element (Global)
aside | Attribute | Aside | XOR [0.. *] [1] | aside | Element (Global)
footer | Attribute | Footer | XOR [0.. *] [1] | footer | Element (Global)
header | Attribute | Header | XOR [0.. *] [1] | header | Element (Global)
nav | Attribute | Nav | XOR [0.. *] [1] | nav | Element (Global)
section | Attribute | Section | XOR [0.. *] [1] | section | Element (Global)
pre | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:pre | Element (Global)
h1 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h1 | Element (Global)
h2 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h2 | Element (Global)
h3 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h3 | Element (Global)
h4 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h4 | Element (Global)
h5 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h5 | Element (Global)
h6 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h6 | Element (Global)
p | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:p | Element (Global)
address | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:address | Element (Global)
dl | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dl | Element (Global)
ol | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ol | Element (Global)
ul | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ul | Element (Global)
hr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:hr | Element (Global)
p | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:p | Element (Global)
s | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:s | Element (Global)
say-as | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:say-as | Element (Global)
phoneme | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:phoneme | Element (Global)
sub | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:sub | Element (Global)
voice | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:voice | Element (Global)
emphasis | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:emphasis | Element (Global)
break | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:break | Element (Global)
prosody | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:prosody | Element (Global)
mark | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:mark | Element (Global)
audio | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:audio | Element (Global)
speak | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:speak | Element (Global)
ruby | Attribute | Ruby | XOR [0.. *] [1] | ruby | Element (Global)

#### 3.2.2.5 FigCaption Root Class Mapping

The UML/XSD Mapping for the "FigCaption" Root Class is given in Table 3.2.2.5.

Table 3.2.2.5 UML/XSD Mapping for the "FigCaption" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
FigCaption | Root | Container [ Sequence ] | - N/A - | FigCaption.Type | ComplexType
math | Attribute | [ Imported (MathML2) ] | XOR [0.. *] [1] | m2:math | Element (Global)
math | Attribute | [ Imported (MathML3) ] | XOR [0.. *] [1] | m3:math | Element (Global)
include | Attribute | [ Imported (Include) ] | XOR [0.. *] [1] | xi:include | Element (Global)
img | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:img | Element (Global)
br | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:br | Element (Global)
object | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:object | Element (Global)
em | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:em | Element (Global)
a | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:a | Element (Global)
code | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:code | Element (Global)
span | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:span | Element (Global)
sub | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sub | Element (Global)
acronym | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:acronym | Element (Global)
big | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:big | Element (Global)
tt | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:tt | Element (Global)
kbd | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:kbd | Element (Global)
q | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:q | Element (Global)
i | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:i | Element (Global)
dfn | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dfn | Element (Global)
abbr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:abbr | Element (Global)
strong | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:strong | Element (Global)
sup | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sup | Element (Global)
var | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:var | Element (Global)
small | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:small | Element (Global)
samp | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:samp | Element (Global)
b | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:b | Element (Global)
cite | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:cite | Element (Global)
bdo | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:bdo | Element (Global)
bdi | Attribute | BDI | XOR [0.. *] [1] | bdi | Element (Global)
figure | Attribute | Figure | XOR [0.. *] [1] | figure | Element (Global)
audio | Attribute | Audio | XOR [0.. *] [1] | audio | Element (Global)
video | Attribute | Video | XOR [0.. *] [1] | video | Element (Global)
label | Attribute | Label | XOR [0.. *] [1] | label | Element (Global)
article | Attribute | Article | XOR [0.. *] [1] | article | Element (Global)
aside | Attribute | Aside | XOR [0.. *] [1] | aside | Element (Global)
footer | Attribute | Footer | XOR [0.. *] [1] | footer | Element (Global)
header | Attribute | Header | XOR [0.. *] [1] | header | Element (Global)
nav | Attribute | Nav | XOR [0.. *] [1] | nav | Element (Global)
section | Attribute | Section | XOR [0.. *] [1] | section | Element (Global)
pre | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:pre | Element (Global)
h1 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h1 | Element (Global)
h2 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h2 | Element (Global)
h3 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h3 | Element (Global)
h4 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h4 | Element (Global)
h5 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h5 | Element (Global)
h6 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h6 | Element (Global)
p | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:p | Element (Global)
address | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:address | Element (Global)
dl | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dl | Element (Global)
ol | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ol | Element (Global)
ul | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ul | Element (Global)
hr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:hr | Element (Global)
p | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:p | Element (Global)
s | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:s | Element (Global)
say-as | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:say-as | Element (Global)
phoneme | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:phoneme | Element (Global)
sub | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:sub | Element (Global)
voice | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:voice | Element (Global)
emphasis | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:emphasis | Element (Global)
break | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:break | Element (Global)
prosody | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:prosody | Element (Global)
mark | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:mark | Element (Global)
audio | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:audio | Element (Global)
speak | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:speak | Element (Global)
ruby | Attribute | Ruby | XOR [0.. *] [1] | ruby | Element (Global)

#### 3.2.2.6 Figure Root Class Mapping

The UML/XSD Mapping for the "Figure" Root Class is given in Table 3.2.2.6.

Table 3.2.2.6 UML/XSD Mapping for the "Figure" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
Figure | Root | Container [ Unordered ] | - N/A - | Figure.Type | ComplexType
figcaption | Attribute | FigCaption | [0..1] | figcaption | Element (Global)
img | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:img | Element (Global)
br | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:br | Element (Global)
object | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:object | Element (Global)
em | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:em | Element (Global)
a | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:a | Element (Global)
code | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:code | Element (Global)
span | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:span | Element (Global)
sub | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sub | Element (Global)
acronym | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:acronym | Element (Global)
big | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:big | Element (Global)
tt | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:tt | Element (Global)
kbd | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:kbd | Element (Global)
q | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:q | Element (Global)
i | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:i | Element (Global)
dfn | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dfn | Element (Global)
abbr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:abbr | Element (Global)
strong | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:strong | Element (Global)
sup | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sup | Element (Global)
var | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:var | Element (Global)
small | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:small | Element (Global)
samp | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:samp | Element (Global)
b | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:b | Element (Global)
cite | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:cite | Element (Global)
bdo | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:bdo | Element (Global)
bdi | Attribute | BDI | XOR [0.. *] [1] | bdi | Element (Global)
figure | Attribute | Figure | XOR [0.. *] [1] | figure | Element (Global)
audio | Attribute | Audio | XOR [0.. *] [1] | audio | Element (Global)
video | Attribute | Video | XOR [0.. *] [1] | video | Element (Global)
label | Attribute | Label | XOR [0.. *] [1] | label | Element (Global)
article | Attribute | Article | XOR [0.. *] [1] | article | Element (Global)
aside | Attribute | Aside | XOR [0.. *] [1] | aside | Element (Global)
footer | Attribute | Footer | XOR [0.. *] [1] | footer | Element (Global)
header | Attribute | Header | XOR [0.. *] [1] | header | Element (Global)
nav | Attribute | Nav | XOR [0.. *] [1] | nav | Element (Global)
section | Attribute | Section | XOR [0.. *] [1] | section | Element (Global)
pre | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:pre | Element (Global)
h1 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h1 | Element (Global)
h2 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h2 | Element (Global)
h3 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h3 | Element (Global)
h4 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h4 | Element (Global)
h5 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h5 | Element (Global)
h6 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h6 | Element (Global)
p | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:p | Element (Global)
address | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:address | Element (Global)
dl | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dl | Element (Global)
ol | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ol | Element (Global)
ul | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ul | Element (Global)
hr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:hr | Element (Global)
p | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:p | Element (Global)
s | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:s | Element (Global)
say-as | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:say-as | Element (Global)
phoneme | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:phoneme | Element (Global)
sub | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:sub | Element (Global)
voice | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:voice | Element (Global)
emphasis | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:emphasis | Element (Global)
break | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:break | Element (Global)
prosody | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:prosody | Element (Global)
mark | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:mark | Element (Global)
audio | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:audio | Element (Global)
speak | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:speak | Element (Global)
ruby | Attribute | Ruby | XOR [0.. *] [1] | ruby | Element (Global)

#### 3.2.2.7 Footer Root Class Mapping

The UML/XSD Mapping for the "Footer" Root Class is given in Table 3.2.2.7.

Table 3.2.2.7 UML/XSD Mapping for the "Footer" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
Footer | Root | Container [ Sequence ] | - N/A - | Footer.Type | ComplexType
math | Attribute | [ Imported (MathML2) ] | XOR [0.. *] [1] | m2:math | Element (Global)
math | Attribute | [ Imported (MathML3) ] | XOR [0.. *] [1] | m3:math | Element (Global)
include | Attribute | [ Imported (Include) ] | XOR [0.. *] [1] | xi:include | Element (Global)
img | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:img | Element (Global)
br | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:br | Element (Global)
object | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:object | Element (Global)
em | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:em | Element (Global)
a | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:a | Element (Global)
code | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:code | Element (Global)
span | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:span | Element (Global)
sub | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sub | Element (Global)
acronym | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:acronym | Element (Global)
big | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:big | Element (Global)
tt | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:tt | Element (Global)
kbd | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:kbd | Element (Global)
q | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:q | Element (Global)
i | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:i | Element (Global)
dfn | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dfn | Element (Global)
abbr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:abbr | Element (Global)
strong | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:strong | Element (Global)
sup | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sup | Element (Global)
var | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:var | Element (Global)
small | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:small | Element (Global)
samp | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:samp | Element (Global)
b | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:b | Element (Global)
cite | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:cite | Element (Global)
bdo | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:bdo | Element (Global)
bdi | Attribute | BDI | XOR [0.. *] [1] | bdi | Element (Global)
figure | Attribute | Figure | XOR [0.. *] [1] | figure | Element (Global)
audio | Attribute | Audio | XOR [0.. *] [1] | audio | Element (Global)
video | Attribute | Video | XOR [0.. *] [1] | video | Element (Global)
label | Attribute | Label | XOR [0.. *] [1] | label | Element (Global)
article | Attribute | Article | XOR [0.. *] [1] | article | Element (Global)
aside | Attribute | Aside | XOR [0.. *] [1] | aside | Element (Global)
footer | Attribute | Footer | XOR [0.. *] [1] | footer | Element (Global)
header | Attribute | Header | XOR [0.. *] [1] | header | Element (Global)
nav | Attribute | Nav | XOR [0.. *] [1] | nav | Element (Global)
section | Attribute | Section | XOR [0.. *] [1] | section | Element (Global)
pre | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:pre | Element (Global)
h1 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h1 | Element (Global)
h2 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h2 | Element (Global)
h3 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h3 | Element (Global)
h4 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h4 | Element (Global)
h5 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h5 | Element (Global)
h6 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h6 | Element (Global)
p | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:p | Element (Global)
address | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:address | Element (Global)
dl | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dl | Element (Global)
ol | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ol | Element (Global)
ul | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ul | Element (Global)
hr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:hr | Element (Global)
p | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:p | Element (Global)
s | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:s | Element (Global)
say-as | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:say-as | Element (Global)
phoneme | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:phoneme | Element (Global)
sub | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:sub | Element (Global)
voice | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:voice | Element (Global)
emphasis | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:emphasis | Element (Global)
break | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:break | Element (Global)
prosody | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:prosody | Element (Global)
mark | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:mark | Element (Global)
audio | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:audio | Element (Global)
speak | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:speak | Element (Global)
ruby | Attribute | Ruby | XOR [0.. *] [1] | ruby | Element (Global)

#### 3.2.2.8 Header Root Class Mapping

The UML/XSD Mapping for the "Header" Root Class is given in Table 3.2.2.8.

Table 3.2.2.8 UML/XSD Mapping for the "Header" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
Header | Root | Container [ Sequence ] | - N/A - | Header.Type | ComplexType
math | Attribute | [ Imported (MathML2) ] | XOR [0.. *] [1] | m2:math | Element (Global)
math | Attribute | [ Imported (MathML3) ] | XOR [0.. *] [1] | m3:math | Element (Global)
include | Attribute | [ Imported (Include) ] | XOR [0.. *] [1] | xi:include | Element (Global)
img | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:img | Element (Global)
br | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:br | Element (Global)
object | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:object | Element (Global)
em | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:em | Element (Global)
a | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:a | Element (Global)
code | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:code | Element (Global)
span | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:span | Element (Global)
sub | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sub | Element (Global)
acronym | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:acronym | Element (Global)
big | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:big | Element (Global)
tt | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:tt | Element (Global)
kbd | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:kbd | Element (Global)
q | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:q | Element (Global)
i | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:i | Element (Global)
dfn | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dfn | Element (Global)
abbr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:abbr | Element (Global)
strong | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:strong | Element (Global)
sup | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sup | Element (Global)
var | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:var | Element (Global)
small | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:small | Element (Global)
samp | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:samp | Element (Global)
b | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:b | Element (Global)
cite | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:cite | Element (Global)
bdo | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:bdo | Element (Global)
bdi | Attribute | BDI | XOR [0.. *] [1] | bdi | Element (Global)
figure | Attribute | Figure | XOR [0.. *] [1] | figure | Element (Global)
audio | Attribute | Audio | XOR [0.. *] [1] | audio | Element (Global)
video | Attribute | Video | XOR [0.. *] [1] | video | Element (Global)
label | Attribute | Label | XOR [0.. *] [1] | label | Element (Global)
article | Attribute | Article | XOR [0.. *] [1] | article | Element (Global)
aside | Attribute | Aside | XOR [0.. *] [1] | aside | Element (Global)
footer | Attribute | Footer | XOR [0.. *] [1] | footer | Element (Global)
header | Attribute | Header | XOR [0.. *] [1] | header | Element (Global)
nav | Attribute | Nav | XOR [0.. *] [1] | nav | Element (Global)
section | Attribute | Section | XOR [0.. *] [1] | section | Element (Global)
pre | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:pre | Element (Global)
h1 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h1 | Element (Global)
h2 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h2 | Element (Global)
h3 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h3 | Element (Global)
h4 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h4 | Element (Global)
h5 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h5 | Element (Global)
h6 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h6 | Element (Global)
p | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:p | Element (Global)
address | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:address | Element (Global)
dl | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dl | Element (Global)
ol | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ol | Element (Global)
ul | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ul | Element (Global)
hr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:hr | Element (Global)
p | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:p | Element (Global)
s | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:s | Element (Global)
say-as | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:say-as | Element (Global)
phoneme | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:phoneme | Element (Global)
sub | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:sub | Element (Global)
voice | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:voice | Element (Global)
emphasis | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:emphasis | Element (Global)
break | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:break | Element (Global)
prosody | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:prosody | Element (Global)
mark | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:mark | Element (Global)
audio | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:audio | Element (Global)
speak | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:speak | Element (Global)
ruby | Attribute | Ruby | XOR [0.. *] [1] | ruby | Element (Global)

#### 3.2.2.9 Label Root Class Mapping

The UML/XSD Mapping for the "Label" Root Class is given in Table 3.2.2.9.

Table 3.2.2.9 UML/XSD Mapping for the "Label" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
Label | Root | Container [ Sequence ] | - N/A - | Label.Type | ComplexType
math | Attribute | [ Imported (MathML2) ] | XOR [0.. *] [1] | m2:math | Element (Global)
math | Attribute | [ Imported (MathML3) ] | XOR [0.. *] [1] | m3:math | Element (Global)
include | Attribute | [ Imported (Include) ] | XOR [0.. *] [1] | xi:include | Element (Global)
img | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:img | Element (Global)
br | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:br | Element (Global)
object | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:object | Element (Global)
em | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:em | Element (Global)
a | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:a | Element (Global)
code | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:code | Element (Global)
span | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:span | Element (Global)
sub | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sub | Element (Global)
acronym | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:acronym | Element (Global)
big | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:big | Element (Global)
tt | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:tt | Element (Global)
kbd | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:kbd | Element (Global)
q | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:q | Element (Global)
i | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:i | Element (Global)
dfn | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dfn | Element (Global)
abbr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:abbr | Element (Global)
strong | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:strong | Element (Global)
sup | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sup | Element (Global)
var | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:var | Element (Global)
small | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:small | Element (Global)
samp | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:samp | Element (Global)
b | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:b | Element (Global)
cite | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:cite | Element (Global)
bdo | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:bdo | Element (Global)
bdi | Attribute | BDI | XOR [0.. *] [1] | bdi | Element (Global)
figure | Attribute | Figure | XOR [0.. *] [1] | figure | Element (Global)
audio | Attribute | Audio | XOR [0.. *] [1] | audio | Element (Global)
video | Attribute | Video | XOR [0.. *] [1] | video | Element (Global)
label | Attribute | Label | XOR [0.. *] [1] | label | Element (Global)
article | Attribute | Article | XOR [0.. *] [1] | article | Element (Global)
aside | Attribute | Aside | XOR [0.. *] [1] | aside | Element (Global)
footer | Attribute | Footer | XOR [0.. *] [1] | footer | Element (Global)
header | Attribute | Header | XOR [0.. *] [1] | header | Element (Global)
nav | Attribute | Nav | XOR [0.. *] [1] | nav | Element (Global)
section | Attribute | Section | XOR [0.. *] [1] | section | Element (Global)
pre | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:pre | Element (Global)
h1 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h1 | Element (Global)
h2 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h2 | Element (Global)
h3 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h3 | Element (Global)
h4 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h4 | Element (Global)
h5 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h5 | Element (Global)
h6 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h6 | Element (Global)
p | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:p | Element (Global)
address | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:address | Element (Global)
dl | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dl | Element (Global)
ol | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ol | Element (Global)
ul | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ul | Element (Global)
hr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:hr | Element (Global)
p | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:p | Element (Global)
s | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:s | Element (Global)
say-as | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:say-as | Element (Global)
phoneme | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:phoneme | Element (Global)
sub | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:sub | Element (Global)
voice | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:voice | Element (Global)
emphasis | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:emphasis | Element (Global)
break | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:break | Element (Global)
prosody | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:prosody | Element (Global)
mark | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:mark | Element (Global)
audio | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:audio | Element (Global)
speak | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:speak | Element (Global)
ruby | Attribute | Ruby | XOR [0.. *] [1] | ruby | Element (Global)

#### 3.2.2.10 Nav Root Class Mapping

The UML/XSD Mapping for the "Nav" Root Class is given in Table 3.2.2.10.

Table 3.2.2.10 UML/XSD Mapping for the "Nav" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
Nav | Root | Container [ Sequence ] | - N/A - | Nav.Type | ComplexType
math | Attribute | [ Imported (MathML2) ] | XOR [0.. *] [1] | m2:math | Element (Global)
math | Attribute | [ Imported (MathML3) ] | XOR [0.. *] [1] | m3:math | Element (Global)
include | Attribute | [ Imported (Include) ] | XOR [0.. *] [1] | xi:include | Element (Global)
img | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:img | Element (Global)
br | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:br | Element (Global)
object | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:object | Element (Global)
em | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:em | Element (Global)
a | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:a | Element (Global)
code | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:code | Element (Global)
span | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:span | Element (Global)
sub | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sub | Element (Global)
acronym | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:acronym | Element (Global)
big | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:big | Element (Global)
tt | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:tt | Element (Global)
kbd | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:kbd | Element (Global)
q | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:q | Element (Global)
i | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:i | Element (Global)
dfn | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dfn | Element (Global)
abbr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:abbr | Element (Global)
strong | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:strong | Element (Global)
sup | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sup | Element (Global)
var | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:var | Element (Global)
small | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:small | Element (Global)
samp | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:samp | Element (Global)
b | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:b | Element (Global)
cite | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:cite | Element (Global)
bdo | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:bdo | Element (Global)
bdi | Attribute | BDI | XOR [0.. *] [1] | bdi | Element (Global)
figure | Attribute | Figure | XOR [0.. *] [1] | figure | Element (Global)
audio | Attribute | Audio | XOR [0.. *] [1] | audio | Element (Global)
video | Attribute | Video | XOR [0.. *] [1] | video | Element (Global)
label | Attribute | Label | XOR [0.. *] [1] | label | Element (Global)
article | Attribute | Article | XOR [0.. *] [1] | article | Element (Global)
aside | Attribute | Aside | XOR [0.. *] [1] | aside | Element (Global)
footer | Attribute | Footer | XOR [0.. *] [1] | footer | Element (Global)
header | Attribute | Header | XOR [0.. *] [1] | header | Element (Global)
nav | Attribute | Nav | XOR [0.. *] [1] | nav | Element (Global)
section | Attribute | Section | XOR [0.. *] [1] | section | Element (Global)
pre | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:pre | Element (Global)
h1 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h1 | Element (Global)
h2 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h2 | Element (Global)
h3 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h3 | Element (Global)
h4 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h4 | Element (Global)
h5 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h5 | Element (Global)
h6 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h6 | Element (Global)
p | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:p | Element (Global)
address | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:address | Element (Global)
dl | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dl | Element (Global)
ol | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ol | Element (Global)
ul | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ul | Element (Global)
hr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:hr | Element (Global)
p | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:p | Element (Global)
s | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:s | Element (Global)
say-as | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:say-as | Element (Global)
phoneme | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:phoneme | Element (Global)
sub | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:sub | Element (Global)
voice | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:voice | Element (Global)
emphasis | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:emphasis | Element (Global)
break | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:break | Element (Global)
prosody | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:prosody | Element (Global)
mark | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:mark | Element (Global)
audio | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:audio | Element (Global)
speak | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:speak | Element (Global)
ruby | Attribute | Ruby | XOR [0.. *] [1] | ruby | Element (Global)

#### 3.2.2.11 RB Root Class Mapping

The UML/XSD Mapping for the "RB" Root Class is given in Table 3.2.2.11.

Table 3.2.2.11 UML/XSD Mapping for the "RB" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
RB | Root | Container [ Sequence ] | - N/A - | RB.Type | ComplexType
a | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:a | Element (Global)
abbr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:abbr | Element (Global)
b | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:b | Element (Global)
bdo | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:bdo | Element (Global)
br | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:br | Element (Global)
cite | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:cite | Element (Global)
code | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:code | Element (Global)
dfn | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dfn | Element (Global)
em | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:em | Element (Global)
i | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:i | Element (Global)
img | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:img | Element (Global)
kbd | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:kbd | Element (Global)
object | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:object | Element (Global)
q | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:q | Element (Global)
samp | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:samp | Element (Global)
small | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:small | Element (Global)
span | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:span | Element (Global)
strong | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:strong | Element (Global)
sub | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sub | Element (Global)
sup | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sup | Element (Global)
var | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:var | Element (Global)
audio | Attribute | Audio | XOR [0.. *] [1] | audio | Element (Global)
bdi | Attribute | BDI | XOR [0.. *] [1] | bdi | Element (Global)
label | Attribute | Label | XOR [0.. *] [1] | label | Element (Global)
ruby | Attribute | Ruby | XOR [0.. *] [1] | ruby | Element (Global)
video | Attribute | Video | XOR [0.. *] [1] | video | Element (Global)

#### 3.2.2.12 RP Root Class Mapping

The UML/XSD Mapping for the "RP" Root Class is given in Table 3.2.2.12.

Table 3.2.2.12 UML/XSD Mapping for the "RP" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
RP | Root | Container [ Sequence ] | - N/A - | RP.Type | ComplexType
a | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:a | Element (Global)
abbr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:abbr | Element (Global)
b | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:b | Element (Global)
bdo | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:bdo | Element (Global)
br | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:br | Element (Global)
cite | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:cite | Element (Global)
code | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:code | Element (Global)
dfn | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dfn | Element (Global)
em | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:em | Element (Global)
i | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:i | Element (Global)
img | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:img | Element (Global)
kbd | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:kbd | Element (Global)
object | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:object | Element (Global)
q | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:q | Element (Global)
samp | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:samp | Element (Global)
small | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:small | Element (Global)
span | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:span | Element (Global)
strong | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:strong | Element (Global)
sub | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sub | Element (Global)
sup | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sup | Element (Global)
var | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:var | Element (Global)
audio | Attribute | Audio | XOR [0.. *] [1] | audio | Element (Global)
bdi | Attribute | BDI | XOR [0.. *] [1] | bdi | Element (Global)
label | Attribute | Label | XOR [0.. *] [1] | label | Element (Global)
ruby | Attribute | Ruby | XOR [0.. *] [1] | ruby | Element (Global)
video | Attribute | Video | XOR [0.. *] [1] | video | Element (Global)

#### 3.2.2.13 RT Root Class Mapping

The UML/XSD Mapping for the "RT" Root Class is given in Table 3.2.2.13.

Table 3.2.2.13 UML/XSD Mapping for the "RT" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
RT | Root | Container [ Sequence ] | - N/A - | RT.Type | ComplexType
a | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:a | Element (Global)
abbr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:abbr | Element (Global)
b | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:b | Element (Global)
bdo | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:bdo | Element (Global)
br | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:br | Element (Global)
cite | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:cite | Element (Global)
code | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:code | Element (Global)
dfn | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dfn | Element (Global)
em | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:em | Element (Global)
i | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:i | Element (Global)
img | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:img | Element (Global)
kbd | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:kbd | Element (Global)
object | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:object | Element (Global)
q | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:q | Element (Global)
samp | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:samp | Element (Global)
small | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:small | Element (Global)
span | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:span | Element (Global)
strong | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:strong | Element (Global)
sub | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sub | Element (Global)
sup | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sup | Element (Global)
var | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:var | Element (Global)
audio | Attribute | Audio | XOR [0.. *] [1] | audio | Element (Global)
bdi | Attribute | BDI | XOR [0.. *] [1] | bdi | Element (Global)
label | Attribute | Label | XOR [0.. *] [1] | label | Element (Global)
ruby | Attribute | Ruby | XOR [0.. *] [1] | ruby | Element (Global)
video | Attribute | Video | XOR [0.. *] [1] | video | Element (Global)

#### 3.2.2.14 RTC Root Class Mapping

The UML/XSD Mapping for the "RTC" Root Class is given in Table 3.2.2.14.

Table 3.2.2.14 UML/XSD Mapping for the "RTC" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
RTC | Root | Container [ Selection ] | - N/A - | RTC.Type | ComplexType
a | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:a | Element (Global)
abbr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:abbr | Element (Global)
b | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:b | Element (Global)
bdo | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:bdo | Element (Global)
br | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:br | Element (Global)
cite | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:cite | Element (Global)
code | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:code | Element (Global)
dfn | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dfn | Element (Global)
em | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:em | Element (Global)
i | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:i | Element (Global)
img | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:img | Element (Global)
kbd | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:kbd | Element (Global)
object | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:object | Element (Global)
q | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:q | Element (Global)
samp | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:samp | Element (Global)
small | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:small | Element (Global)
span | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:span | Element (Global)
strong | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:strong | Element (Global)
sub | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sub | Element (Global)
sup | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sup | Element (Global)
var | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:var | Element (Global)
audio | Attribute | Audio | XOR [0.. *] [1] | audio | Element (Global)
bdi | Attribute | BDI | XOR [0.. *] [1] | bdi | Element (Global)
label | Attribute | Label | XOR [0.. *] [1] | label | Element (Global)
ruby | Attribute | Ruby | XOR [0.. *] [1] | ruby | Element (Global)
video | Attribute | Video | XOR [0.. *] [1] | video | Element (Global)
rt | Attribute | RT | [0.. *] | rt | Element (Global)

#### 3.2.2.15 Ruby Root Class Mapping

The UML/XSD Mapping for the "Ruby" Root Class is given in Table 3.2.2.15.

Table 3.2.2.15 UML/XSD Mapping for the "Ruby" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
Ruby | Root | Container [ Sequence ] | - N/A - | Ruby.Type | ComplexType
a | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:a | Element (Global)
abbr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:abbr | Element (Global)
b | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:b | Element (Global)
bdo | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:bdo | Element (Global)
br | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:br | Element (Global)
cite | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:cite | Element (Global)
code | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:code | Element (Global)
dfn | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dfn | Element (Global)
em | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:em | Element (Global)
i | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:i | Element (Global)
img | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:img | Element (Global)
kbd | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:kbd | Element (Global)
object | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:object | Element (Global)
q | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:q | Element (Global)
samp | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:samp | Element (Global)
small | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:small | Element (Global)
span | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:span | Element (Global)
strong | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:strong | Element (Global)
sub | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sub | Element (Global)
sup | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sup | Element (Global)
var | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:var | Element (Global)
audio | Attribute | Audio | XOR [0.. *] [1] | audio | Element (Global)
bdi | Attribute | BDI | XOR [0.. *] [1] | bdi | Element (Global)
label | Attribute | Label | XOR [0.. *] [1] | label | Element (Global)
ruby | Attribute | Ruby | XOR [0.. *] [1] | ruby | Element (Global)
video | Attribute | Video | XOR [0.. *] [1] | video | Element (Global)
rb | Attribute | RB | XOR [1] [0.. *] | rb | Element (Global)
rp | Attribute | RP | XOR [1] [0..1] | rp | Element (Global)
rt | Attribute | RT | XOR [1] [1] | rt | Element (Global)
rtc | Attribute | RTC | XOR [1] [1] | rtc | Element (Global)

#### 3.2.2.16 Section Root Class Mapping

The UML/XSD Mapping for the "Section" Root Class is given in Table 3.2.2.16.

Table 3.2.2.16 UML/XSD Mapping for the "Section" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
Section | Root | Container [ Sequence ] | - N/A - | Section.Type | ComplexType
math | Attribute | [ Imported (MathML2) ] | XOR [0.. *] [1] | m2:math | Element (Global)
math | Attribute | [ Imported (MathML3) ] | XOR [0.. *] [1] | m3:math | Element (Global)
include | Attribute | [ Imported (Include) ] | XOR [0.. *] [1] | xi:include | Element (Global)
img | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:img | Element (Global)
br | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:br | Element (Global)
object | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:object | Element (Global)
em | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:em | Element (Global)
a | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:a | Element (Global)
code | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:code | Element (Global)
span | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:span | Element (Global)
sub | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sub | Element (Global)
acronym | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:acronym | Element (Global)
big | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:big | Element (Global)
tt | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:tt | Element (Global)
kbd | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:kbd | Element (Global)
q | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:q | Element (Global)
i | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:i | Element (Global)
dfn | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dfn | Element (Global)
abbr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:abbr | Element (Global)
strong | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:strong | Element (Global)
sup | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:sup | Element (Global)
var | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:var | Element (Global)
small | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:small | Element (Global)
samp | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:samp | Element (Global)
b | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:b | Element (Global)
cite | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:cite | Element (Global)
bdo | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:bdo | Element (Global)
bdi | Attribute | BDI | XOR [0.. *] [1] | bdi | Element (Global)
figure | Attribute | Figure | XOR [0.. *] [1] | figure | Element (Global)
audio | Attribute | Audio | XOR [0.. *] [1] | audio | Element (Global)
video | Attribute | Video | XOR [0.. *] [1] | video | Element (Global)
label | Attribute | Label | XOR [0.. *] [1] | label | Element (Global)
article | Attribute | Article | XOR [0.. *] [1] | article | Element (Global)
aside | Attribute | Aside | XOR [0.. *] [1] | aside | Element (Global)
footer | Attribute | Footer | XOR [0.. *] [1] | footer | Element (Global)
header | Attribute | Header | XOR [0.. *] [1] | header | Element (Global)
nav | Attribute | Nav | XOR [0.. *] [1] | nav | Element (Global)
section | Attribute | Section | XOR [0.. *] [1] | section | Element (Global)
pre | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:pre | Element (Global)
h1 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h1 | Element (Global)
h2 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h2 | Element (Global)
h3 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h3 | Element (Global)
h4 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h4 | Element (Global)
h5 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h5 | Element (Global)
h6 | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:h6 | Element (Global)
p | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:p | Element (Global)
address | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:address | Element (Global)
dl | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:dl | Element (Global)
ol | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ol | Element (Global)
ul | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:ul | Element (Global)
hr | Attribute | [ Imported (QTIv2p2) ] | XOR [0.. *] [1] | qti:hr | Element (Global)
p | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:p | Element (Global)
s | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:s | Element (Global)
say-as | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:say-as | Element (Global)
phoneme | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:phoneme | Element (Global)
sub | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:sub | Element (Global)
voice | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:voice | Element (Global)
emphasis | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:emphasis | Element (Global)
break | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:break | Element (Global)
prosody | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:prosody | Element (Global)
mark | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:mark | Element (Global)
audio | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:audio | Element (Global)
speak | Attribute | [ Imported (SSMLv1p1) ] | XOR [0.. *] [1] | ssml11:speak | Element (Global)
ruby | Attribute | Ruby | XOR [0.. *] [1] | ruby | Element (Global)

#### 3.2.2.17 Source Root Class Mapping

The UML/XSD Mapping for the "Source" Root Class is given in Table 3.2.2.17.

Table 3.2.2.17 UML/XSD Mapping for the "Source" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
Source | Root | Container [ Sequence ] | - N/A - | Source.Type | ComplexType
src | Characteristic | DT: URL (PT: NormalizedString) | [1] | src | Attribute (Global)
type | Characteristic | DT: MimeType (PT: NormalizedString) | [0..1] | type | Attribute (Global)

#### 3.2.2.18 Track Root Class Mapping

The UML/XSD Mapping for the "Track" Root Class is given in Table 3.2.2.18.

Table 3.2.2.18 UML/XSD Mapping for the "Track" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
Track | Root | Container [ Sequence ] | - N/A - | Track.Type | ComplexType
kind | Characteristic | [ Enumeration (KindValue) ] | [0..1] | kind | Attribute (Global)
src | Characteristic | DT: URL (PT: NormalizedString) | [1] | src | Attribute (Global)
srclang | Characteristic | PT: NormalizedString | [0..1] | srclang | Attribute (Global)
default | Characteristic | PT: Boolean | [0..1] | default | Attribute (Global)

#### 3.2.2.19 Video Root Class Mapping

The UML/XSD Mapping for the "Video" Root Class is given in Table 3.2.2.19.

Table 3.2.2.19 UML/XSD Mapping for the "Video" Root Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
Video | Root | Container [ Sequence ] | - N/A - | Video.Type | ComplexType
src | Characteristic | DT: URL (PT: NormalizedString) | [0..1] | src | Attribute (Global)
crossorigin | Characteristic | [ Enumeration (CORSSettings) ] | [0..1] | crossorigin | Attribute (Global)
preload | Characteristic | [ Enumeration (PreLoadValue) ] | [0..1] | preload | Attribute (Global)
autoplay | Characteristic | PT: Boolean | [0..1] | autoplay | Attribute (Global)
mediagroup | Characteristic | PT: NormalizedString | [0..1] | mediagroup | Attribute (Global)
loop | Characteristic | PT: Boolean | [0..1] | loop | Attribute (Global)
muted | Characteristic | PT: Boolean | [0..1] | muted | Attribute (Global)
controls | Characteristic | PT: Boolean | [0..1] | controls | Attribute (Global)
poster | Characteristic | DT: URL (PT: NormalizedString) | [0..1] | poster | Attribute (Global)
width | Characteristic | PT: NonNegativeInteger | [0..1] | width | Attribute (Global)
height | Characteristic | PT: NonNegativeInteger | [0..1] | height | Attribute (Global)
source | Attribute | Source | [0.. *] | source | Element (Global)
track | Attribute | Track | [0.. *] | track | Element (Global)

### 3.2.3 Class UML/XSD Mapping

The syntax and semantics for the Data Class UML/XSD mapping representations is described in Appendix B1.2.

#### 3.2.3.1 BaseHTML5 Class Mapping

The UML/XSD Mapping for the "BaseHTML5" Class is given in Table 3.2.3.1.

Table 3.2.3.1 UML/XSD Mapping for the "BaseHTML5" Core Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
BaseHTML5 | Core | Container [ Sequence ] | - N/A - | BaseHTML5.Type | ComplexType
id | Characteristic | DT: UniqueIdentifier (PT: ID) | [0..1] | id | Attribute (Global)
language | Characteristic | PT: Language | [0..1] | xml:lang | Attribute (Global)
title | Characteristic | PT: NormalizedString | [0..1] | title | Attribute (Global)
label | Characteristic | PT: NormalizedString | [0..1] | label | Attribute (Global)
class | Characteristic | [ List (StringList) ] | [0..1] | class | Attribute (Global)
dir | Characteristic | [ Enumeration (DirValue) ] | [0..1] | dir | Attribute (Global)
role | Characteristic | [ Enumeration (ARIARoleValue) ] | [0..1] | role | Attribute (Global)
aria-controls | Characteristic | PT: IDREFS | [0..1] | aria-controls | Attribute (Global)
aria-describedby | Characteristic | PT: IDREFS | [0..1] | aria-describedby | Attribute (Global)
aria-flowto | Characteristic | PT: IDREFS | [0..1] | aria-flowto | Attribute (Global)
aria-label | Characteristic | PT: NormalizedString | [0..1] | aria-label | Attribute (Global)
aria-labelledby | Characteristic | PT: IDREFS | [0..1] | aria-labelledby | Attribute (Global)
aria-level | Characteristic | DT: AriaLevelInteger (PT: Integer) | [0..1] | aria-level | Attribute (Global)
aria-live | Characteristic | [ Enumeration (ARIALiveValue) ] | [0..1] | aria-live | Attribute (Global)
aria-orientation | Characteristic | [ Enumeration (ARIAOrientationValue) ] | [0..1] | aria-orientation | Attribute (Global)
aria-owns | Characteristic | PT: IDREFS | [0..1] | aria-owns | Attribute (Global)
dataExtension | Characteristic | DT: DataHTML5Extension (PT: AnyTypeLax) | [0..*] | dataExtension | Attribute (Global)

### 3.2.4 Derived UML/XSD Mapping

The syntax and semantics for the Derived Class UML/XSD mapping representations is described in Appendix B1.2.

#### 3.2.4.1 AriaLevelInteger Derived Class Mapping

The UML/XSD Mapping for the "AriaLevelInteger" Derived Class is given in Table 3.2.4.1.

Table 3.2.4.1 UML/XSD Mapping for the "AriaLevelInteger" Derived Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
AriaLevelInteger | Derived | PT: Integer | - N/A - | AriaLevelInteger.Type | SimpleType
minInclusive | Attribute | PT: Integer | [1] | [ No XML instance visibility ] | Restriction (MinInclusive) on the Primitive Type.

The syntax and semantics for the Derived Class UML/XSD mapping representations is described in Appendix B1.2.

#### 3.2.4.2 BaseHTML5Empty Derived Class Mapping

The UML/XSD Mapping for the "BaseHTML5Empty" Derived Class is given in Table 3.2.4.2.

Table 3.2.4.2 UML/XSD Mapping for the "BaseHTML5Empty" Derived Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
BaseHTML5Empty | Derived | PT: Empty | - N/A - | BaseHTML5Empty.Type | ComplexType
id | Characteristic | DT: UniqueIdentifier (PT: ID) | [0..1] | id | Attribute (Global)
language | Characteristic | PT: Language | [0..1] | xml:lang | Attribute (Global)
title | Characteristic | PT: NormalizedString | [0..1] | title | Attribute (Global)
label | Characteristic | PT: NormalizedString | [0..1] | label | Attribute (Global)
class | Characteristic | [ List (StringList) ] | [0..1] | class | Attribute (Global)
dir | Characteristic | [ Enumeration (DirValue) ] | [0..1] | dir | Attribute (Global)
role | Characteristic | [ Enumeration (ARIARoleValue) ] | [0..1] | role | Attribute (Global)
aria-controls | Characteristic | PT: IDREFS | [0..1] | aria-controls | Attribute (Global)
aria-describedby | Characteristic | PT: IDREFS | [0..1] | aria-describedby | Attribute (Global)
aria-flowto | Characteristic | PT: IDREFS | [0..1] | aria-flowto | Attribute (Global)
aria-label | Characteristic | PT: NormalizedString | [0..1] | aria-label | Attribute (Global)
aria-labelledby | Characteristic | PT: IDREFS | [0..1] | aria-labelledby | Attribute (Global)
aria-level | Characteristic | DT: AriaLevelInteger (PT: Integer) | [0..1] | aria-level | Attribute (Global)
aria-live | Characteristic | [ Enumeration (ARIALiveValue) ] | [0..1] | aria-live | Attribute (Global)
aria-orientation | Characteristic | [ Enumeration (ARIAOrientationValue) ] | [0..1] | aria-orientation | Attribute (Global)
aria-owns | Characteristic | PT: IDREFS | [0..1] | aria-owns | Attribute (Global)
dataExtension | Characteristic | DT: DataHTML5Extension (PT: AnyTypeLax) | [0..*] | dataExtension | Attribute (Global)

The syntax and semantics for the Derived Class UML/XSD mapping representations is described in Appendix B1.2.

#### 3.2.4.3 DataHTML5Extension Derived Class Mapping

The UML/XSD Mapping for the "DataHTML5Extension" Derived Class is given in Table 3.2.4.3.

Table 3.2.4.3 UML/XSD Mapping for the "DataHTML5Extension" Derived Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
DataHTML5Extension | Derived | PT: AnyTypeLax | - N/A - | [ No XML instance visibility ] | There is no equivalent derived complexType. This is a logical class that is used to identify a namespace constraint.
pattern | Attribute | PT: String | [1] | [ No XML instance visibility ] | Restriction (Pattern) on the Primitive Type.

The syntax and semantics for the Derived Class UML/XSD mapping representations is described in Appendix B1.2.

#### 3.2.4.4 MimeType Derived Class Mapping

The UML/XSD Mapping for the "MimeType" Derived Class is given in Table 3.2.4.4.

Table 3.2.4.4 UML/XSD Mapping for the "MimeType" Derived Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
MimeType | Derived | PT: NormalizedString | - N/A - | MimeType.Type | SimpleType
pattern | Attribute | PT: String | [1] | [ No XML instance visibility ] | Restriction (Pattern) on the Primitive Type.

The syntax and semantics for the Derived Class UML/XSD mapping representations is described in Appendix B1.2.

#### 3.2.4.5 URL Derived Class Mapping

The UML/XSD Mapping for the "URL" Derived Class is given in Table 3.2.4.5.

Table 3.2.4.5 UML/XSD Mapping for the "URL" Derived Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
URL | Derived | PT: NormalizedString | - N/A - | URL.Type | SimpleType

The syntax and semantics for the Derived Class UML/XSD mapping representations is described in Appendix B1.2.

#### 3.2.4.6 UniqueIdentifier Derived Class Mapping

The UML/XSD Mapping for the "UniqueIdentifier" Derived Class is given in Table 3.2.4.6.

Table 3.2.4.6 UML/XSD Mapping for the "UniqueIdentifier" Derived Class.
Information Model Details | XSD Binding Details
--- | ---
Name | UML Artefact | Data Type | Multiplicity | Name | Type
UniqueIdentifier | Derived | PT: ID | - N/A - | UniqueIdentifier.Type | SimpleType

### 3.2.5 Enumerated Class UML/XSD Mapping

The definition of the set of enumerated data-types used in this specification is given in Table 3.2.5. The syntax and semantics for the Enumerated Class UML/XSD mapping representations is described in Appendix B1.3.

Table 3.2.5 The UML/XSD Map Enumerated Class Definitions.
Enumeration Class Name | Description
--- | ---
ARIALiveValue | Enumerated value set of: { off | polite | assertive }.
ARIAOrientationValue | Enumerated value set of: { vertical | horizontal }.
ARIARoleValue | Enumerated value set of: { article | columnheader | definition | directory | document | group | heading | img | list | listitem | math | note | presentation | region | row | rowgroup | rowheader | separator | toolbar | button | checkbox | gridcell | link | log | option | radio | slider | spinbutton | status | tab | tabpanel | textbox | timer | listbox | radiogroup | tablist | complementary | contentinfo }.
CORSSettings | Enumerated value set of: { anonymous | use-credentials }.
DirValue | Enumerated value set of: { ltr | rtl | auto }.
KindValue | Enumerated value set of: { subtitles | captions | descriptions | chapters | metadata }.
PreLoadValue | Enumerated value set of: { none | auto | metadata }.

### 3.2.6 Enumerated List Class UML/XSD Mapping

There are no enumerated list class definitions.

### 3.2.7 List Class UML/XSD Mapping

The definition of the set of list data-types used in this specification is given in Table 3.2.7. The syntax and semantics for the List Class UML/XSD mapping representations is described in Appendix B1.4.

Table 3.2.7 The UML/XSD Map List Class Definitions.
List Class Name | Description
--- | ---
StringList | This is a list of values each of data-type: String

### 3.2.8 Union Class UML/XSD Mapping

There are no union class definitions.

### 3.2.9 Primitive Type UML/XSD Mapping

The definition of the set of primitive data-types used in this specification is given in Table 3.2.9. The syntax and semantics for the Primitive Type UML/XSD mapping representations is described in Appendix B1.5.

Table 3.2.9 The UML/XSD Map Primitive Type Definitions.
Primitive Type Name | Description
--- | ---
AnyTypeLax | This allows any extension in any namespace. When the extension is applied to elements the XSD code is:
    <xs:group name="grpAnyLax.any">
        <xs:annotation>
            <xs:documentation>
                Any namespaced element from any namespace may be included within an "any" element.
                The namespace for the imported element must be defined in the instance, and the schema must be imported.
                The extension has a definition of "lax" i.e. validation is not required if the XSD for the extension is not available.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:any namespace = "##any" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded" />
        </xs:sequence>
    </xs:group>
The XSD code for the extension of attributes is:
    <xs:anyAttribute namespace = "##any" processContents = "lax" />
Boolean | This is mapped to the XML "xs:boolean" data-type.
Empty | This is used to denote an element that will not contain a value i.e. it is empty. Within the XSD a Special Data-type is declared called "EmptyPrimitiveType.Type". This ensures that the associated element has NO children (but it will have XML attributes). The XSD code is:
    <xs:complexType name="EmptyPrimitiveType.Type">
        <xs:complexContent>
            <xs:restriction base="xs:anyType" />
        </xs:complexContent>
    </xs:complexType>
ID | This is mapped to the XML "xs:ID" data-type. This is only permitted for XML attributes.
IDREFS | This is mapped to the XML "xs:IDREFS" data-type. This is only permitted for XML attributes.
Integer | This is mapped to the XML "xs:integer" data-type.
Language | This is mapped to the "xml:language" structure. This is used to indicate the associated language.
NonNegativeInteger | This is mapped to the XML "xs:nonNegativeInteger" data-type.
NormalizedString | This is mapped to the XML "xs:normalizedString" data-type.
String | This is mapped to the XML "xs:string" data-type.

## 3.3. XSD Files and Namespaces

### 3.3.1 Target Namespace Details

Target Namespace: | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Schema Location: | http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqtiv2p2p1_html5_v1p0.xsd

### 3.3.2 Imported Namespace Details

Feature: | Include
Namespace: | http://www.w3.org/2001/XInclude
Schema Location: | http://www.imsglobal.org/xsd/w3/2001/XInclude.xsd
Prefix: | xi

Feature: | MathML2
Namespace: | http://www.w3.org/1998/Math/MathML
Schema Location: | http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd
Prefix: | m2

Feature: | MathML3
Namespace: | http://www.w3.org/2010/Math/MathML
Schema Location: | http://www.imsglobal.org/xsd/w3/Math/XMLSchema/mathml3/mathml3.xsd
Prefix: | m3

Feature: | QTIv2p2
Namespace: | http://www.imsglobal.org/xsd/imsqti_v2p2
Schema Location: | http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd
Prefix: | qti

Feature: | SSMLv1p1
Namespace: | http://www.w3.org/2010/10/synthesis
Schema Location: | http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd
Prefix: | ssml11

### 3.3.3 Implicit Namespace Details

Feature: | XSD Language
Namespace: | http://www.w3.org/2001/XMLSchema
Schema Location: | XML Processor Resolved.
Prefix: | xs

Feature: | XML Features
Namespace: | http://www.w3.org/XML/1998/namespace
Schema Location: | http://www.imsglobal.org/xsd/w3/2001/xml.xsd
Prefix: | xml

Feature: | Schematron Rules
Namespace: | http://purl.oclc.org/dsdl/schematron
Schema Location: | Schematron Processor Resolved.
Prefix: | sch

## 3.4. Description of the XSD

### 3.4.1 Root Element Descriptions

The syntax and semantics for the Root Element XSD representations is described in Appendix B1.6.

#### 3.4.1.1 "article" Root Element Description

The XSD description for the "article" Root Element is given in Table 3.4.1.1.

Table 3.4.1.1 XSD description for the "article" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | Article.Type
Type Hierarchy | BaseHTML5.Type ^---Article.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="article" type="Article.Type" />

#### 3.4.1.2 "aside" Root Element Description

The XSD description for the "aside" Root Element is given in Table 3.4.1.2.

Table 3.4.1.2 XSD description for the "aside" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | Aside.Type
Type Hierarchy | BaseHTML5.Type ^---Aside.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="aside" type="Aside.Type" />

#### 3.4.1.3 "audio" Root Element Description

The XSD description for the "audio" Root Element is given in Table 3.4.1.3.

Table 3.4.1.3 XSD description for the "audio" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | Audio.Type
Type Hierarchy | BaseHTML5.Type ^---Audio.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | source{0..*}, track{0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
src | URL.Type | No | Global | Optional | -
crossorigin | [ Enumeration ] | No | Global | Optional | -
preload | [ Enumeration ] | No | Global | Optional | metadata
autoplay | xs:boolean | No | Global | Optional | -
mediagroup | xs:normalizedString | No | Global | Optional | -
loop | xs:boolean | No | Global | Optional | -
muted | xs:boolean | No | Global | Optional | -
controls | xs:boolean | No | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="audio" type="Audio.Type" />

#### 3.4.1.4 "bdi" Root Element Description

The XSD description for the "bdi" Root Element is given in Table 3.4.1.4.

Table 3.4.1.4 XSD description for the "bdi" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | BDI.Type
Type Hierarchy | BaseHTML5.Type ^---BDI.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="bdi" type="BDI.Type" />

#### 3.4.1.5 "figcaption" Root Element Description

The XSD description for the "figcaption" Root Element is given in Table 3.4.1.5.

Table 3.4.1.5 XSD description for the "figcaption" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | FigCaption.Type
Type Hierarchy | BaseHTML5.Type ^---FigCaption.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Figure.Type
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="figcaption" type="FigCaption.Type" />

#### 3.4.1.6 "figure" Root Element Description

The XSD description for the "figure" Root Element is given in Table 3.4.1.6.

Table 3.4.1.6 XSD description for the "figure" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | Figure.Type
Type Hierarchy | BaseHTML5.Type ^---Figure.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | figcaption{0..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
Unordered Class | figcaption
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Explicit Rules | RULE_SET_GENERAL-RULE GENERAL 1-Assertion 1: "qh5:figcaption[position()=1 or position()=last()]"
Source |
    <xs:element name="figure" type="Figure.Type" />

#### 3.4.1.7 "footer" Root Element Description

The XSD description for the "footer" Root Element is given in Table 3.4.1.7.

Table 3.4.1.7 XSD description for the "footer" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | Footer.Type
Type Hierarchy | BaseHTML5.Type ^---Footer.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="footer" type="Footer.Type" />

#### 3.4.1.8 "header" Root Element Description

The XSD description for the "header" Root Element is given in Table 3.4.1.8.

Table 3.4.1.8 XSD description for the "header" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | Header.Type
Type Hierarchy | BaseHTML5.Type ^---Header.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="header" type="Header.Type" />

#### 3.4.1.9 "label" Root Element Description

The XSD description for the "label" Root Element is given in Table 3.4.1.9.

Table 3.4.1.9 XSD description for the "label" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | Label.Type
Type Hierarchy | BaseHTML5.Type ^---Label.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="label" type="Label.Type" />

#### 3.4.1.10 "nav" Root Element Description

The XSD description for the "nav" Root Element is given in Table 3.4.1.10.

Table 3.4.1.10 XSD description for the "nav" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | Nav.Type
Type Hierarchy | BaseHTML5.Type ^---Nav.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="nav" type="Nav.Type" />

#### 3.4.1.11 "rb" Root Element Description

The XSD description for the "rb" Root Element is given in Table 3.4.1.11.

Table 3.4.1.11 XSD description for the "rb" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | RB.Type
Type Hierarchy | BaseHTML5.Type ^---RB.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Ruby.Type
Model | ( qti:a{1..1} | qti:abbr{1..1} | qti:b{1..1} | qti:bdo{1..1} | qti:br{1..1} | qti:cite{1..1} | qti:code{1..1} | qti:dfn{1..1} | qti:em{1..1} | qti:i{1..1} | qti:img{1..1} | qti:kbd{1..1} | qti:object{1..1} | qti:q{1..1} | qti:samp{1..1} | qti:small{1..1} | qti:span{1..1} | qti:strong{1..1} | qti:sub{1..1} | qti:sup{1..1} | qti:var{1..1} | audio{1..1} | bdi{1..1} | label{1..1} | ruby{1..1} | video{1..1} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="rb" type="RB.Type" />

#### 3.4.1.12 "rp" Root Element Description

The XSD description for the "rp" Root Element is given in Table 3.4.1.12.

Table 3.4.1.12 XSD description for the "rp" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | RP.Type
Type Hierarchy | BaseHTML5.Type ^---RP.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Ruby.Type
Model | ( qti:a{1..1} | qti:abbr{1..1} | qti:b{1..1} | qti:bdo{1..1} | qti:br{1..1} | qti:cite{1..1} | qti:code{1..1} | qti:dfn{1..1} | qti:em{1..1} | qti:i{1..1} | qti:img{1..1} | qti:kbd{1..1} | qti:object{1..1} | qti:q{1..1} | qti:samp{1..1} | qti:small{1..1} | qti:span{1..1} | qti:strong{1..1} | qti:sub{1..1} | qti:sup{1..1} | qti:var{1..1} | audio{1..1} | bdi{1..1} | label{1..1} | ruby{1..1} | video{1..1} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="rp" type="RP.Type" />

#### 3.4.1.13 "rt" Root Element Description

The XSD description for the "rt" Root Element is given in Table 3.4.1.13.

Table 3.4.1.13 XSD description for the "rt" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | RT.Type
Type Hierarchy | BaseHTML5.Type ^---RT.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | RTC.Type, Ruby.Type
Model | ( qti:a{1..1} | qti:abbr{1..1} | qti:b{1..1} | qti:bdo{1..1} | qti:br{1..1} | qti:cite{1..1} | qti:code{1..1} | qti:dfn{1..1} | qti:em{1..1} | qti:i{1..1} | qti:img{1..1} | qti:kbd{1..1} | qti:object{1..1} | qti:q{1..1} | qti:samp{1..1} | qti:small{1..1} | qti:span{1..1} | qti:strong{1..1} | qti:sub{1..1} | qti:sup{1..1} | qti:var{1..1} | audio{1..1} | bdi{1..1} | label{1..1} | ruby{1..1} | video{1..1} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="rt" type="RT.Type" />

#### 3.4.1.14 "rtc" Root Element Description

The XSD description for the "rtc" Root Element is given in Table 3.4.1.14.

Table 3.4.1.14 XSD description for the "rtc" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | RTC.Type
Type Hierarchy | BaseHTML5.Type ^---RTC.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Ruby.Type
Model | ( qti:a{1..1} | qti:abbr{1..1} | qti:b{1..1} | qti:bdo{1..1} | qti:br{1..1} | qti:cite{1..1} | qti:code{1..1} | qti:dfn{1..1} | qti:em{1..1} | qti:i{1..1} | qti:img{1..1} | qti:kbd{1..1} | qti:object{1..1} | qti:q{1..1} | qti:samp{1..1} | qti:small{1..1} | qti:span{1..1} | qti:strong{1..1} | qti:sub{1..1} | qti:sup{1..1} | qti:var{1..1} | audio{1..1} | bdi{1..1} | label{1..1} | ruby{1..1} | video{1..1} ){0..*} | rt{0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="rtc" type="RTC.Type" />

#### 3.4.1.15 "ruby" Root Element Description

The XSD description for the "ruby" Root Element is given in Table 3.4.1.15.

Table 3.4.1.15 XSD description for the "ruby" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | Ruby.Type
Type Hierarchy | BaseHTML5.Type ^---Ruby.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | ( ( ( qti:a{1..1} | qti:abbr{1..1} | qti:b{1..1} | qti:bdo{1..1} | qti:br{1..1} | qti:cite{1..1} | qti:code{1..1} | qti:dfn{1..1} | qti:em{1..1} | qti:i{1..1} | qti:img{1..1} | qti:kbd{1..1} | qti:object{1..1} | qti:q{1..1} | qti:samp{1..1} | qti:small{1..1} | qti:span{1..1} | qti:strong{1..1} | qti:sub{1..1} | qti:sup{1..1} | qti:var{1..1} | audio{1..1} | bdi{1..1} | label{1..1} | ruby{1..1} | video{1..1} ){0..*} | rb{0..*} ){1..1} | ( rp{0..1} | ( rt{1..1} | rtc{1..1} ){1..1} ){1..1} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="ruby" type="Ruby.Type" />

#### 3.4.1.16 "section" Root Element Description

The XSD description for the "section" Root Element is given in Table 3.4.1.16.

Table 3.4.1.16 XSD description for the "section" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | Section.Type
Type Hierarchy | BaseHTML5.Type ^---Section.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="section" type="Section.Type" />

#### 3.4.1.17 "source" Root Element Description

The XSD description for the "source" Root Element is given in Table 3.4.1.17.

Table 3.4.1.17 XSD description for the "source" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | Source.Type
Type Hierarchy | BaseHTML5Empty.Type ^---Source.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Audio.Type, Video.Type
Model | Empty
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
src | URL.Type | No | Global | Required | -
type | MimeType.Type | No | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="source" type="Source.Type" />

#### 3.4.1.18 "track" Root Element Description

The XSD description for the "track" Root Element is given in Table 3.4.1.18.

Table 3.4.1.18 XSD description for the "track" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | Track.Type
Type Hierarchy | BaseHTML5Empty.Type ^---Track.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Audio.Type, Video.Type
Model | Empty
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
kind | [ Enumeration ] | No | Global | Optional | subtitles
src | URL.Type | No | Global | Required | -
srclang | xs:normalizedString | No | Global | Optional | -
default | xs:boolean | No | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="track" type="Track.Type" />

#### 3.4.1.19 "video" Root Element Description

The XSD description for the "video" Root Element is given in Table 3.4.1.19.

Table 3.4.1.19 XSD description for the "video" Root Element.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | Video.Type
Type Hierarchy | BaseHTML5.Type ^---Video.Type
Properties |
Content | simple
MinOccurs | 1
MaxOccurs | 1
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | source{0..*}, track{0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
src | URL.Type | No | Global | Optional | -
crossorigin | [ Enumeration ] | No | Global | Optional | -
preload | [ Enumeration ] | No | Global | Optional | metadata
autoplay | xs:boolean | No | Global | Optional | -
mediagroup | xs:normalizedString | No | Global | Optional | -
loop | xs:boolean | No | Global | Optional | -
muted | xs:boolean | No | Global | Optional | -
controls | xs:boolean | No | Global | Optional | -
poster | URL.Type | No | Global | Optional | -
width | xs:nonNegativeInteger | No | Global | Optional | -
height | xs:nonNegativeInteger | No | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:element name="video" type="Video.Type" />

### 3.4.2 Global Element Descriptions

The syntax and semantics for the Global Element XSD representations is described in Appendix B1.6.

#### 3.4.2.1 "qti:a" Global Element Description

The XSD description for the "qti:a" Global Element is given in Table 3.4.2.1.

Table 3.4.2.1 XSD description for the "qti:a" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.2 "qti:abbr" Global Element Description

The XSD description for the "qti:abbr" Global Element is given in Table 3.4.2.2.

Table 3.4.2.2 XSD description for the "qti:abbr" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.3 "qti:acronym" Global Element Description

The XSD description for the "qti:acronym" Global Element is given in Table 3.4.2.3.

Table 3.4.2.3 XSD description for the "qti:acronym" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.4 "qti:address" Global Element Description

The XSD description for the "qti:address" Global Element is given in Table 3.4.2.4.

Table 3.4.2.4 XSD description for the "qti:address" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.5 "ssml11:audio" Global Element Description

The XSD description for the "ssml11:audio" Global Element is given in Table 3.4.2.5.

Table 3.4.2.5 XSD description for the "ssml11:audio" Global Element.
Namespace | http://www.w3.org/2010/10/synthesis
Diagram |
Type | [ Imported ( SSMLv1p1 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).

#### 3.4.2.6 "qti:b" Global Element Description

The XSD description for the "qti:b" Global Element is given in Table 3.4.2.6.

Table 3.4.2.6 XSD description for the "qti:b" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.7 "qti:bdo" Global Element Description

The XSD description for the "qti:bdo" Global Element is given in Table 3.4.2.7.

Table 3.4.2.7 XSD description for the "qti:bdo" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.8 "qti:big" Global Element Description

The XSD description for the "qti:big" Global Element is given in Table 3.4.2.8.

Table 3.4.2.8 XSD description for the "qti:big" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.9 "qti:br" Global Element Description

The XSD description for the "qti:br" Global Element is given in Table 3.4.2.9.

Table 3.4.2.9 XSD description for the "qti:br" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.10 "ssml11:break" Global Element Description

The XSD description for the "ssml11:break" Global Element is given in Table 3.4.2.10.

Table 3.4.2.10 XSD description for the "ssml11:break" Global Element.
Namespace | http://www.w3.org/2010/10/synthesis
Diagram |
Type | [ Imported ( SSMLv1p1 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).

#### 3.4.2.11 "qti:cite" Global Element Description

The XSD description for the "qti:cite" Global Element is given in Table 3.4.2.11.

Table 3.4.2.11 XSD description for the "qti:cite" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.12 "qti:code" Global Element Description

The XSD description for the "qti:code" Global Element is given in Table 3.4.2.12.

Table 3.4.2.12 XSD description for the "qti:code" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.13 "qti:dfn" Global Element Description

The XSD description for the "qti:dfn" Global Element is given in Table 3.4.2.13.

Table 3.4.2.13 XSD description for the "qti:dfn" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.14 "qti:dl" Global Element Description

The XSD description for the "qti:dl" Global Element is given in Table 3.4.2.14.

Table 3.4.2.14 XSD description for the "qti:dl" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.15 "qti:em" Global Element Description

The XSD description for the "qti:em" Global Element is given in Table 3.4.2.15.

Table 3.4.2.15 XSD description for the "qti:em" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.16 "ssml11:emphasis" Global Element Description

The XSD description for the "ssml11:emphasis" Global Element is given in Table 3.4.2.16.

Table 3.4.2.16 XSD description for the "ssml11:emphasis" Global Element.
Namespace | http://www.w3.org/2010/10/synthesis
Diagram |
Type | [ Imported ( SSMLv1p1 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).

#### 3.4.2.17 "qti:h1" Global Element Description

The XSD description for the "qti:h1" Global Element is given in Table 3.4.2.17.

Table 3.4.2.17 XSD description for the "qti:h1" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.18 "qti:h2" Global Element Description

The XSD description for the "qti:h2" Global Element is given in Table 3.4.2.18.

Table 3.4.2.18 XSD description for the "qti:h2" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.19 "qti:h3" Global Element Description

The XSD description for the "qti:h3" Global Element is given in Table 3.4.2.19.

Table 3.4.2.19 XSD description for the "qti:h3" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.20 "qti:h4" Global Element Description

The XSD description for the "qti:h4" Global Element is given in Table 3.4.2.20.

Table 3.4.2.20 XSD description for the "qti:h4" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.21 "qti:h5" Global Element Description

The XSD description for the "qti:h5" Global Element is given in Table 3.4.2.21.

Table 3.4.2.21 XSD description for the "qti:h5" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.22 "qti:h6" Global Element Description

The XSD description for the "qti:h6" Global Element is given in Table 3.4.2.22.

Table 3.4.2.22 XSD description for the "qti:h6" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.23 "qti:hr" Global Element Description

The XSD description for the "qti:hr" Global Element is given in Table 3.4.2.23.

Table 3.4.2.23 XSD description for the "qti:hr" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.24 "qti:i" Global Element Description

The XSD description for the "qti:i" Global Element is given in Table 3.4.2.24.

Table 3.4.2.24 XSD description for the "qti:i" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.25 "qti:img" Global Element Description

The XSD description for the "qti:img" Global Element is given in Table 3.4.2.25.

Table 3.4.2.25 XSD description for the "qti:img" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.26 "xi:include" Global Element Description

The XSD description for the "xi:include" Global Element is given in Table 3.4.2.26.

Table 3.4.2.26 XSD description for the "xi:include" Global Element.
Namespace | http://www.w3.org/2001/XInclude
Diagram |
Type | [ Imported ( Include ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, FigCaption.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/w3/2001/XInclude.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/w3/2001/XInclude.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/w3/2001/XInclude.xsd).

#### 3.4.2.27 "qti:kbd" Global Element Description

The XSD description for the "qti:kbd" Global Element is given in Table 3.4.2.27.

Table 3.4.2.27 XSD description for the "qti:kbd" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.28 "ssml11:mark" Global Element Description

The XSD description for the "ssml11:mark" Global Element is given in Table 3.4.2.28.

Table 3.4.2.28 XSD description for the "ssml11:mark" Global Element.
Namespace | http://www.w3.org/2010/10/synthesis
Diagram |
Type | [ Imported ( SSMLv1p1 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).

#### 3.4.2.29 "m2:math" Global Element Description

The XSD description for the "m2:math" Global Element is given in Table 3.4.2.29.

Table 3.4.2.29 XSD description for the "m2:math" Global Element.
Namespace | http://www.w3.org/1998/Math/MathML
Diagram |
Type | [ Imported ( MathML2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, FigCaption.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd).
Attributes | See import XSD (http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd).
Source | See import XSD (http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd).

#### 3.4.2.30 "m3:math" Global Element Description

The XSD description for the "m3:math" Global Element is given in Table 3.4.2.30.

Table 3.4.2.30 XSD description for the "m3:math" Global Element.
Namespace | http://www.w3.org/2010/Math/MathML
Diagram |
Type | [ Imported ( MathML3 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, FigCaption.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/w3/Math/XMLSchema/mathml3/mathml3.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/w3/Math/XMLSchema/mathml3/mathml3.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/w3/Math/XMLSchema/mathml3/mathml3.xsd).

#### 3.4.2.31 "qti:object" Global Element Description

The XSD description for the "qti:object" Global Element is given in Table 3.4.2.31.

Table 3.4.2.31 XSD description for the "qti:object" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.32 "qti:ol" Global Element Description

The XSD description for the "qti:ol" Global Element is given in Table 3.4.2.32.

Table 3.4.2.32 XSD description for the "qti:ol" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.33 "qti:p" Global Element Description

The XSD description for the "qti:p" Global Element is given in Table 3.4.2.33.

Table 3.4.2.33 XSD description for the "qti:p" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.34 "ssml11:p" Global Element Description

The XSD description for the "ssml11:p" Global Element is given in Table 3.4.2.34.

Table 3.4.2.34 XSD description for the "ssml11:p" Global Element.
Namespace | http://www.w3.org/2010/10/synthesis
Diagram |
Type | [ Imported ( SSMLv1p1 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).

#### 3.4.2.35 "ssml11:phoneme" Global Element Description

The XSD description for the "ssml11:phoneme" Global Element is given in Table 3.4.2.35.

Table 3.4.2.35 XSD description for the "ssml11:phoneme" Global Element.
Namespace | http://www.w3.org/2010/10/synthesis
Diagram |
Type | [ Imported ( SSMLv1p1 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).

#### 3.4.2.36 "qti:pre" Global Element Description

The XSD description for the "qti:pre" Global Element is given in Table 3.4.2.36.

Table 3.4.2.36 XSD description for the "qti:pre" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.37 "ssml11:prosody" Global Element Description

The XSD description for the "ssml11:prosody" Global Element is given in Table 3.4.2.37.

Table 3.4.2.37 XSD description for the "ssml11:prosody" Global Element.
Namespace | http://www.w3.org/2010/10/synthesis
Diagram |
Type | [ Imported ( SSMLv1p1 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).

#### 3.4.2.38 "qti:q" Global Element Description

The XSD description for the "qti:q" Global Element is given in Table 3.4.2.38.

Table 3.4.2.38 XSD description for the "qti:q" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.39 "ssml11:s" Global Element Description

The XSD description for the "ssml11:s" Global Element is given in Table 3.4.2.39.

Table 3.4.2.39 XSD description for the "ssml11:s" Global Element.
Namespace | http://www.w3.org/2010/10/synthesis
Diagram |
Type | [ Imported ( SSMLv1p1 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).

#### 3.4.2.40 "qti:samp" Global Element Description

The XSD description for the "qti:samp" Global Element is given in Table 3.4.2.40.

Table 3.4.2.40 XSD description for the "qti:samp" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.41 "ssml11:say-as" Global Element Description

The XSD description for the "ssml11:say-as" Global Element is given in Table 3.4.2.41.

Table 3.4.2.41 XSD description for the "ssml11:say-as" Global Element.
Namespace | http://www.w3.org/2010/10/synthesis
Diagram |
Type | [ Imported ( SSMLv1p1 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).

#### 3.4.2.42 "qti:small" Global Element Description

The XSD description for the "qti:small" Global Element is given in Table 3.4.2.42.

Table 3.4.2.42 XSD description for the "qti:small" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.43 "qti:span" Global Element Description

The XSD description for the "qti:span" Global Element is given in Table 3.4.2.43.

Table 3.4.2.43 XSD description for the "qti:span" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.44 "ssml11:speak" Global Element Description

The XSD description for the "ssml11:speak" Global Element is given in Table 3.4.2.44.

Table 3.4.2.44 XSD description for the "ssml11:speak" Global Element.
Namespace | http://www.w3.org/2010/10/synthesis
Diagram |
Type | [ Imported ( SSMLv1p1 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).

#### 3.4.2.45 "qti:strong" Global Element Description

The XSD description for the "qti:strong" Global Element is given in Table 3.4.2.45.

Table 3.4.2.45 XSD description for the "qti:strong" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.46 "qti:sub" Global Element Description

The XSD description for the "qti:sub" Global Element is given in Table 3.4.2.46.

Table 3.4.2.46 XSD description for the "qti:sub" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.47 "ssml11:sub" Global Element Description

The XSD description for the "ssml11:sub" Global Element is given in Table 3.4.2.47.

Table 3.4.2.47 XSD description for the "ssml11:sub" Global Element.
Namespace | http://www.w3.org/2010/10/synthesis
Diagram |
Type | [ Imported ( SSMLv1p1 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).

#### 3.4.2.48 "qti:sup" Global Element Description

The XSD description for the "qti:sup" Global Element is given in Table 3.4.2.48.

Table 3.4.2.48 XSD description for the "qti:sup" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.49 "qti:tt" Global Element Description

The XSD description for the "qti:tt" Global Element is given in Table 3.4.2.49.

Table 3.4.2.49 XSD description for the "qti:tt" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.50 "qti:ul" Global Element Description

The XSD description for the "qti:ul" Global Element is given in Table 3.4.2.50.

Table 3.4.2.50 XSD description for the "qti:ul" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.51 "qti:var" Global Element Description

The XSD description for the "qti:var" Global Element is given in Table 3.4.2.51.

Table 3.4.2.51 XSD description for the "qti:var" Global Element.
Namespace | http://www.imsglobal.org/xsd/imsqti_v2p2
Diagram |
Type | [ Imported ( QTIv2p2 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd).

#### 3.4.2.52 "ssml11:voice" Global Element Description

The XSD description for the "ssml11:voice" Global Element is given in Table 3.4.2.52.

Table 3.4.2.52 XSD description for the "ssml11:voice" Global Element.
Namespace | http://www.w3.org/2010/10/synthesis
Diagram |
Type | [ Imported ( SSMLv1p1 ) ]
Used by |
ComplexTypes | Article.Type, Aside.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, Section.Type
Model | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Attributes | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).
Source | See import XSD (http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd).

### 3.4.3 Attribute Group Descriptions

The syntax and semantics for the Attribute Group XSD representations is described in Appendix B1.9.

#### 3.4.3.1 "aria-controls.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "aria-controls.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.1.

Table 3.4.3.1 XSD description for the "aria-controls.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="aria-controls.BaseHTML5.Attr">
        <xs:attribute name="aria-controls" use="optional" type="xs:IDREFS" />
    </xs:attributeGroup>

#### 3.4.3.2 "aria-controls.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "aria-controls.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.2.

Table 3.4.3.2 XSD description for the "aria-controls.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="aria-controls.BaseHTML5Empty.Attr">
        <xs:attribute name="aria-controls" use="optional" type="xs:IDREFS" />
    </xs:attributeGroup>

#### 3.4.3.3 "aria-describedby.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "aria-describedby.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.3.

Table 3.4.3.3 XSD description for the "aria-describedby.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="aria-describedby.BaseHTML5.Attr">
        <xs:attribute name="aria-describedby" use="optional" type="xs:IDREFS" />
    </xs:attributeGroup>

#### 3.4.3.4 "aria-describedby.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "aria-describedby.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.4.

Table 3.4.3.4 XSD description for the "aria-describedby.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="aria-describedby.BaseHTML5Empty.Attr">
        <xs:attribute name="aria-describedby" use="optional" type="xs:IDREFS" />
    </xs:attributeGroup>

#### 3.4.3.5 "aria-flowto.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "aria-flowto.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.5.

Table 3.4.3.5 XSD description for the "aria-flowto.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="aria-flowto.BaseHTML5.Attr">
        <xs:attribute name="aria-flowto" use="optional" type="xs:IDREFS" />
    </xs:attributeGroup>

#### 3.4.3.6 "aria-flowto.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "aria-flowto.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.6.

Table 3.4.3.6 XSD description for the "aria-flowto.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="aria-flowto.BaseHTML5Empty.Attr">
        <xs:attribute name="aria-flowto" use="optional" type="xs:IDREFS" />
    </xs:attributeGroup>

#### 3.4.3.7 "aria-label.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "aria-label.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.7.

Table 3.4.3.7 XSD description for the "aria-label.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="aria-label.BaseHTML5.Attr">
        <xs:attribute name="aria-label" use="optional" type="xs:normalizedString" />
    </xs:attributeGroup>

#### 3.4.3.8 "aria-label.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "aria-label.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.8.

Table 3.4.3.8 XSD description for the "aria-label.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="aria-label.BaseHTML5Empty.Attr">
        <xs:attribute name="aria-label" use="optional" type="xs:normalizedString" />
    </xs:attributeGroup>

#### 3.4.3.9 "aria-labelledby.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "aria-labelledby.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.9.

Table 3.4.3.9 XSD description for the "aria-labelledby.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="aria-labelledby.BaseHTML5.Attr">
        <xs:attribute name="aria-labelledby" use="optional" type="xs:IDREFS" />
    </xs:attributeGroup>

#### 3.4.3.10 "aria-labelledby.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "aria-labelledby.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.10.

Table 3.4.3.10 XSD description for the "aria-labelledby.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="aria-labelledby.BaseHTML5Empty.Attr">
        <xs:attribute name="aria-labelledby" use="optional" type="xs:IDREFS" />
    </xs:attributeGroup>

#### 3.4.3.11 "aria-level.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "aria-level.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.11.

Table 3.4.3.11 XSD description for the "aria-level.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="aria-level.BaseHTML5.Attr">
        <xs:attribute name="aria-level" use="optional" type="AriaLevelInteger.Type" />
    </xs:attributeGroup>

#### 3.4.3.12 "aria-level.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "aria-level.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.12.

Table 3.4.3.12 XSD description for the "aria-level.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="aria-level.BaseHTML5Empty.Attr">
        <xs:attribute name="aria-level" use="optional" type="AriaLevelInteger.Type" />
    </xs:attributeGroup>

#### 3.4.3.13 "aria-live.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "aria-live.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.13.

Table 3.4.3.13 XSD description for the "aria-live.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="aria-live.BaseHTML5.Attr">
        <xs:attribute name="aria-live" use="optional" default="off">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="off" />
                    <xs:enumeration value="polite" />
                    <xs:enumeration value="assertive" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>

#### 3.4.3.14 "aria-live.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "aria-live.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.14.

Table 3.4.3.14 XSD description for the "aria-live.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="aria-live.BaseHTML5Empty.Attr">
        <xs:attribute name="aria-live" use="optional" default="off">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="off" />
                    <xs:enumeration value="polite" />
                    <xs:enumeration value="assertive" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>

#### 3.4.3.15 "aria-orientation.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "aria-orientation.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.15.

Table 3.4.3.15 XSD description for the "aria-orientation.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="aria-orientation.BaseHTML5.Attr">
        <xs:attribute name="aria-orientation" use="optional" default="horizontal">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="vertical" />
                    <xs:enumeration value="horizontal" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>

#### 3.4.3.16 "aria-orientation.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "aria-orientation.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.16.

Table 3.4.3.16 XSD description for the "aria-orientation.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="aria-orientation.BaseHTML5Empty.Attr">
        <xs:attribute name="aria-orientation" use="optional" default="horizontal">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="vertical" />
                    <xs:enumeration value="horizontal" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>

#### 3.4.3.17 "aria-owns.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "aria-owns.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.17.

Table 3.4.3.17 XSD description for the "aria-owns.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="aria-owns.BaseHTML5.Attr">
        <xs:attribute name="aria-owns" use="optional" type="xs:IDREFS" />
    </xs:attributeGroup>

#### 3.4.3.18 "aria-owns.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "aria-owns.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.18.

Table 3.4.3.18 XSD description for the "aria-owns.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="aria-owns.BaseHTML5Empty.Attr">
        <xs:attribute name="aria-owns" use="optional" type="xs:IDREFS" />
    </xs:attributeGroup>

#### 3.4.3.19 "autoplay.Audio.Attr" Attribute Group Description

The XSD description for the "autoplay.Audio.Attr" Attribute Group is given in Table 3.4.3.19.

Table 3.4.3.19 XSD description for the "autoplay.Audio.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | audio
ComplexTypes | Audio.Type
Source |
    <xs:attributeGroup name="autoplay.Audio.Attr">
        <xs:attribute name="autoplay" use="optional" type="xs:boolean" />
    </xs:attributeGroup>

#### 3.4.3.20 "autoplay.Video.Attr" Attribute Group Description

The XSD description for the "autoplay.Video.Attr" Attribute Group is given in Table 3.4.3.20.

Table 3.4.3.20 XSD description for the "autoplay.Video.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | video
ComplexTypes | Video.Type
Source |
    <xs:attributeGroup name="autoplay.Video.Attr">
        <xs:attribute name="autoplay" use="optional" type="xs:boolean" />
    </xs:attributeGroup>

#### 3.4.3.21 "class.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "class.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.21.

Table 3.4.3.21 XSD description for the "class.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="class.BaseHTML5.Attr">
        <xs:attribute name="class" use="optional">
            <xs:simpleType>
                <xs:list itemType="StringList.Type">
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>

#### 3.4.3.22 "class.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "class.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.22.

Table 3.4.3.22 XSD description for the "class.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="class.BaseHTML5Empty.Attr">
        <xs:attribute name="class" use="optional">
            <xs:simpleType>
                <xs:list itemType="StringList.Type">
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>

#### 3.4.3.23 "controls.Audio.Attr" Attribute Group Description

The XSD description for the "controls.Audio.Attr" Attribute Group is given in Table 3.4.3.23.

Table 3.4.3.23 XSD description for the "controls.Audio.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | audio
ComplexTypes | Audio.Type
Source |
    <xs:attributeGroup name="controls.Audio.Attr">
        <xs:attribute name="controls" use="optional" type="xs:boolean" />
    </xs:attributeGroup>

#### 3.4.3.24 "controls.Video.Attr" Attribute Group Description

The XSD description for the "controls.Video.Attr" Attribute Group is given in Table 3.4.3.24.

Table 3.4.3.24 XSD description for the "controls.Video.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | video
ComplexTypes | Video.Type
Source |
    <xs:attributeGroup name="controls.Video.Attr">
        <xs:attribute name="controls" use="optional" type="xs:boolean" />
    </xs:attributeGroup>

#### 3.4.3.25 "crossorigin.Audio.Attr" Attribute Group Description

The XSD description for the "crossorigin.Audio.Attr" Attribute Group is given in Table 3.4.3.25.

Table 3.4.3.25 XSD description for the "crossorigin.Audio.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | audio
ComplexTypes | Audio.Type
Source |
    <xs:attributeGroup name="crossorigin.Audio.Attr">
        <xs:attribute name="crossorigin" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="anonymous" />
                    <xs:enumeration value="use-credentials" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>

#### 3.4.3.26 "crossorigin.Video.Attr" Attribute Group Description

The XSD description for the "crossorigin.Video.Attr" Attribute Group is given in Table 3.4.3.26.

Table 3.4.3.26 XSD description for the "crossorigin.Video.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | video
ComplexTypes | Video.Type
Source |
    <xs:attributeGroup name="crossorigin.Video.Attr">
        <xs:attribute name="crossorigin" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="anonymous" />
                    <xs:enumeration value="use-credentials" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>

#### 3.4.3.27 "dataExtension.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "dataExtension.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.27.

Table 3.4.3.27 XSD description for the "dataExtension.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:attributeGroup name="dataExtension.BaseHTML5.Attr">
        <xs:anyAttribute namespace = "##any" processContents = "lax" />
    </xs:attributeGroup>

#### 3.4.3.28 "dataExtension.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "dataExtension.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.28.

Table 3.4.3.28 XSD description for the "dataExtension.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:attributeGroup name="dataExtension.BaseHTML5Empty.Attr">
        <xs:anyAttribute namespace = "##any" processContents = "lax" />
    </xs:attributeGroup>

#### 3.4.3.29 "default.Track.Attr" Attribute Group Description

The XSD description for the "default.Track.Attr" Attribute Group is given in Table 3.4.3.29.

Table 3.4.3.29 XSD description for the "default.Track.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | track
ComplexTypes | Track.Type
Source |
    <xs:attributeGroup name="default.Track.Attr">
        <xs:attribute name="default" use="optional" type="xs:boolean" />
    </xs:attributeGroup>

#### 3.4.3.30 "dir.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "dir.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.30.

Table 3.4.3.30 XSD description for the "dir.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="dir.BaseHTML5.Attr">
        <xs:attribute name="dir" use="optional" default="auto">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="ltr" />
                    <xs:enumeration value="rtl" />
                    <xs:enumeration value="auto" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>

#### 3.4.3.31 "dir.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "dir.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.31.

Table 3.4.3.31 XSD description for the "dir.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="dir.BaseHTML5Empty.Attr">
        <xs:attribute name="dir" use="optional" default="auto">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="ltr" />
                    <xs:enumeration value="rtl" />
                    <xs:enumeration value="auto" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>

#### 3.4.3.32 "height.Video.Attr" Attribute Group Description

The XSD description for the "height.Video.Attr" Attribute Group is given in Table 3.4.3.32.

Table 3.4.3.32 XSD description for the "height.Video.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | video
ComplexTypes | Video.Type
Source |
    <xs:attributeGroup name="height.Video.Attr">
        <xs:attribute name="height" use="optional" type="xs:nonNegativeInteger" />
    </xs:attributeGroup>

#### 3.4.3.33 "id.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "id.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.33.

Table 3.4.3.33 XSD description for the "id.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="id.BaseHTML5.Attr">
        <xs:attribute name="id" use="optional" type="UniqueIdentifier.Type" />
    </xs:attributeGroup>

#### 3.4.3.34 "id.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "id.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.34.

Table 3.4.3.34 XSD description for the "id.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="id.BaseHTML5Empty.Attr">
        <xs:attribute name="id" use="optional" type="UniqueIdentifier.Type" />
    </xs:attributeGroup>

#### 3.4.3.35 "kind.Track.Attr" Attribute Group Description

The XSD description for the "kind.Track.Attr" Attribute Group is given in Table 3.4.3.35.

Table 3.4.3.35 XSD description for the "kind.Track.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | track
ComplexTypes | Track.Type
Source |
    <xs:attributeGroup name="kind.Track.Attr">
        <xs:attribute name="kind" use="optional" default="subtitles">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="subtitles" />
                    <xs:enumeration value="captions" />
                    <xs:enumeration value="descriptions" />
                    <xs:enumeration value="chapters" />
                    <xs:enumeration value="metadata" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>

#### 3.4.3.36 "label.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "label.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.36.

Table 3.4.3.36 XSD description for the "label.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="label.BaseHTML5.Attr">
        <xs:attribute name="label" use="optional" type="xs:normalizedString" />
    </xs:attributeGroup>

#### 3.4.3.37 "label.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "label.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.37.

Table 3.4.3.37 XSD description for the "label.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="label.BaseHTML5Empty.Attr">
        <xs:attribute name="label" use="optional" type="xs:normalizedString" />
    </xs:attributeGroup>

#### 3.4.3.38 "language.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "language.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.38.

Table 3.4.3.38 XSD description for the "language.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="language.BaseHTML5.Attr">
        <xs:attribute ref="xml:lang" use="optional" />
    </xs:attributeGroup>

#### 3.4.3.39 "language.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "language.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.39.

Table 3.4.3.39 XSD description for the "language.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="language.BaseHTML5Empty.Attr">
        <xs:attribute ref="xml:lang" use="optional" />
    </xs:attributeGroup>

#### 3.4.3.40 "loop.Audio.Attr" Attribute Group Description

The XSD description for the "loop.Audio.Attr" Attribute Group is given in Table 3.4.3.40.

Table 3.4.3.40 XSD description for the "loop.Audio.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | audio
ComplexTypes | Audio.Type
Source |
    <xs:attributeGroup name="loop.Audio.Attr">
        <xs:attribute name="loop" use="optional" type="xs:boolean" />
    </xs:attributeGroup>

#### 3.4.3.41 "loop.Video.Attr" Attribute Group Description

The XSD description for the "loop.Video.Attr" Attribute Group is given in Table 3.4.3.41.

Table 3.4.3.41 XSD description for the "loop.Video.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | video
ComplexTypes | Video.Type
Source |
    <xs:attributeGroup name="loop.Video.Attr">
        <xs:attribute name="loop" use="optional" type="xs:boolean" />
    </xs:attributeGroup>

#### 3.4.3.42 "mediagroup.Audio.Attr" Attribute Group Description

The XSD description for the "mediagroup.Audio.Attr" Attribute Group is given in Table 3.4.3.42.

Table 3.4.3.42 XSD description for the "mediagroup.Audio.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | audio
ComplexTypes | Audio.Type
Source |
    <xs:attributeGroup name="mediagroup.Audio.Attr">
        <xs:attribute name="mediagroup" use="optional" type="xs:normalizedString" />
    </xs:attributeGroup>

#### 3.4.3.43 "mediagroup.Video.Attr" Attribute Group Description

The XSD description for the "mediagroup.Video.Attr" Attribute Group is given in Table 3.4.3.43.

Table 3.4.3.43 XSD description for the "mediagroup.Video.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | video
ComplexTypes | Video.Type
Source |
    <xs:attributeGroup name="mediagroup.Video.Attr">
        <xs:attribute name="mediagroup" use="optional" type="xs:normalizedString" />
    </xs:attributeGroup>

#### 3.4.3.44 "muted.Audio.Attr" Attribute Group Description

The XSD description for the "muted.Audio.Attr" Attribute Group is given in Table 3.4.3.44.

Table 3.4.3.44 XSD description for the "muted.Audio.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | audio
ComplexTypes | Audio.Type
Source |
    <xs:attributeGroup name="muted.Audio.Attr">
        <xs:attribute name="muted" use="optional" type="xs:boolean" />
    </xs:attributeGroup>

#### 3.4.3.45 "muted.Video.Attr" Attribute Group Description

The XSD description for the "muted.Video.Attr" Attribute Group is given in Table 3.4.3.45.

Table 3.4.3.45 XSD description for the "muted.Video.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | video
ComplexTypes | Video.Type
Source |
    <xs:attributeGroup name="muted.Video.Attr">
        <xs:attribute name="muted" use="optional" type="xs:boolean" />
    </xs:attributeGroup>

#### 3.4.3.46 "poster.Video.Attr" Attribute Group Description

The XSD description for the "poster.Video.Attr" Attribute Group is given in Table 3.4.3.46.

Table 3.4.3.46 XSD description for the "poster.Video.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | video
ComplexTypes | Video.Type
Source |
    <xs:attributeGroup name="poster.Video.Attr">
        <xs:attribute name="poster" use="optional" type="URL.Type" />
    </xs:attributeGroup>

#### 3.4.3.47 "preload.Audio.Attr" Attribute Group Description

The XSD description for the "preload.Audio.Attr" Attribute Group is given in Table 3.4.3.47.

Table 3.4.3.47 XSD description for the "preload.Audio.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | audio
ComplexTypes | Audio.Type
Source |
    <xs:attributeGroup name="preload.Audio.Attr">
        <xs:attribute name="preload" use="optional" default="metadata">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="none" />
                    <xs:enumeration value="auto" />
                    <xs:enumeration value="metadata" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>

#### 3.4.3.48 "preload.Video.Attr" Attribute Group Description

The XSD description for the "preload.Video.Attr" Attribute Group is given in Table 3.4.3.48.

Table 3.4.3.48 XSD description for the "preload.Video.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | video
ComplexTypes | Video.Type
Source |
    <xs:attributeGroup name="preload.Video.Attr">
        <xs:attribute name="preload" use="optional" default="metadata">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="none" />
                    <xs:enumeration value="auto" />
                    <xs:enumeration value="metadata" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>

#### 3.4.3.49 "role.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "role.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.49.

Table 3.4.3.49 XSD description for the "role.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="role.BaseHTML5.Attr">
        <xs:attribute name="role" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="article" />
                    <xs:enumeration value="columnheader" />
                    <xs:enumeration value="definition" />
                    <xs:enumeration value="directory" />
                    <xs:enumeration value="document" />
                    <xs:enumeration value="group" />
                    <xs:enumeration value="heading" />
                    <xs:enumeration value="img" />
                    <xs:enumeration value="list" />
                    <xs:enumeration value="listitem" />
                    <xs:enumeration value="math" />
                    <xs:enumeration value="note" />
                    <xs:enumeration value="presentation" />
                    <xs:enumeration value="region" />
                    <xs:enumeration value="row" />
                    <xs:enumeration value="rowgroup" />
                    <xs:enumeration value="rowheader" />
                    <xs:enumeration value="separator" />
                    <xs:enumeration value="toolbar" />
                    <xs:enumeration value="button" />
                    <xs:enumeration value="checkbox" />
                    <xs:enumeration value="gridcell" />
                    <xs:enumeration value="link" />
                    <xs:enumeration value="log" />
                    <xs:enumeration value="option" />
                    <xs:enumeration value="radio" />
                    <xs:enumeration value="slider" />
                    <xs:enumeration value="spinbutton" />
                    <xs:enumeration value="status" />
                    <xs:enumeration value="tab" />
                    <xs:enumeration value="tabpanel" />
                    <xs:enumeration value="textbox" />
                    <xs:enumeration value="timer" />
                    <xs:enumeration value="listbox" />
                    <xs:enumeration value="radiogroup" />
                    <xs:enumeration value="tablist" />
                    <xs:enumeration value="complementary" />
                    <xs:enumeration value="contentinfo" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>

#### 3.4.3.50 "role.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "role.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.50.

Table 3.4.3.50 XSD description for the "role.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="role.BaseHTML5Empty.Attr">
        <xs:attribute name="role" use="optional">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="article" />
                    <xs:enumeration value="columnheader" />
                    <xs:enumeration value="definition" />
                    <xs:enumeration value="directory" />
                    <xs:enumeration value="document" />
                    <xs:enumeration value="group" />
                    <xs:enumeration value="heading" />
                    <xs:enumeration value="img" />
                    <xs:enumeration value="list" />
                    <xs:enumeration value="listitem" />
                    <xs:enumeration value="math" />
                    <xs:enumeration value="note" />
                    <xs:enumeration value="presentation" />
                    <xs:enumeration value="region" />
                    <xs:enumeration value="row" />
                    <xs:enumeration value="rowgroup" />
                    <xs:enumeration value="rowheader" />
                    <xs:enumeration value="separator" />
                    <xs:enumeration value="toolbar" />
                    <xs:enumeration value="button" />
                    <xs:enumeration value="checkbox" />
                    <xs:enumeration value="gridcell" />
                    <xs:enumeration value="link" />
                    <xs:enumeration value="log" />
                    <xs:enumeration value="option" />
                    <xs:enumeration value="radio" />
                    <xs:enumeration value="slider" />
                    <xs:enumeration value="spinbutton" />
                    <xs:enumeration value="status" />
                    <xs:enumeration value="tab" />
                    <xs:enumeration value="tabpanel" />
                    <xs:enumeration value="textbox" />
                    <xs:enumeration value="timer" />
                    <xs:enumeration value="listbox" />
                    <xs:enumeration value="radiogroup" />
                    <xs:enumeration value="tablist" />
                    <xs:enumeration value="complementary" />
                    <xs:enumeration value="contentinfo" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>

#### 3.4.3.51 "src.Audio.Attr" Attribute Group Description

The XSD description for the "src.Audio.Attr" Attribute Group is given in Table 3.4.3.51.

Table 3.4.3.51 XSD description for the "src.Audio.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | audio
ComplexTypes | Audio.Type
Source |
    <xs:attributeGroup name="src.Audio.Attr">
        <xs:attribute name="src" use="optional" type="URL.Type" />
    </xs:attributeGroup>

#### 3.4.3.52 "src.Source.Attr" Attribute Group Description

The XSD description for the "src.Source.Attr" Attribute Group is given in Table 3.4.3.52.

Table 3.4.3.52 XSD description for the "src.Source.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source
ComplexTypes | Source.Type
Source |
    <xs:attributeGroup name="src.Source.Attr">
        <xs:attribute name="src" use="required" type="URL.Type" />
    </xs:attributeGroup>

#### 3.4.3.53 "src.Track.Attr" Attribute Group Description

The XSD description for the "src.Track.Attr" Attribute Group is given in Table 3.4.3.53.

Table 3.4.3.53 XSD description for the "src.Track.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | track
ComplexTypes | Track.Type
Source |
    <xs:attributeGroup name="src.Track.Attr">
        <xs:attribute name="src" use="required" type="URL.Type" />
    </xs:attributeGroup>

#### 3.4.3.54 "src.Video.Attr" Attribute Group Description

The XSD description for the "src.Video.Attr" Attribute Group is given in Table 3.4.3.54.

Table 3.4.3.54 XSD description for the "src.Video.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | video
ComplexTypes | Video.Type
Source |
    <xs:attributeGroup name="src.Video.Attr">
        <xs:attribute name="src" use="optional" type="URL.Type" />
    </xs:attributeGroup>

#### 3.4.3.55 "srclang.Track.Attr" Attribute Group Description

The XSD description for the "srclang.Track.Attr" Attribute Group is given in Table 3.4.3.55.

Table 3.4.3.55 XSD description for the "srclang.Track.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | track
ComplexTypes | Track.Type
Source |
    <xs:attributeGroup name="srclang.Track.Attr">
        <xs:attribute name="srclang" use="optional" type="xs:normalizedString" />
    </xs:attributeGroup>

#### 3.4.3.56 "title.BaseHTML5.Attr" Attribute Group Description

The XSD description for the "title.BaseHTML5.Attr" Attribute Group is given in Table 3.4.3.56.

Table 3.4.3.56 XSD description for the "title.BaseHTML5.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | bdi, figure, footer, video, audio, article, aside, header, label, nav, section, figcaption, ruby, rt, rb, rp, rtc
ComplexTypes | BaseHTML5.Type
Source |
    <xs:attributeGroup name="title.BaseHTML5.Attr">
        <xs:attribute name="title" use="optional" type="xs:normalizedString" />
    </xs:attributeGroup>

#### 3.4.3.57 "title.BaseHTML5Empty.Attr" Attribute Group Description

The XSD description for the "title.BaseHTML5Empty.Attr" Attribute Group is given in Table 3.4.3.57.

Table 3.4.3.57 XSD description for the "title.BaseHTML5Empty.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source, track
ComplexTypes | BaseHTML5Empty.Type
Source |
    <xs:attributeGroup name="title.BaseHTML5Empty.Attr">
        <xs:attribute name="title" use="optional" type="xs:normalizedString" />
    </xs:attributeGroup>

#### 3.4.3.58 "type.Source.Attr" Attribute Group Description

The XSD description for the "type.Source.Attr" Attribute Group is given in Table 3.4.3.58.

Table 3.4.3.58 XSD description for the "type.Source.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | source
ComplexTypes | Source.Type
Source |
    <xs:attributeGroup name="type.Source.Attr">
        <xs:attribute name="type" use="optional" type="MimeType.Type" />
    </xs:attributeGroup>

#### 3.4.3.59 "width.Video.Attr" Attribute Group Description

The XSD description for the "width.Video.Attr" Attribute Group is given in Table 3.4.3.59.

Table 3.4.3.59 XSD description for the "width.Video.Attr" Attribute Group.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Used by |
Root Elements | video
ComplexTypes | Video.Type
Source |
    <xs:attributeGroup name="width.Video.Attr">
        <xs:attribute name="width" use="optional" type="xs:nonNegativeInteger" />
    </xs:attributeGroup>

### 3.4.4 Root Complex Type Descriptions

The syntax and semantics for the Root ComplexType XSD representations is described in Appendix B1.7.

#### 3.4.4.1 Article.Type Root Complex Type Description

The XSD description for the "Article.Type" Root ComplexType is given in Table 3.4.4.1.

Table 3.4.4.1 XSD description for the "Article.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This defines the permitted content for the HTML5 'article' tag. The article tag represents a complete, or self-contained, composition in a document, page, application, or site and that is, in principle, independently distributable or reusable, e.g. in syndication. This could be a forum post, a magazine or newspaper article, a blog entry, a user-submitted comment, an interactive widget or gadget, or any other independent item of content. When article tags are nested, the inner article tags represent articles that are in principle related to the contents of the outer article. For instance, a blog entry on a site that accepts user-submitted comments could represent the comments as article elements nested within the article tag for the blog entry. Author information associated with an article tag (q.v. the address tag) does not apply to nested article tags.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---Article.Type
Properties |
Abstract | false
Mixed | true
Used by |
Root Elements | article
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="Article.Type" abstract="false" mixed="true">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:sequence>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                            <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                    </xs:choice>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.2 Aside.Type Root Complex Type Description

The XSD description for the "Aside.Type" Root ComplexType is given in Table 3.4.4.2.

Table 3.4.4.2 XSD description for the "Aside.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This defines the permitted content for the HTML5 'aside' tag. The aside tag represents a section of a page that consists of content that is tangentially related to the content around the aside tag, and which could be considered separate from that content. Such sections are often represented as sidebars in printed typography. The tag can be used for typographical effects like pull quotes or sidebars, for advertising, for groups of nav tags, and for other content that is considered separate from the main content of the page.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---Aside.Type
Properties |
Abstract | false
Mixed | true
Used by |
Root Elements | aside
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="Aside.Type" abstract="false" mixed="true">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:sequence>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                            <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                    </xs:choice>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.3 Audio.Type Root Complex Type Description

The XSD description for the "Audio.Type" Root ComplexType is given in Table 3.4.4.3.

Table 3.4.4.3 XSD description for the "Audio.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | The 'audio' tag is an HTML5 feature. An audio tag represents a sound or audio stream. Content may be provided inside the audio tag. User agents should not show this content to the user; it is intended for older Web browsers which do not support audio, so that legacy audio plugins can be tried, or to show text to the users of these older browsers informing them of how to access the audio contents.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---Audio.Type
Properties |
Abstract | false
Mixed | false
Used by |
Root Elements | audio
Model | source{0..*}, track{0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
src | URL.Type | No | Global | Optional | -
crossorigin | [ Enumeration ] | No | Global | Optional | -
preload | [ Enumeration ] | No | Global | Optional | metadata
autoplay | xs:boolean | No | Global | Optional | -
mediagroup | xs:normalizedString | No | Global | Optional | -
loop | xs:boolean | No | Global | Optional | -
muted | xs:boolean | No | Global | Optional | -
controls | xs:boolean | No | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="Audio.Type" abstract="false" mixed="false">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:sequence>
                    <xs:element ref="source" minOccurs="0" maxOccurs="unbounded" />
                    <xs:element ref="track" minOccurs="0" maxOccurs="unbounded" />
                </xs:sequence>
                <xs:attributeGroup ref="src.Audio.Attr" />
                <xs:attributeGroup ref="crossorigin.Audio.Attr" />
                <xs:attributeGroup ref="preload.Audio.Attr" />
                <xs:attributeGroup ref="autoplay.Audio.Attr" />
                <xs:attributeGroup ref="mediagroup.Audio.Attr" />
                <xs:attributeGroup ref="loop.Audio.Attr" />
                <xs:attributeGroup ref="muted.Audio.Attr" />
                <xs:attributeGroup ref="controls.Audio.Attr" />
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.4 BDI.Type Root Complex Type Description

The XSD description for the "BDI.Type" Root ComplexType is given in Table 3.4.4.4.

Table 3.4.4.4 XSD description for the "BDI.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This defines the content for defining bidirectional content. The bdi tag represents a span of text that is to be isolated from its surroundings for the purposes of bidirectional text formatting.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---BDI.Type
Properties |
Abstract | false
Mixed | true
Used by |
Root Elements | bdi
Model | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="BDI.Type" abstract="false" mixed="true">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:sequence>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                        <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                    </xs:choice>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.5 FigCaption.Type Root Complex Type Description

The XSD description for the "FigCaption.Type" Root ComplexType is given in Table 3.4.4.5.

Table 3.4.4.5 XSD description for the "FigCaption.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This defines the permitted content for the HTML5 'figcaption' tag. The 'figcaption' element represents a caption or legend for the rest of the contents of the figcaption element's parent figure element, if any.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---FigCaption.Type
Properties |
Abstract | false
Mixed | true
Used by |
Root Elements | figcaption
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="FigCaption.Type" abstract="false" mixed="true">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:sequence>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                            <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                    </xs:choice>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.6 Figure.Type Root Complex Type Description

The XSD description for the "Figure.Type" Root ComplexType is given in Table 3.4.4.6.

Table 3.4.4.6 XSD description for the "Figure.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This defines the permitted content for the HTML5 'figure' tag. The 'figure' tag represents some flow content, optionally with a caption, that is self-contained (like a complete sentence) and is typically referenced as a single unit from the main flow of the document.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---Figure.Type
Properties |
Abstract | false
Mixed | true
Used by |
Root Elements | figure
Model | figcaption{0..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
Unordered Class | figcaption
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="Figure.Type" abstract="false" mixed="true">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:choice minOccurs = "0" maxOccurs = "unbounded">
                    <xs:element ref="figcaption" minOccurs="0" maxOccurs="1" />
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                        <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                    </xs:choice>
                </xs:choice>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.7 Footer.Type Root Complex Type Description

The XSD description for the "Footer.Type" Root ComplexType is given in Table 3.4.4.7.

Table 3.4.4.7 XSD description for the "Footer.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This defines the permitted content for the HTML5 'footer' tag. The footer tag represents a footer for its nearest ancestor sectioning content or sectioning root element. A footer typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---Footer.Type
Properties |
Abstract | false
Mixed | true
Used by |
Root Elements | footer
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="Footer.Type" abstract="false" mixed="true">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:sequence>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                            <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                    </xs:choice>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.8 Header.Type Root Complex Type Description

The XSD description for the "Header.Type" Root ComplexType is given in Table 3.4.4.8.

Table 3.4.4.8 XSD description for the "Header.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This defines the permitted content for the HTML5 'header' tag. The header tag represents introductory content for its nearest ancestor sectioning content or sectioning root tag. A header typically contains a group of introductory or navigational aids.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---Header.Type
Properties |
Abstract | false
Mixed | true
Used by |
Root Elements | header
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="Header.Type" abstract="false" mixed="true">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:sequence>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                            <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                    </xs:choice>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.9 Label.Type Root Complex Type Description

The XSD description for the "Label.Type" Root ComplexType is given in Table 3.4.4.9.

Table 3.4.4.9 XSD description for the "Label.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This defines the permitted content for the HTML5 'label' tag. The label tag represents a caption in a user interface. The caption can be associated with a specific form control, known as the label element's labeled control, either using the for attribute, or by putting the form control inside the label element itself. Except where otherwise specified by the following rules, a label element has no labeled control.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---Label.Type
Properties |
Abstract | false
Mixed | true
Used by |
Root Elements | label
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="Label.Type" abstract="false" mixed="true">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:sequence>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                            <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                    </xs:choice>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.10 Nav.Type Root Complex Type Description

The XSD description for the "Nav.Type" Root ComplexType is given in Table 3.4.4.10.

Table 3.4.4.10 XSD description for the "Nav.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This defines the permitted content for the HTML5 'nav' tag. The nav tag represents a section of a page that links to other pages or to parts within the page: a section with navigation links.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---Nav.Type
Properties |
Abstract | false
Mixed | true
Used by |
Root Elements | nav
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="Nav.Type" abstract="false" mixed="true">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:sequence>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                            <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                    </xs:choice>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.11 RB.Type Root Complex Type Description

The XSD description for the "RB.Type" Root ComplexType is given in Table 3.4.4.11.

Table 3.4.4.11 XSD description for the "RB.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This feature is a part of the HTML5 Ruby annotation. The rb tag marks the base text component of a ruby annotation. When it is the child of a ruby tag, it doesn't represent anything itself, but its parent ruby tag uses it as part of determining what it represents.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---RB.Type
Properties |
Abstract | false
Mixed | true
Used by |
Root Elements | rb
Model | ( qti:a{1..1} | qti:abbr{1..1} | qti:b{1..1} | qti:bdo{1..1} | qti:br{1..1} | qti:cite{1..1} | qti:code{1..1} | qti:dfn{1..1} | qti:em{1..1} | qti:i{1..1} | qti:img{1..1} | qti:kbd{1..1} | qti:object{1..1} | qti:q{1..1} | qti:samp{1..1} | qti:small{1..1} | qti:span{1..1} | qti:strong{1..1} | qti:sub{1..1} | qti:sup{1..1} | qti:var{1..1} | audio{1..1} | bdi{1..1} | label{1..1} | ruby{1..1} | video{1..1} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="RB.Type" abstract="false" mixed="true">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:sequence>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                    </xs:choice>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.12 RP.Type Root Complex Type Description

The XSD description for the "RP.Type" Root ComplexType is given in Table 3.4.4.12.

Table 3.4.4.12 XSD description for the "RP.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This feature is a part of the HTML5 Ruby annotation. The 'rp' tag is used to provide fallback text to be shown by user agents that don't support ruby annotations. One widespread convention is to provide parentheses around the ruby text component of a ruby annotation. The contents of the rp tags are typically not displayed by user agents which do support ruby annotations. An rp tag that is a child of a ruby tag represents nothing. An rp element whose parent tag is not a ruby tag represents its children.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---RP.Type
Properties |
Abstract | false
Mixed | true
Used by |
Root Elements | rp
Model | ( qti:a{1..1} | qti:abbr{1..1} | qti:b{1..1} | qti:bdo{1..1} | qti:br{1..1} | qti:cite{1..1} | qti:code{1..1} | qti:dfn{1..1} | qti:em{1..1} | qti:i{1..1} | qti:img{1..1} | qti:kbd{1..1} | qti:object{1..1} | qti:q{1..1} | qti:samp{1..1} | qti:small{1..1} | qti:span{1..1} | qti:strong{1..1} | qti:sub{1..1} | qti:sup{1..1} | qti:var{1..1} | audio{1..1} | bdi{1..1} | label{1..1} | ruby{1..1} | video{1..1} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="RP.Type" abstract="false" mixed="true">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:sequence>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                    </xs:choice>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.13 RT.Type Root Complex Type Description

The XSD description for the "RT.Type" Root ComplexType is given in Table 3.4.4.13.

Table 3.4.4.13 XSD description for the "RT.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This feature is a part of the HTML5 Ruby annotation. The 'rt' tag marks the ruby text component of a ruby annotation. When it is the child of a ruby tag or of an rtc tag that is itself the child of a ruby tag, it doesn't represent anything itself, but its ancestor ruby tag uses it as part of determining what it represents.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---RT.Type
Properties |
Abstract | false
Mixed | true
Used by |
Root Elements | rt
Model | ( qti:a{1..1} | qti:abbr{1..1} | qti:b{1..1} | qti:bdo{1..1} | qti:br{1..1} | qti:cite{1..1} | qti:code{1..1} | qti:dfn{1..1} | qti:em{1..1} | qti:i{1..1} | qti:img{1..1} | qti:kbd{1..1} | qti:object{1..1} | qti:q{1..1} | qti:samp{1..1} | qti:small{1..1} | qti:span{1..1} | qti:strong{1..1} | qti:sub{1..1} | qti:sup{1..1} | qti:var{1..1} | audio{1..1} | bdi{1..1} | label{1..1} | ruby{1..1} | video{1..1} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="RT.Type" abstract="false" mixed="true">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:sequence>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                    </xs:choice>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.14 RTC.Type Root Complex Type Description

The XSD description for the "RTC.Type" Root ComplexType is given in Table 3.4.4.14.

Table 3.4.4.14 XSD description for the "RTC.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This feature is a part of the HTML5 Ruby annotation. The 'rtc' tag marks a ruby text container for ruby text components in a ruby annotation. When it is the child of a ruby tag it doesn't represent anything itself, but its parent ruby tag uses it as part of determining what it represents. An rtc tag that is not a child of a ruby tag represents the same thing as its children.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---RTC.Type
Properties |
Abstract | false
Mixed | true
Used by |
Root Elements | rtc
Model | ( qti:a{1..1} | qti:abbr{1..1} | qti:b{1..1} | qti:bdo{1..1} | qti:br{1..1} | qti:cite{1..1} | qti:code{1..1} | qti:dfn{1..1} | qti:em{1..1} | qti:i{1..1} | qti:img{1..1} | qti:kbd{1..1} | qti:object{1..1} | qti:q{1..1} | qti:samp{1..1} | qti:small{1..1} | qti:span{1..1} | qti:strong{1..1} | qti:sub{1..1} | qti:sup{1..1} | qti:var{1..1} | audio{1..1} | bdi{1..1} | label{1..1} | ruby{1..1} | video{1..1} ){0..*} | rt{0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="RTC.Type" abstract="false" mixed="true">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:choice>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                    </xs:choice>
                    <xs:element ref="rt" minOccurs="0" maxOccurs="unbounded" />
                </xs:choice>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.15 Ruby.Type Root Complex Type Description

The XSD description for the "Ruby.Type" Root ComplexType is given in Table 3.4.4.15.

Table 3.4.4.15 XSD description for the "Ruby.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This feature is a part of the HTML5 Ruby annotation. The ruby tag allows one or more spans of phrasing content to be marked with ruby annotations. Ruby annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations. In Japanese, this form of typography is also known as furigana. Ruby text can appear on either side, and sometimes both sides, of the base text, and it is possible to control its position using CSS.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---Ruby.Type
Properties |
Abstract | false
Mixed | true
Used by |
Root Elements | ruby
Model | ( ( ( qti:a{1..1} | qti:abbr{1..1} | qti:b{1..1} | qti:bdo{1..1} | qti:br{1..1} | qti:cite{1..1} | qti:code{1..1} | qti:dfn{1..1} | qti:em{1..1} | qti:i{1..1} | qti:img{1..1} | qti:kbd{1..1} | qti:object{1..1} | qti:q{1..1} | qti:samp{1..1} | qti:small{1..1} | qti:span{1..1} | qti:strong{1..1} | qti:sub{1..1} | qti:sup{1..1} | qti:var{1..1} | audio{1..1} | bdi{1..1} | label{1..1} | ruby{1..1} | video{1..1} ){0..*} | rb{0..*} ){1..1} | ( rp{0..1} | ( rt{1..1} | rtc{1..1} ){1..1} ){1..1} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="Ruby.Type" abstract="false" mixed="true">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:sequence>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:choice minOccurs="1" maxOccurs="1">
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                            <xs:element ref="rb" minOccurs="0" maxOccurs="unbounded" />
                        </xs:choice>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="rp" minOccurs="0" maxOccurs="1" />
                            <xs:choice minOccurs="1" maxOccurs="1">
                                <xs:element ref="rt" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="rtc" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                        </xs:choice>
                    </xs:choice>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.16 Section.Type Root Complex Type Description

The XSD description for the "Section.Type" Root ComplexType is given in Table 3.4.4.16.

Table 3.4.4.16 XSD description for the "Section.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This defines the permitted content for the HTML5 'section' tag. The section tag represents a generic section of a document or application. A section, in this context, is a thematic grouping of content. The theme of each section should be identified, typically by including a heading (h1-h6 tag) as a child of the section tag.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---Section.Type
Properties |
Abstract | false
Mixed | true
Used by |
Root Elements | section
Model | ( m2:math{1..1} | m3:math{1..1} | xi:include{1..1} | ( qti:img{1..1} | qti:br{1..1} | qti:object{1..1} | qti:em{1..1} | qti:a{1..1} | qti:code{1..1} | qti:span{1..1} | qti:sub{1..1} | qti:acronym{1..1} | qti:big{1..1} | qti:tt{1..1} | qti:kbd{1..1} | qti:q{1..1} | qti:i{1..1} | qti:dfn{1..1} | qti:abbr{1..1} | qti:strong{1..1} | qti:sup{1..1} | qti:var{1..1} | qti:small{1..1} | qti:samp{1..1} | qti:b{1..1} | qti:cite{1..1} | qti:bdo{1..1} | bdi{1..1} | figure{1..1} | audio{1..1} | video{1..1} | label{1..1} | article{1..1} | aside{1..1} | footer{1..1} | header{1..1} | nav{1..1} | section{1..1} | qti:pre{1..1} | qti:h1{1..1} | qti:h2{1..1} | qti:h3{1..1} | qti:h4{1..1} | qti:h5{1..1} | qti:h6{1..1} | qti:p{1..1} | qti:address{1..1} | qti:dl{1..1} | qti:ol{1..1} | qti:ul{1..1} | qti:hr{1..1} | ( ssml11:p{1..1} | ssml11:s{1..1} | ssml11:say-as{1..1} | ssml11:phoneme{1..1} | ssml11:sub{1..1} | ssml11:voice{1..1} | ssml11:emphasis{1..1} | ssml11:break{1..1} | ssml11:prosody{1..1} | ssml11:mark{1..1} | ssml11:audio{1..1} | ssml11:speak{1..1} ){0..*} | ruby{1..1} ){0..*} ){0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="Section.Type" abstract="false" mixed="true">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:sequence>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                        <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                            <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                    </xs:choice>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.17 Source.Type Root Complex Type Description

The XSD description for the "Source.Type" Root ComplexType is given in Table 3.4.4.17.

Table 3.4.4.17 XSD description for the "Source.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | The 'source' tag is an HTML5 feature. The source tag allows authors to specify multiple alternative media resources for media tags. It does not represent anything on its own.
Diagram |
Type Hierarchy | BaseHTML5Empty.Type ^---Source.Type
Properties |
Abstract | false
Mixed | false
Used by |
Root Elements | source
Model | Empty
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
src | URL.Type | No | Global | Required | -
type | MimeType.Type | No | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="Source.Type" abstract="false" mixed="false">
        <xs:complexContent>
            <xs:extension base="BaseHTML5Empty.Type">
                <xs:attributeGroup ref="src.Source.Attr" />
                <xs:attributeGroup ref="type.Source.Attr" />
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.18 Track.Type Root Complex Type Description

The XSD description for the "Track.Type" Root ComplexType is given in Table 3.4.4.18.

Table 3.4.4.18 XSD description for the "Track.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | The 'track' tag is an HTML5 feature. The track tag allows authors to specify explicit external timed text tracks for media elements. It does not represent anything on its own.
Diagram |
Type Hierarchy | BaseHTML5Empty.Type ^---Track.Type
Properties |
Abstract | false
Mixed | false
Used by |
Root Elements | track
Model | Empty
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
kind | [ Enumeration ] | No | Global | Optional | subtitles
src | URL.Type | No | Global | Required | -
srclang | xs:normalizedString | No | Global | Optional | -
default | xs:boolean | No | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="Track.Type" abstract="false" mixed="false">
        <xs:complexContent>
            <xs:extension base="BaseHTML5Empty.Type">
                <xs:attributeGroup ref="kind.Track.Attr" />
                <xs:attributeGroup ref="src.Track.Attr" />
                <xs:attributeGroup ref="srclang.Track.Attr" />
                <xs:attributeGroup ref="default.Track.Attr" />
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

#### 3.4.4.19 Video.Type Root Complex Type Description

The XSD description for the "Video.Type" Root ComplexType is given in Table 3.4.4.19.

Table 3.4.4.19 XSD description for the "Video.Type" Root Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | The 'video' tag is an HTML5 feature. A video tag is used for playing videos or movies, and audio files with captions.
Diagram |
Type Hierarchy | BaseHTML5.Type ^---Video.Type
Properties |
Abstract | false
Mixed | false
Used by |
Root Elements | video
Model | source{0..*}, track{0..*}
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | Yes | Global | Optional | -
xml:lang | [ Import ] | Yes | Global | Optional | -
title | xs:normalizedString | Yes | Global | Optional | -
label | xs:normalizedString | Yes | Global | Optional | -
class | List of StringList.Type | Yes | Global | Optional | -
dir | [ Enumeration ] | Yes | Global | Optional | auto
role | [ Enumeration ] | Yes | Global | Optional | -
aria-controls | xs:IDREFS | Yes | Global | Optional | -
aria-describedby | xs:IDREFS | Yes | Global | Optional | -
aria-flowto | xs:IDREFS | Yes | Global | Optional | -
aria-label | xs:normalizedString | Yes | Global | Optional | -
aria-labelledby | xs:IDREFS | Yes | Global | Optional | -
aria-level | AriaLevelInteger.Type | Yes | Global | Optional | -
aria-live | [ Enumeration ] | Yes | Global | Optional | off
aria-orientation | [ Enumeration ] | Yes | Global | Optional | horizontal
aria-owns | xs:IDREFS | Yes | Global | Optional | -
##any | [ Constrained Namespace Extension ] | Yes | Global | Optional | -
src | URL.Type | No | Global | Optional | -
crossorigin | [ Enumeration ] | No | Global | Optional | -
preload | [ Enumeration ] | No | Global | Optional | metadata
autoplay | xs:boolean | No | Global | Optional | -
mediagroup | xs:normalizedString | No | Global | Optional | -
loop | xs:boolean | No | Global | Optional | -
muted | xs:boolean | No | Global | Optional | -
controls | xs:boolean | No | Global | Optional | -
poster | URL.Type | No | Global | Optional | -
width | xs:nonNegativeInteger | No | Global | Optional | -
height | xs:nonNegativeInteger | No | Global | Optional | -
Schematron Rules |
NS Constraint | (data-)[a-z|A-Z|0-9|-|.|_]+
Source |
    <xs:complexType name="Video.Type" abstract="false" mixed="false">
        <xs:complexContent>
            <xs:extension base="BaseHTML5.Type">
                <xs:sequence>
                    <xs:element ref="source" minOccurs="0" maxOccurs="unbounded" />
                    <xs:element ref="track" minOccurs="0" maxOccurs="unbounded" />
                </xs:sequence>
                <xs:attributeGroup ref="src.Video.Attr" />
                <xs:attributeGroup ref="crossorigin.Video.Attr" />
                <xs:attributeGroup ref="preload.Video.Attr" />
                <xs:attributeGroup ref="autoplay.Video.Attr" />
                <xs:attributeGroup ref="mediagroup.Video.Attr" />
                <xs:attributeGroup ref="loop.Video.Attr" />
                <xs:attributeGroup ref="muted.Video.Attr" />
                <xs:attributeGroup ref="controls.Video.Attr" />
                <xs:attributeGroup ref="poster.Video.Attr" />
                <xs:attributeGroup ref="width.Video.Attr" />
                <xs:attributeGroup ref="height.Video.Attr" />
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

### 3.4.5 Core Complex Type Descriptions

The syntax and semantics for the Core ComplexType XSD representations is described in Appendix B1.7.

#### 3.4.5.1 "BaseHTML5.Type" Core Complex Type Description

The XSD description for the "BaseHTML5.Type" Core ComplexType is given in Table 3.4.5.1.

Table 3.4.5.1 XSD description for the "BaseHTML5.Type" Core Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This is the base class for the HTML5 features that have children. This consists of a set of children characteristics.
Diagram |
Properties |
Abstract | false
Mixed | false
Used by |
ComplexTypes | Article.Type, Aside.Type, Audio.Type, BDI.Type, FigCaption.Type, Figure.Type, Footer.Type, Header.Type, Label.Type, Nav.Type, RB.Type, RP.Type, RT.Type, RTC.Type, Ruby.Type, Section.Type, Video.Type
Model | None
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | No | Global | Optional | -
xml:lang | [ Import ] | No | Global | Optional | -
title | xs:normalizedString | No | Global | Optional | -
label | xs:normalizedString | No | Global | Optional | -
class | List of StringList.Type | No | Global | Optional | -
dir | [ Enumeration ] | No | Global | Optional | auto
role | [ Enumeration ] | No | Global | Optional | -
aria-controls | xs:IDREFS | No | Global | Optional | -
aria-describedby | xs:IDREFS | No | Global | Optional | -
aria-flowto | xs:IDREFS | No | Global | Optional | -
aria-label | xs:normalizedString | No | Global | Optional | -
aria-labelledby | xs:IDREFS | No | Global | Optional | -
aria-level | AriaLevelInteger.Type | No | Global | Optional | -
aria-live | [ Enumeration ] | No | Global | Optional | off
aria-orientation | [ Enumeration ] | No | Global | Optional | horizontal
aria-owns | xs:IDREFS | No | Global | Optional | -
##any | [ Constrained Namespace Extension ] | No | Global | Optional | -
Source |
    <xs:complexType name="BaseHTML5.Type" abstract="false" mixed="false">
        <xs:sequence>
        </xs:sequence>
        <xs:attributeGroup ref="id.BaseHTML5.Attr" />
        <xs:attributeGroup ref="language.BaseHTML5.Attr" />
        <xs:attributeGroup ref="title.BaseHTML5.Attr" />
        <xs:attributeGroup ref="label.BaseHTML5.Attr" />
        <xs:attributeGroup ref="class.BaseHTML5.Attr" />
        <xs:attributeGroup ref="dir.BaseHTML5.Attr" />
        <xs:attributeGroup ref="role.BaseHTML5.Attr" />
        <xs:attributeGroup ref="aria-controls.BaseHTML5.Attr" />
        <xs:attributeGroup ref="aria-describedby.BaseHTML5.Attr" />
        <xs:attributeGroup ref="aria-flowto.BaseHTML5.Attr" />
        <xs:attributeGroup ref="aria-label.BaseHTML5.Attr" />
        <xs:attributeGroup ref="aria-labelledby.BaseHTML5.Attr" />
        <xs:attributeGroup ref="aria-level.BaseHTML5.Attr" />
        <xs:attributeGroup ref="aria-live.BaseHTML5.Attr" />
        <xs:attributeGroup ref="aria-orientation.BaseHTML5.Attr" />
        <xs:attributeGroup ref="aria-owns.BaseHTML5.Attr" />
        <xs:attributeGroup ref="dataExtension.BaseHTML5.Attr" />
    </xs:complexType>

### 3.4.6 Derived Complex Type Descriptions

The syntax and semantics for the Derived ComplexType XSD representations is described in Appendix B1.7.

#### 3.4.6.1 "BaseHTML5Empty.Type" Derived Complex Type Description

The XSD description for the "BaseHTML5Empty.Type" Derived Complex Type is given in Table 3.4.6.1.

Table 3.4.6.1 XSD description for the "BaseHTML5Empty.Type" Derived Complex Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Annotations | This is the base class for the HTML5 features that have no children tags i.e. must be empty. This consists of a set of children characteristics.
Diagram |
Type Hierarchy | EmptyPrimitiveType.Type ^---BaseHTML5Empty.Type
Properties |
Abstract | false
Mixed | false
Used by |
ComplexTypes | Source.Type, Track.Type
Model | Empty
Attributes |
QName | Type | Inherited | Scope | Use | Default
--- | --- | --- | --- | --- | ---
id | UniqueIdentifier.Type | No | Global | Optional | -
xml:lang | [ Import ] | No | Global | Optional | -
title | xs:normalizedString | No | Global | Optional | -
label | xs:normalizedString | No | Global | Optional | -
class | List of StringList.Type | No | Global | Optional | -
dir | [ Enumeration ] | No | Global | Optional | auto
role | [ Enumeration ] | No | Global | Optional | -
aria-controls | xs:IDREFS | No | Global | Optional | -
aria-describedby | xs:IDREFS | No | Global | Optional | -
aria-flowto | xs:IDREFS | No | Global | Optional | -
aria-label | xs:normalizedString | No | Global | Optional | -
aria-labelledby | xs:IDREFS | No | Global | Optional | -
aria-level | AriaLevelInteger.Type | No | Global | Optional | -
aria-live | [ Enumeration ] | No | Global | Optional | off
aria-orientation | [ Enumeration ] | No | Global | Optional | horizontal
aria-owns | xs:IDREFS | No | Global | Optional | -
##any | [ Constrained Namespace Extension ] | No | Global | Optional | -
Source |
    <xs:complexType name="BaseHTML5Empty.Type" abstract="false" mixed="false">
        <xs:simpleType>
            <xs:extension base="EmptyPrimitiveType.Type">
                <xs:attributeGroup ref="id.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="language.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="title.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="label.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="class.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="dir.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="role.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="aria-controls.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="aria-describedby.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="aria-flowto.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="aria-label.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="aria-labelledby.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="aria-level.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="aria-live.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="aria-orientation.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="aria-owns.BaseHTML5Empty.Attr" />
                <xs:attributeGroup ref="dataExtension.BaseHTML5Empty.Attr" />
            </xs:extension>
        </xs:simpleType>
    </xs:complexType>

### 3.4.7 Simple Type Descriptions

The syntax and semantics for the SimpleType XSD representations is described in Appendix B1.8.

#### 3.4.7.1 "AriaLevelInteger.Type" Simple Type Description

The XSD description for the "AriaLevelInteger.Type" SimpleType is given in Table 3.4.7.1.

Table 3.4.7.1 XSD description for the "AriaLevelInteger.Type" Simple Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | xs:integer
Facets |
MinInclusive | 1
Used by |
Attributes | aria-level/BaseHTML5.Type, aria-level/BaseHTML5Empty.Type
Source |
    <xs:simpleType name="AriaLevelInteger.Type">
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="1" />
        </xs:restriction>
    </xs:simpleType>

#### 3.4.7.2 "MimeType.Type" Simple Type Description

The XSD description for the "MimeType.Type" SimpleType is given in Table 3.4.7.2.

Table 3.4.7.2 XSD description for the "MimeType.Type" Simple Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | xs:normalizedString
Facets |
Pattern | [\p{IsBasicLatin}-[()<>@,;:\\"/\[\]?=]]+/[\p{IsBasicLatin}-[()<>@,;:\\"/\[\]?=]]+
Used by |
Attributes | type/Source.Type
Source |
    <xs:simpleType name="MimeType.Type">
        <xs:restriction base="xs:normalizedString">
            <xs:pattern value="[\p{IsBasicLatin}-[()<>@,;:\\"/\[\]?=]]+/[\p{IsBasicLatin}-[()<>@,;:\\"/\[\]?=]]+" />
        </xs:restriction>
    </xs:simpleType>

#### 3.4.7.3 "StringList.Type" Simple Type Description

The XSD description for the "StringList.Type" SimpleType is given in Table 3.4.7.3.

Table 3.4.7.3 XSD description for the "StringList.Type" Simple Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | xs:string
Used by |
Attributes | class/BaseHTML5.Type, class/BaseHTML5Empty.Type
Source |
    <xs:simpleType name="StringList.Type">
        <xs:restriction base="xs:string />
    </xs:simpleType>

#### 3.4.7.4 "URL.Type" Simple Type Description

The XSD description for the "URL.Type" SimpleType is given in Table 3.4.7.4.

Table 3.4.7.4 XSD description for the "URL.Type" Simple Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | xs:normalizedString
Used by |
Attributes | src/Audio.Type, src/Source.Type, src/Track.Type, src/Video.Type, poster/Video.Type
Source |
    <xs:simpleType name="URL.Type">
        <xs:restriction base="xs:normalizedString" />
    </xs:simpleType>

#### 3.4.7.5 "UniqueIdentifier.Type" Simple Type Description

The XSD description for the "UniqueIdentifier.Type" SimpleType is given in Table 3.4.7.5.

Table 3.4.7.5 XSD description for the "UniqueIdentifier.Type" Simple Type.
Namespace | http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0
Diagram |
Type | xs:ID
Used by |
Attributes | id/BaseHTML5.Type, id/BaseHTML5Empty.Type
Source |
    <xs:simpleType name="UniqueIdentifier.Type">
        <xs:restriction base="xs:ID" />
    </xs:simpleType>

## 3.5. The Schematron Rules

### 3.5.1 Rules Imposing the Unordered Class Definition

This is the set of schematron rules used to enforce the constraints of the "Unordered" stereotypes classes.

#### 3.5.1.1 Figure Unordered Class Rules

Class Element | Multiplicity Constraint
--- | ---
figcaption | Multiplicity must be: [0..1]

#### 3.5.1.2 Ruby [Unordered] Class Rules

Class Element | Multiplicity Constraint
--- | ---
rp | Multiplicity must be: [0..1]
rt | Multiplicity must be: [1..1]
rtc | Multiplicity must be: [1..1]

### 3.5.2 The Constrained Namespace Extension Rule Definitions

This is the set of schematron rules used to enforce the constraints on the naming convention for extensions to the list of XML attributes for an element.

Element Name | Scope | Naming Convention Constraint
--- | --- | ---
article | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
aside | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
audio | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
bdi | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
figcaption | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
figure | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
footer | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
header | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
label | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
nav | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
rb | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
rp | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
rt | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
rtc | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
ruby | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
section | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
source | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
track | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+
video | Root Element | (data-)[a-z|A-Z|0-9|-|.|_]+

### 3.5.3 The Explicit Rule Definitions

This is the set of schematron rules used to enforce the features of the Information Model that are otherwise not enforced in the XSD.

#### 3.5.3.1 RULE_SET_GENERAL

Objective of the Rule Set is to: "Ensure the figcaption element positioning within the figure element."

RULE GENERAL 1 | Context ("//qh5:figure")
--- | ---
Assertion 1 | Test: "qh5:figcaption[position()=1 or position()=last()]" Statement: "The figcaption must be either the first or last element in the contained sequence."

toc | top

# 4. Extending and Profiling the Data Model

## 4.1. Extending the Data Model

The QTI HTML5 specification permits extension only as an XML attribute on each HTML5 element. Every HTML5 element may have any number of custom data attributes specified, with any value. However, the attribute name must start with the characters 'data-' (this is checked using Schematron rules embedded in the QTI HTML5 XSD). Any other proprietary extension is non-conformant. The behavior of a system that receives a QTI ASI/HTML5 instance that contains proprietary extensions is undefined (however a system should handle such violations in a controlled manner).

## 4.2. Profiling the Data Model

This specification may be profiled. A profile must be formal subset of the base specification. This ensures that, with the exception of namespace/schema location changes, any instance which is compliant to the profile MUST also be compliant to the base specification. This means that a profile must only increase the constraints on the properties of the data model. For example, an element with a multiplicity of [0..1] can have this changed to [1..1] but NOT [0..*]. Proprietary extensions are ONLY permitted as defined by the base specification.

It is strongly recommended that a profile of this specification is undertaken either by, or with the close support, of IMS Global. However, no matter who is responsible for creating the profile artefacts (documents, XSDs, etc.), it is strongly recommended that the IMS specification development tools are used. This will ensure that the artefacts are consistent with the base specifications and that useful support documentation is automatically produced e.g. creation of a document that summarises the differences between the base specification and the profile. Organizations wishing to produce a profile of this specification should contact Lisa Mattson (IMS Global Chief Operations Officer) at: lmattson@imsglobal.org.

toc | top

# Appendix A Modelling Concepts and Terms

## A1 Data Model Descriptions

### A1.1 Data Model Diagrams

Table A1.1 provides the key to the descriptions of data model diagrams.

Table A1.1 The key to the descriptions of data model diagrams.
Feature | Definition and Usage
--- | ---
Data Model Package | Each data model description is enclosed in a UML Package that has the stereotype of « dataModel » under which is the name of the data model diagram being described. Only one logical data model can be described.
DerivedType Class | This is a class that is identified by the stereotype « DerivedType » under which is the name of the data-type. A derived class is one that is derived either from another derived class or a PrimitiveType class.
Enumeration Class | This is a class that is identified by the stereotype « Enumeration » under which is the name of the enumeration data-type. The enumeration class consists of the list of tokens that are the permitted values of the assigned attribute.
Enumerated List Class | This is a class that is identified by the stereotype « EnumeratedList » under which is the name of the enumerated list data-type. The enumeration list class consists of the list of tokens that are the permitted values of the assigned attribute. A list of tokens is permitted using comma separation.
PrimitiveType Class | This is a class that is identified by the stereotype « PrimitveType » under which is the name of the primitive data-type. A PrimitiveType is one of the many base data-types on which a data model can be built (see Appendix A1.3 for the set of primitive types that are available).
Selection Class | This is a class that is identified by the stereotype « Selection » under which is the name of the data-type. The selection means that only one of the listed attributes make occur in an instance. If this is an abstract class then multiple iterations of the instance may occur and the multiplicity of the attribute defines the constraints on the number of times the attribute can occur in the full instance. If the stereotype and associated name of the class are in italics this denotes the class is abstract.
Sequence Class | This is a class that is identified by the stereotype « Sequence » under which is the name of the data-type. The sequence means that the listed attributes must occur only in the order of the attributes listed on the class. The associated multiplicity defines the number of times the attribute may occur consecutively in the instance. If the stereotype and associated name of the class are in italics this denotes the class is abstract.
Unordered Class | This is a class that is identified by the stereotype « Unordered » under which is the name of the data-type. The unordering means that the listed attributes may occur in any order but the associated multiplicity for the attribute must be followed (when binding to XML this requires the use of Schematron rules to enforce the multiplicity). If the stereotype and associated name of the class are in italics this denotes the class is abstract.
List Class | This is a class that is identified by the stereotype « List » under which is the name of the data-type. A list class is one in which the associated instance will consist of a list of objects that conform to the permitted data-types of the list (the superclasses for the list class). The terms in the list are separated by a space.
Union Class | This is a class that is identified by the stereotype « Union » under which is the name of the data-type. A union class is one in which the associated instance will consist of a objects that conform to the any of the permitted data-types of the union (the superclasses for the union class).
Characteristic Description | Many classes contain a set of characteristics (the set of characteristics are listed under the stereotype « Characteristics »). Each characteristic description consists of the scope, name, data-type and multiplicity (see Appendix A1.3 for a more complete description). Note that when bound to XSD/XML, a characteristic is mapped to an XML attribute.
Attribute Description | Many classes contain a set of attributes (the set of attributes are listed under the stereotype « Attributes »). Each attribute description consists of the scope, name, data-type and multiplicity (see Appendix A1.3 for a more complete description). Note when bound to XSD/XML, an attribute is mapped to an XML element.
Composition Arrow | This is an arrow with a filled diamond head to indicate that the child class is a composite structure of the parent class i.e. the child class only exists within the context of the parent class. This association allows complex structures to be constructed with common subcomponents.
Generalization Arrow | This is an arrow with a white arrow head to indicate the class/superclass relationship. The arrow points in the direction of generality i.e. from the class to the super class.

toc | top

### A1.2 Class Descriptions

Table A1.2 provides the key to the descriptions of the data class tables.

Table A1.2 The key to the descriptions of the data class tables.
Category | Definition
--- | ---
Class Name | The name given to the class being described.
Class Type | The nature of the class. This is described as a "Container [...]" or "Abstract Container [...]". The value of "..." being (see Appendix A1.1 for the meaning of these values): "DerivedType" "List" "Selection" "Sequence" "Union" "Unordered" If the container is also marked as "Mixed" then the children are permitted to include text as well as attributes.
Parents | This is the list of classes that contain the class being described as either the type of a child characteristic or attribute. In the case of a Root Class the entry is also labelled as "Root Class".
Derived Classes | The set of classes that are derived from this class (there may be none). The entries are linked to the corresponding class descriptions.
Super Classes | The set of super classes from which the class being described is derived (there may be none). The entries are linked to the corresponding class descriptions.
Characteristics | Lists the set of characteristics for this class. The list of characteristics includes those that are inherited. Each characteristic is linked to the corresponding characteristic description table.
Children | Lists the set of attributes for this class (the only other permitted associations are generalizations). The list of children includes those attributes that are inherited. Each child entry is linked to the corresponding attribute description table. The nature of the relationship between the children is defined by the stereotype of the parent class i.e. the class type. If the child is in italics this denotes a reference to an abstract class and that an instance would NOT contain a child of that name but would be replaced by a complex set of children as defined by the associated abstract class.
Description | Contains descriptions relating to the class and its properties and relationships.

toc | top

### A1.3 Attribute and Characteristic Descriptions

Table A1.3 provides the key to the descriptions of the data attributes/characteristics for the data classes.

Table A1.3 The key to the descriptions of the data attribute/characteristic tables.
Category | Definition
--- | ---
Attribute Name or Characteristic Name | The name given to the attribute or characteristic being described. If the name is in italics this denotes an abstract attribute or characteristic.
Data Type | This is the data-type of the attribute or characteristic (if this is in italics it denotes an abstract class). The data-type can take many forms: Class Name - the name of the Class (this is linked to the class definition elsewhere in this document); Primitive Data-types from:- AnyTypeLax - the namespace data-type i.e. defining data from any context (this is used for allowing any form of extension); AnyURI - the AnyURI data-type (absolute or relatve URI); Base - the base data-type for defining a base URI/URL link reference; Boolean - the boolean data-type (with permitted values of "true" and "false"); Date - the date data-type (using the ISO 8601 format); DateTime - the date/time data-type (using the ISO 8601 format); Double - the double data-type (double precision floating point number - 64bit); Empty - the associated instance must be empty; ID - the unique identifier data-type; IDREF - the reference to a previously defined unique identifier data-type (ID); IDREFS - a list, whitespace separated, of references to a previously defined unique identifier data-type (ID); Int - the int data-type (this is derived from the "decimal" data-type); Integer - the integer data-type (using the); Language - the language data-type as defined in [RFC 3066]; Namespace - the namespace data-type i.e. defining data from a context other than that as the default for the data model (this is used for importing other data models); NamespaceLax - the namespace data-type i.e. defining data from a context other than that as the default for the data model (this is used for importing other data models but being lax on the validation); NonNegativeInteger - the non-negative integer data-type (this is derived from the "integer" data-type) i.e. an integer that is zero or higher; NCName - the NCName data-type (derived from the Name data-type); NormalizedString - the normalized string data type (strings with line feeds, carriage returns and tab characters removed); String - the normalized string data type.
Value Space | The range of valid values for this attribute/characteristic (including any default value). If the value space is unspecified, it is not known or is not important. This value space must be defined in terms of the associated data-type.
Scope | This is the scope of the attribute/characteristic with permitted values of: Local - denoted by "-" and meaning the attribute/characteristic has significance and access within the context of the parent class only; Global - denoted by "+" and meaning that the attribute/characteristic has global scoping (so must have a unique name) and can be accessed from anywhere.
Multiplicity | A property of an attribute/characteristic indicating the number of times it may be used or appear in a given class instance. The values of this property are expressed as a range or shorthand for a range using the notation: "0..1" [optional; restricted] "0..*" [optional; unrestricted] "1" [mandatory; restricted] "1..*" [mandatory; unrestricted]
Description | Contains descriptions relating to the attribute/characteristic and its values space.

toc | top

### A1.4 Enumerated Vocabulary Descriptions

Table A1.4 provides the key to the descriptions of the enumerated vocabulary classes. These are vocabularies that will be contained within the binding form itself

Table A1.4 The key to the descriptions of the enumerated vocabulary tables.
Category | Definition
--- | ---
Term | The vocabulary token itself i.e. the vocabulary entry.
Definition | The meaning of the term and how it should be used.

toc | top

### A1.5 External Vocabulary Descriptions

Table A1.5 provides the key to the descriptions of the external vocabulary classes. These are vocabularies that will be contained in some independent format e.g. using the IMS VDEX.

Table A1.5 The key to the descriptions of the external vocabulary tables.
Category | Definition
--- | ---
Term | The vocabulary token itself i.e. the vocabulary entry.
Definition | The meaning of the term and how it should be used. This consists of the "Caption" and "Description" of the vocabulary term. The caption is used to provide a human readable label for the term.

toc | top

### A1.6 Import Class Descriptions

Table A1.6 provides the key to the descriptions of the import classes.

Table A1.6 The key to the descriptions of the imported class tables.
Category | Definition
--- | ---
Import Class Name | The name of the class.
Parent Classes | The list of parent classes, and the associated children, that use this imported class. Each class and attribute name has a link to its corresponding tabular description in the information model.
Description | The description of how the class is used within the data model.

toc | top

# Appendix B XSD Binding Terms

## B1 XSD Binding Description Terms

### B1.1 UML/XSD Attribute Mapping Table Definition

Table B1.1 provides the key to the descriptions of UML to XSD attribute mapping tables.

Table B1.1 The key to the descriptions of UML to XSD attribute mapping tables.
Feature | Definition and Usage
--- | ---
Attribute Name | The name of the attribute (these are the attributes listed in the class identified by the « Roots » stereotype).
UML Class | The name of the class, the type of the attribute, in the UML diagrams (each class will have an associated stereotype label to denote its modelling interpretation). If the information model description is contained within the same document, this value is hot-linked to that description.
XSD Name | The equivalent name of the UML attribute name in the XSD i.e. the XML element name.
XSD Type | The XSD type - this will always be "Element".
XSD Data Type | The data-type in the context of the XSD. This is hot-linked to the corresponding description table in the binding.

toc | top

### B1.2 UML/XSD Class Mapping Table Definition

Table B1.2 provides the key to the descriptions of UML to XSD class mapping tables. This table shows the relationship between the two modelling components:

- Information model aspects - the name/type/multiplicity of the artefact in the information model
- Binding aspects - the corresponding name/type in the XSD binding

Table B1.2 The key to the descriptions of UML to XSD class mapping tables.
Feature | Definition and Usage
--- | ---
Name | The name of the UML class and the associated set of attributes and characteristics. The first row is used to describe the UML class. Camel-case is used for the attribute and characteristic names.
UML Artefact | The UML Class will be denoted as "Root", "Core" or "Derived" depending on the nature of the class. The list of attributes (mapped to XML elements) and characteristics (mapped to XML attributes) will be identified as either "Attributes" or "Characteristics".
Data Type | The data-type has several permitted values: PT:... - denotes a primitive type with "..." replaced by the actual primitiveType name DT:... (PT:...) - denotes a derived type of name "..." derived from the primitive type "PT:..." [Enumeration(...)] - denotes an enumeration of name "..." [List(...)] - denotes a list of the name "..." [Union(...)] - denotes a union of one or more data-types with the name "..." [Imported(...)] - denotes a class with the name "..." has been imported from another specification "Container[...]" - denotes a class of stereotype "..."
Multiplicity | The multiplicity of the child attribute/characteristic. The value for the Class itself is "-N/A-". The multiplicity values are: "0..1" [optional; restricted] "0..*" [optional; unrestricted] "1" [mandatory; restricted] "1..*" [mandatory; unrestricted] The multiplicity will also indicate when groups of elements have variable multiplicity. In the case when a selection between groups of elements is used then this is denoted by "XOR" being displayed above the multiplicity for each of the grouped elements. Alongside the XOR is the multiplicity of the group as a whole.
XSD Name | This is the equivalent name of the UML artefact in the XSD. In the case of a "Derived" class the UML attribute may be used to define constraints on the primitiveType and so may not have visibility in an instance. In this case the name entry will be "[ No XML instance visibility ]".
XSD Type | The XSD data-type. For the Class this will have either the value "ComplexType" or "SimpleType" or the statement "There is no equivalent derived complexType. This is a logical class that is used to identify a namespace constraint.". For the attributes the value is either "Element (Global)" or "Element (Local)" depending on the scoping. For the characteristics the value is either "Attribute (Global)" or "Attribute (Local)" depending on the scoping. In the case of a "Derived" class the UML attribute may be used to define constraints on the primitiveType and so may not have visibility in an instance. In this case the type entry will denote the type of restriction i.e. MinLength, MaxLength, WhiteSpace, MinInclusive, MaxInclusive and Pattern.

toc | top

### B1.3 UML/XSD Enumerated and Enumerated List Class Mapping Table Definition

Table B1.3 provides the key to the descriptions of UML to XSD enumerated and enumerated list class mapping tables.

Table B1.3 The key to the descriptions of UML to XSD enumerated and enumerated list class mapping tables.
Feature | Definition and Usage
--- | ---
Enumeration Class Name or Enumeration List Class Name | The name of the enumeration class or the enumeration list class.
Description | The list of permitted tokens for the enumeration or list. Each value is separated by the "|" character.

toc | top

### B1.4 UML/XSD List and Union Class Mapping Table Definition

Table B1.4 provides the key to the descriptions of UML to XSD list and union class mapping tables.

Table B1.4 The key to the descriptions of UML to XSD list and union class mapping tables.
Feature | Definition and Usage
--- | ---
List/Union Class Name | The name of the list or union class.
Description | The list of primitive types and simple derived types from which the list of values can be derived. Links to the definition of the description of the primitive and derived types provided elsewhere in the UML/XSD mapping are supplied.

toc | top

### B1.5 UML/XSD Primitive Types Mapping Table Definition

Table B1.5 provides the key to the descriptions of UML to XSD primitive-type mapping tables.

Table B1.5 The key to the descriptions of UML to XSD primitive mapping tables.
Feature | Definition and Usage
--- | ---
Primitive Type Name | The name of the primitve type used in the specification. Links to the definition of the primitive types, if provided elsewhere in the document, are supplied.
Description | The equivalent XML base data type that is used in the XSD binding.

toc | top

### B1.6 XSD Description for an Element

Table B1.6 provides the key to the descriptions of XSD element tables.

Table B1.6 The key to the descriptions of XSD element tables.
Feature | Definition and Usage
--- | ---
Namespace | The namespace for the XSD element.
Diagram | This diagram consists of three types of linked blocks. Straight link lines denote XML sequence whereas diagonal lines denote XML selection/unordered. The block forms are: Element Blocks - blue and grey shaded rounded rectangles containing the name of the element, its data-type, any default value and the multiplicity (denoted by a circle containing either the symbol "?", "1", "*", "+" or "U" representing optional, required, optionally many, at least one or unordered respectively. Unordered makes use of an associated set of Schematron Rules). If the element inherits features from another class then it contains a purple shadow that names the complexType from which the elements/attributes are inherited; Attribute Blocks - orange and grey shaded rounded rectangles containing the name of the attribute, its data-type, any default value and the multiplicity (denoted by a circle containing either the symbol "?" or "1" representing option or required respectively); Attribute Group Blocks - orange shaded rounded rectangle containing the name of the attribute group; Purple Surrounds - a surround on the attributes block denotes inherited attributes and a surround on the element block denotes inherited elements.
Type | The data-type for the element. This will possible entries are: The name of the primitiveType data-type Statement of an enumeration The import class name written as [Import (...)] The actual data-type with a link to the corresponding declaration.
Type Hierachy | The identification of the superclass upon which this type is based (the superclass is shown on the top line). This indicates the source of the inherited set of XML elements and attributes for the element.
Properties | The set of properties for the element including (these will not be shown for Global elements): Content - the type of content i.e "simple" or "complex" Mixed - whether or not the content is a mixture of content/element {true, false} MinOccurs - the minimum number of occurences MaxOccurs - the maximum number of occurences
Used by | The features in the XSD that make use of this global or root element. These features are listed under the heading "ComplexTypes". Each of the entries is linked to its formal description table.
Facets | The permitted set of facets for the content i.e. the ways in which the content is further constrained. This row is only present if there are associated facets. The set of permitted facets are: Enumeration - a permitted value MinLength - the required minimum number of characters MaxLength - the maximum number of characters WhiteSpace - default handling of white-space i.e. preserve or replace or collapse MinInclusive - the permitted minimum value (inclusive) MaxInclusive - the permitted maximum value (inclusive) Pattern - the permitted character set defined as a regular expression
Model | The set of child elements. This is an ordered list of elements (as per the sequence in the data-type complexType) and accompanied by their multiplicity. Links to the corresponding declarations are supplied. In the case where the type is an enumeration or primitiveType then the value is "N/A". The value may also be "Empty" to indicate that no children are permitted. If the element is imported i.e. from an external XSD, only the URL for that XSD will be given.
Attributes | The set of global and local XML attributes for this complexType (if the element is imported i.e. from an external XSD, only the URL for that XSD will be given). Links are made to the associated tabular definitions. Each attribute is described by: QName - the name with a link to the corresponding table description Type - the data-type Inherited - Yes/No statement of whether or not this attribute is inherited from a base complexType Scope - the scope defined as either "Local" or "Global" Use - the multiplicity as either "Required" or "Optional" Default - the default value or a "-" if there is none
Schematron Rules | The set of schematron rules to be applied for the element grouped as: Unordered Class - the Schematron Rules that enforce the "Unordered" stereotype; NS Constraint - the Schematron Rules that enforce the constraints on extension XML attributes; Explicit Rules - the Schematron Rules that enforce the explicitly defined constraints for the information model.
Source | The equivalent XSD code for the declaration of the element. This includes the multiplicity and default values for the element. See the W3C XSD documentation for the description of the permitted contents for this declaration. If the element is imported i.e. from an external XSD, only the URL for that XSD will be given.

toc | top

### B1.7 XSD Description for a Complex Type

Table B1.7 provides the key to the descriptions of XSD complex type tables.

Table B1.7 The key to the descriptions of XSD complex type tables.
Feature | Definition and Usage
--- | ---
Namespace | The namespace for the XSD complexType.
Annotations | The documentation comment for the data-type (the comment within the XSD).
Diagram | This diagram consists of four types of linked blocks. Straight link lines denote XML sequence whereas diagonal lines denote XML selection/unordered. The block forms are: ComplexType Block - a purple and grey shaded rectangle containing the name of the complexType and identification of whether it is abstract and supports mixed content; Element Blocks - blue and grey shaded rounded rectangles containing the name of the element, its data-type, any default value and the multiplicity (denoted by a circle containing either the symbol "?", "1", "*", "+" or "U" representing optional, required, optionally many, at least one or unordered respectively. Unordered makes use of an associated set of Schematron Rules); Attribute Blocks - orange and grey shaded rounded rectangles containing the name of the attribute, its data-type, any default value and the multiplicity (denoted by a circle containing either the symbol "?" or "1" representing option or required respectively); Attribute Group Blocks - orange shaded rounded rectangle containing the name of the attribute group; Purple Surrounds - a surround on the attributes block denotes inherited attributes and a surround on the element block denotes inherited elements.
Properties | The properties of the class expressed in terms of whether or not the complexType is abstract {true, false} or whether it supports mixed content {true, false}.
Facets | The permitted set of facets for the content i.e. the ways in which the content is further constrained. This row is only present if there are associated facets. The set of permitted facets are: Enumeration - a permitted value MinLength - the required minimum number of characters MaxLength - the maximum number of characters WhiteSpace - default handling of white-space i.e. preserve or replace or collapse MinInclusive - the permitted minimum value (inclusive) MaxInclusive - the permitted maximum value (inclusive) Pattern - the permitted character set defined as a regular expression
Used by | The features in the XSD that make use of this complexType. These features are listed under the headings "Root Elements", "Elements" and "ComplexTypes". Each of the entries is linked to its formal description table.
Model | The set of child elements. This is an ordered list of elements (as per the sequence in the complexType) and accompanied by their multiplicity. Links to the corresponding declarations are supplied. In the case where the type is an enumeration or primitiveType then the value is "N/A". The value may also be "Empty" to indicate that no children are permitted. In some situations the value may be "None" denoting that there are no children defined e.g. for a base class from which other classes are derived and which may have children as part of the extension.
Attributes | The set of global and local XML attributes for this complexType. Links are made to the associated tabular definitions. Each attribute is described by: QName - the name with a link to the corresponding table description Type - the data-type Inherited - Yes/No statement of whether or not this attribute is inherited from a base complexType Scope - the scope defined as either "Local" or "Global" Use - the multiplicity as either "Required" or "Optional" Default - the default value or a "-" if there is none
Schematron Rules | The set of schematron rules to be applied for the class grouped as: Unordered Class - the Schematron Rules that enforce the "Unordered" stereotype; NS Constraint - the Schematron Rules that enforce the constraints on extension XML attributes; Explicit Rules - the Schematron Rules that enforce the explicitly defined constraints for the information model.
Source | The equivalent XSD code for the declaration of the complexType. This is the full declaration. See the W3C XSD documentation for the description of the permitted contents for this declaration.

toc | top

### B1.8 XSD Description for a Simple Type

Table B1.8 provides the key to the descriptions of XSD simple type tables.

Table B1.8 The key to the descriptions of XSD simple type tables.
Feature | Definition and Usage
--- | ---
Namespace | The namespace for the XSD simpleType.
Diagram | This diagram consists of a single block. The block form is: SimpleType Block - a green and grey shaded rectangle containing the name of the simpleType and its data-type
Type | The data-type for the element. This is either a primitiveType or an enumeration.
Facets | The permitted set of facets for the content i.e. the ways in which the content is further constrained. This row is only present if there are associated facets. The set of permitted facets are: Enumeration - a permitted value MinLength - the required minimum number of characters MaxLength - the maximum number of characters WhiteSpace - default handling of white-space i.e. preserve or replace or collapse MinInclusive - the permitted minimum value (inclusive) MaxInclusive - the permitted maximum value (inclusive) Pattern - the permitted character set defined as a regular expression
Used by | The features in the XSD that make use of this simpleType. These features are listed under the headings "Attributes", "Elements" and "ComplexTypes". Each of the entries is linked to its formal description table.
Source | The equivalent XSD code for the declaration of the simpleType. This is the full declaration. See the W3C XSD documentation for the description of the permitted contents for this declaration.

toc | top

### B1.9 XSD Description for an Attribute Group

Table B1.9 provides the key to the descriptions of XSD attribute group tables.

Table B1.9 The key to the descriptions of XSD attribute group tables.
Feature | Definition and Usage
--- | ---
Namespace | The namespace for the XSD attribute group.
Diagram | This diagram consists of two types of linked blocks: Attribute Group Block - an orange shaded rectangle containing the name of the attribute group Attribute Blocks - an orange and grey shaded rectangle containing the name of the attribute, its data-type, any default value and the multiplicity (denoted by a circle containing either the symbol "?" or "1" representing optional or required respectively)
Used by | The features in the XSD that make use of this attributeGroup. These features are listed under the heading "ComplexTypes". Each of the entries is linked to its formal description table.
Attributes | The set of XML attributes that constitute the attributeGroup. This includes the data-type and multiplicity.
Schematron Rules | The set of schematron rules to be applied for the attributeGroup are: NS Constraint - the Schematron Rules that enforce the constraints on extension XML attributes; Explicit Rules - the Schematron Rules that enforce the explicitly defined constraints for the information model.
Source | The equivalent XSD code for the declaration of the attributeGroup. See the W3C XSD documentation for the description of the permitted contents for this declaration.

toc | top

### B1.10 XSD Description for an Attribute

Table B1.10 provides the key to the descriptions of XSD attribute tables.

Table B1.10 The key to the descriptions of XSD attribute tables.
Feature | Definition and Usage
--- | ---
Namespace | The namespace for the XSD attribute. Only external/imported attributes have a namespace.
Properties | The properties of the attributes expressed in terms of the multiplicity i.e. "Optional" or "Required" and the default value (not all attributes will have a default value).
Facets | The permitted set of facets for the content i.e. the ways in which the content is further constrained. This row is only present if there are associated facets. The set of permitted facets are: Enumeration - a permitted value MinLength - the required minimum number of characters MaxLength - the maximum number of characters WhiteSpace - default handling of white-space i.e. preserve or replace or collapse MinInclusive - the permitted minimum value (inclusive) MaxInclusive - the permitted maximum value (inclusive) Pattern - the permitted character set defined as a regular expression
Source | The equivalent XSD code for the declaration of the attribute. See the W3C XSD documentation for the description of the permitted contents for this declaration.

toc | top

### B1.11 VDEX Description for an External Vocabulary

Table B1.11 provides the key to the descriptions of VDEX tables.

Table B1.11 The key to the descriptions of VDEX vocabulary binding tables.
Feature | Definition
--- | ---
Name | The name/title for the vocabulary.
Identifier | The unique identifier the vocabulary.
Location | The Web location for the VDEX file.
Type | The type of vocabulary. The choise is "glossaryOrDictionary", "flatTokenTerms", "hierarchicalTokenTerms", "thesaurus" or "lax" (see the IMS VDEX Specification [VDEX, 04] for the use of these terms).
Publisher | The publisher of the vocabulary.
Keywords | The keywords for the vocabulary.
Terms | The set of terms that constitute the vocabulary. Each term there is defined by its: Name - the vocabulary name/token Status - the release status of the term either "Draft", "Provisional" or "Final" Caption - the human readable caption/label for the term Description - the meaning of the term

toc | top

# Appendix C XSD Listings

## C1 QTI HTML5 XSD Listing

The XSD listing is shown below (the XSD is available at: http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqtiv2p2p1_html5_v1p0.xsd).

    <?xml version = "1.0" encoding = "UTF-8"?>
    <xs:schema xmlns="http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0"
         targetNamespace="http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0"
         xmlns:m2="http://www.w3.org/1998/Math/MathML"
         xmlns:m3="http://www.w3.org/2010/Math/MathML"
         xmlns:qti="http://www.imsglobal.org/xsd/imsqti_v2p2"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         xmlns:ssml11="http://www.w3.org/2010/10/synthesis"
         xmlns:xs="http://www.w3.org/2001/XMLSchema"
         xmlns:sch="http://purl.oclc.org/dsdl/schematron"
         version="IMS QTI HTML5 2.2.1"
         elementFormDefault="qualified"
         attributeFormDefault="unqualified">
        <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.imsglobal.org/xsd/w3/2001/xml.xsd" />
        <xs:import namespace="http://www.w3.org/1998/Math/MathML" schemaLocation="http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd" />
        <xs:import namespace="http://www.w3.org/2010/Math/MathML" schemaLocation="http://www.imsglobal.org/xsd/w3/Math/XMLSchema/mathml3/mathml3.xsd" />
        <xs:import namespace="http://www.imsglobal.org/xsd/imsqti_v2p2" schemaLocation="http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2p1.xsd" />
        <xs:import namespace="http://www.w3.org/2001/XInclude" schemaLocation="http://www.imsglobal.org/xsd/w3/2001/XInclude.xsd" />
        <xs:import namespace="http://www.w3.org/2010/10/synthesis" schemaLocation="http://www.imsglobal.org/xsd/w3/2010/ssmlv1p1-core.xsd" />

        <xs:annotation>
            <xs:documentation>
                XSD Data File Information
                =========================
                Author:         Colin Smythe (IMS Global, UK) and Mark McKell (IMS Global, USA)
                Date:           1st June, 2016
                Version:        2.2.1
                Status:         Final Release
                Description:    This is the Platform Specific Model (PSM) of the QTIv2.2.1 HTML5 Information Model and corresponding XSD Binding. This is used in conjunction with the QTIv2.2.1 ASI Information Model.

                History:        Version 2.2: The original PSM of the QTIv2.2 HTML5 Information Model and corresponding XSD Binding. Version 2.2.1: (a) Correction of the 'preload' attribute multiplicity (to become [0..1]) for the 'Audio' class; (b) Replace the use of the 'ElementIDList' class with the 'IDREFS' primitiveType and delete the 'ElementIDList' class; (c) The import to the QTIv2.2 XSD has been changed to QTIv2.2.1 XSD; (d) The schematron rules for the extensions of the 'language' and 'base' characterisics have been corrected to refer to 'xml:lang' and 'xml:base' respectively.

                License:        IPR and Distribution Notices

                                This machine readable file is derived from IMS Global specification IMS Question and Test Interoperability (QTI) Version 2.2.1
                                found at http://www.imsglobal.org/question and the original IMS Global schema binding or code base
                                http://www.imsglobal.org/question.

                                Recipients of this document are requested to submit, with their comments, notification of any relevant
                                patent claims or other intellectual property rights of which they may be aware that might be infringed by
                                any implementation of the specification set forth in this document, and to provide supporting documentation.

                                IMS takes no position regarding the validity or scope of any intellectual property or other rights that might
                                be claimed to pertain to the implementation or use of the technology described in this document or the extent
                                to which any license under such rights might or might not be available; neither does it represent that it has
                                made any effort to identify any such rights. Information on IMS procedures with respect to rights in IMS
                                specifications can be found at the IMS Global Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.

                                Copyright (c) IMS Global Learning Consortium 1999-2016. All Rights Reserved.

                                Use of this specification to develop products or services is governed by the license with IMS found on the IMS website: http://www.imsglobal.org/license.html.

                                Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.

                                The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.

                                THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS
                                EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE CONSORTIUM
                                NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF
                                ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.

                Source UML File Information
                ===========================
                The source file information must be supplied as an XMI file (without diagram layout information).
                The supported UML authoring tools are:
                (a) Poseidon - v6 (and later)
                (b) Papyrus - v1.1.3 (and later)

                Source XSLT File Information
                ============================
                XSL Generator:    Specificationv1p0_GenerationToolv1.xsl
                XSLT Processor:   Saxon-EE-9.6.0.7
                Release:          1.0
                Date:             31st January, 2016
                Autogen Engineer: Colin Smythe (IMS Global, UK)
                Autogen Date:     2016-07-04

                IMS Global Auto-generation Binding Tool-kit (I-BAT)
                ===================================================
                This file was auto-generated using the IMS Global Binding Auto-generation Tool-kit (I-BAT).  While every
                attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
                that this is an experimental tool.  Permission is given to make use of this tool.  IMS Global makes no
                claim on the materials created by third party users of this tool.  Details on how to use this tool
                are contained in the IMS Global "I-BAT" documentation available at the IMS Global web-site:
                http://www.imsglobal.org.

                Tool Copyright:  2012-2016  (c) IMS Global Learning Consortium Inc.  All Rights Reserved.
            </xs:documentation>
        </xs:annotation>

        <xs:annotation>
            <xs:documentation>
                Schematron Strict Selection Validation Rules
                ============================================
                This is the set of Schematron rules that have been created to enforce the use of the "Unordered" stereotype.
                These rules ensure that the number of entries in an unordered complexType of an element obey the multiplicity constraints.
                This is required so that any-order/any-multiplicity complexTypes can be constructed and validated.
            </xs:documentation>
            <xs:appinfo>
                <sch:ns uri="http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0" prefix="qh5" />
                <sch:title>Schematron validation rules for the enforcement of the Unordered stereotype.</sch:title>

                <!-- RULESET ******************************************************************* -->
                <sch:pattern abstract="false" id="Figure.Type">
                    <sch:title>[RULESET] For the Figure.Type complexType.</sch:title>

                    <sch:rule abstract="false" context="qh5:figure">

                        <sch:assert test="count(qh5:figcaption) = 0 or count(qh5:figcaption) = 1">
                            [RULE for Root Class Attribute 1] Invalid number of "figcaption" elements: <sch:value-of select="count(qh5:figcaption)" />.
                        </sch:assert>

                    </sch:rule>

                </sch:pattern>
                <!-- *************************************************************************** -->

                <!-- RULESET ******************************************************************* -->
                <sch:pattern abstract="false" id="Ruby.Type">
                    <sch:title>[RULESET] For the Ruby.Type complexType.</sch:title>

                    <sch:rule abstract="false" context="qh5:ruby">

                        <sch:assert test="count(qh5:rp) = 0 or count(qh5:rp) = 1">
                            [RULE for Root Class Attribute 1] Invalid number of "rp" elements: <sch:value-of select="count(qh5:rp)" />.
                        </sch:assert>

                        <sch:assert test="count(qh5:rt) = 0 or count(qh5:rt) = 1">
                            [RULE for Root Class Attribute 2.1] Invalid number of "rt" elements: <sch:value-of select="count(qh5:rt)" />.
                        </sch:assert>

                        <sch:assert test="count(qh5:rtc) = 0 or count(qh5:rtc) = 1">
                            [RULE for Root Class Attribute 2.2] Invalid number of "rtc" elements: <sch:value-of select="count(qh5:rtc)" />.
                        </sch:assert>

                    </sch:rule>

                </sch:pattern>

            </xs:appinfo>
        </xs:annotation>

        <xs:annotation>
            <xs:documentation>
                Schematron Extension Validation Rules
                =====================================
                This is the set of Schematron rules that have been created to enforce the validation constraints on namespaced extensions.
                These rules ensure that the names of the extension features conform to defined naming convention (expressed using a REGEX).
                At present these rules are limited to permitted names for the proprietary XML attributes.
            </xs:documentation>
            <xs:appinfo>
                <sch:ns uri="http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0" prefix="qh5" />
                <sch:title>Schematron validation rules for the enforcement naming constraints on XML attribute provided as proprietary extensions.</sch:title>

                <!-- RULESET ******************************************************************* -->
                <sch:pattern abstract="false" id="RULESET_ROOTELEMENT_DATAEXTENSIONRULES">
                    <sch:title>Rules applied to Root Elements that have constrained extension attributes.</sch:title>

                    <sch:rule abstract="false" context="//qh5:article">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (article): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:aside">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (aside): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:audio">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='src' or string(name(@*[1]))='crossorigin' or string(name(@*[1]))='preload' or string(name(@*[1]))='autoplay' or string(name(@*[1]))='mediagroup' or string(name(@*[1]))='loop' or string(name(@*[1]))='muted' or string(name(@*[1]))='controls' or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='src' or string(name(@*[2]))='crossorigin' or string(name(@*[2]))='preload' or string(name(@*[2]))='autoplay' or string(name(@*[2]))='mediagroup' or string(name(@*[2]))='loop' or string(name(@*[2]))='muted' or string(name(@*[2]))='controls' or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='src' or string(name(@*[3]))='crossorigin' or string(name(@*[3]))='preload' or string(name(@*[3]))='autoplay' or string(name(@*[3]))='mediagroup' or string(name(@*[3]))='loop' or string(name(@*[3]))='muted' or string(name(@*[3]))='controls' or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='src' or string(name(@*[4]))='crossorigin' or string(name(@*[4]))='preload' or string(name(@*[4]))='autoplay' or string(name(@*[4]))='mediagroup' or string(name(@*[4]))='loop' or string(name(@*[4]))='muted' or string(name(@*[4]))='controls' or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='src' or string(name(@*[5]))='crossorigin' or string(name(@*[5]))='preload' or string(name(@*[5]))='autoplay' or string(name(@*[5]))='mediagroup' or string(name(@*[5]))='loop' or string(name(@*[5]))='muted' or string(name(@*[5]))='controls' or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='src' or string(name(@*[6]))='crossorigin' or string(name(@*[6]))='preload' or string(name(@*[6]))='autoplay' or string(name(@*[6]))='mediagroup' or string(name(@*[6]))='loop' or string(name(@*[6]))='muted' or string(name(@*[6]))='controls' or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='src' or string(name(@*[7]))='crossorigin' or string(name(@*[7]))='preload' or string(name(@*[7]))='autoplay' or string(name(@*[7]))='mediagroup' or string(name(@*[7]))='loop' or string(name(@*[7]))='muted' or string(name(@*[7]))='controls' or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='src' or string(name(@*[8]))='crossorigin' or string(name(@*[8]))='preload' or string(name(@*[8]))='autoplay' or string(name(@*[8]))='mediagroup' or string(name(@*[8]))='loop' or string(name(@*[8]))='muted' or string(name(@*[8]))='controls' or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='src' or string(name(@*[9]))='crossorigin' or string(name(@*[9]))='preload' or string(name(@*[9]))='autoplay' or string(name(@*[9]))='mediagroup' or string(name(@*[9]))='loop' or string(name(@*[9]))='muted' or string(name(@*[9]))='controls' or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='src' or string(name(@*[10]))='crossorigin' or string(name(@*[10]))='preload' or string(name(@*[10]))='autoplay' or string(name(@*[10]))='mediagroup' or string(name(@*[10]))='loop' or string(name(@*[10]))='muted' or string(name(@*[10]))='controls' or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='src' or string(name(@*[11]))='crossorigin' or string(name(@*[11]))='preload' or string(name(@*[11]))='autoplay' or string(name(@*[11]))='mediagroup' or string(name(@*[11]))='loop' or string(name(@*[11]))='muted' or string(name(@*[11]))='controls' or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='src' or string(name(@*[12]))='crossorigin' or string(name(@*[12]))='preload' or string(name(@*[12]))='autoplay' or string(name(@*[12]))='mediagroup' or string(name(@*[12]))='loop' or string(name(@*[12]))='muted' or string(name(@*[12]))='controls' or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='src' or string(name(@*[13]))='crossorigin' or string(name(@*[13]))='preload' or string(name(@*[13]))='autoplay' or string(name(@*[13]))='mediagroup' or string(name(@*[13]))='loop' or string(name(@*[13]))='muted' or string(name(@*[13]))='controls' or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='src' or string(name(@*[14]))='crossorigin' or string(name(@*[14]))='preload' or string(name(@*[14]))='autoplay' or string(name(@*[14]))='mediagroup' or string(name(@*[14]))='loop' or string(name(@*[14]))='muted' or string(name(@*[14]))='controls' or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='src' or string(name(@*[15]))='crossorigin' or string(name(@*[15]))='preload' or string(name(@*[15]))='autoplay' or string(name(@*[15]))='mediagroup' or string(name(@*[15]))='loop' or string(name(@*[15]))='muted' or string(name(@*[15]))='controls' or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='src' or string(name(@*[16]))='crossorigin' or string(name(@*[16]))='preload' or string(name(@*[16]))='autoplay' or string(name(@*[16]))='mediagroup' or string(name(@*[16]))='loop' or string(name(@*[16]))='muted' or string(name(@*[16]))='controls' or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='src' or string(name(@*[17]))='crossorigin' or string(name(@*[17]))='preload' or string(name(@*[17]))='autoplay' or string(name(@*[17]))='mediagroup' or string(name(@*[17]))='loop' or string(name(@*[17]))='muted' or string(name(@*[17]))='controls' or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[18]))=0 or string(name(@*[18]))='src' or string(name(@*[18]))='crossorigin' or string(name(@*[18]))='preload' or string(name(@*[18]))='autoplay' or string(name(@*[18]))='mediagroup' or string(name(@*[18]))='loop' or string(name(@*[18]))='muted' or string(name(@*[18]))='controls' or string(name(@*[18]))='id' or string(name(@*[18]))='xml:lang' or string(name(@*[18]))='title' or string(name(@*[18]))='label' or string(name(@*[18]))='class' or string(name(@*[18]))='dir' or string(name(@*[18]))='role' or string(name(@*[18]))='aria-controls' or string(name(@*[18]))='aria-describedby' or string(name(@*[18]))='aria-flowto' or string(name(@*[18]))='aria-label' or string(name(@*[18]))='aria-labelledby' or string(name(@*[18]))='aria-level' or string(name(@*[18]))='aria-live' or string(name(@*[18]))='aria-orientation' or string(name(@*[18]))='aria-owns' or starts-with(name(@*[18]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 18] Invalid XML attribute in position 18 with name of <sch:value-of select="string(name(@*[18]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[19]))=0 or string(name(@*[19]))='src' or string(name(@*[19]))='crossorigin' or string(name(@*[19]))='preload' or string(name(@*[19]))='autoplay' or string(name(@*[19]))='mediagroup' or string(name(@*[19]))='loop' or string(name(@*[19]))='muted' or string(name(@*[19]))='controls' or string(name(@*[19]))='id' or string(name(@*[19]))='xml:lang' or string(name(@*[19]))='title' or string(name(@*[19]))='label' or string(name(@*[19]))='class' or string(name(@*[19]))='dir' or string(name(@*[19]))='role' or string(name(@*[19]))='aria-controls' or string(name(@*[19]))='aria-describedby' or string(name(@*[19]))='aria-flowto' or string(name(@*[19]))='aria-label' or string(name(@*[19]))='aria-labelledby' or string(name(@*[19]))='aria-level' or string(name(@*[19]))='aria-live' or string(name(@*[19]))='aria-orientation' or string(name(@*[19]))='aria-owns' or starts-with(name(@*[19]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 19] Invalid XML attribute in position 19 with name of <sch:value-of select="string(name(@*[19]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[20]))=0 or string(name(@*[20]))='src' or string(name(@*[20]))='crossorigin' or string(name(@*[20]))='preload' or string(name(@*[20]))='autoplay' or string(name(@*[20]))='mediagroup' or string(name(@*[20]))='loop' or string(name(@*[20]))='muted' or string(name(@*[20]))='controls' or string(name(@*[20]))='id' or string(name(@*[20]))='xml:lang' or string(name(@*[20]))='title' or string(name(@*[20]))='label' or string(name(@*[20]))='class' or string(name(@*[20]))='dir' or string(name(@*[20]))='role' or string(name(@*[20]))='aria-controls' or string(name(@*[20]))='aria-describedby' or string(name(@*[20]))='aria-flowto' or string(name(@*[20]))='aria-label' or string(name(@*[20]))='aria-labelledby' or string(name(@*[20]))='aria-level' or string(name(@*[20]))='aria-live' or string(name(@*[20]))='aria-orientation' or string(name(@*[20]))='aria-owns' or starts-with(name(@*[20]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 20] Invalid XML attribute in position 20 with name of <sch:value-of select="string(name(@*[20]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[21]))=0 or string(name(@*[21]))='src' or string(name(@*[21]))='crossorigin' or string(name(@*[21]))='preload' or string(name(@*[21]))='autoplay' or string(name(@*[21]))='mediagroup' or string(name(@*[21]))='loop' or string(name(@*[21]))='muted' or string(name(@*[21]))='controls' or string(name(@*[21]))='id' or string(name(@*[21]))='xml:lang' or string(name(@*[21]))='title' or string(name(@*[21]))='label' or string(name(@*[21]))='class' or string(name(@*[21]))='dir' or string(name(@*[21]))='role' or string(name(@*[21]))='aria-controls' or string(name(@*[21]))='aria-describedby' or string(name(@*[21]))='aria-flowto' or string(name(@*[21]))='aria-label' or string(name(@*[21]))='aria-labelledby' or string(name(@*[21]))='aria-level' or string(name(@*[21]))='aria-live' or string(name(@*[21]))='aria-orientation' or string(name(@*[21]))='aria-owns' or starts-with(name(@*[21]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 21] Invalid XML attribute in position 21 with name of <sch:value-of select="string(name(@*[21]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[22]))=0 or string(name(@*[22]))='src' or string(name(@*[22]))='crossorigin' or string(name(@*[22]))='preload' or string(name(@*[22]))='autoplay' or string(name(@*[22]))='mediagroup' or string(name(@*[22]))='loop' or string(name(@*[22]))='muted' or string(name(@*[22]))='controls' or string(name(@*[22]))='id' or string(name(@*[22]))='xml:lang' or string(name(@*[22]))='title' or string(name(@*[22]))='label' or string(name(@*[22]))='class' or string(name(@*[22]))='dir' or string(name(@*[22]))='role' or string(name(@*[22]))='aria-controls' or string(name(@*[22]))='aria-describedby' or string(name(@*[22]))='aria-flowto' or string(name(@*[22]))='aria-label' or string(name(@*[22]))='aria-labelledby' or string(name(@*[22]))='aria-level' or string(name(@*[22]))='aria-live' or string(name(@*[22]))='aria-orientation' or string(name(@*[22]))='aria-owns' or starts-with(name(@*[22]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 22] Invalid XML attribute in position 22 with name of <sch:value-of select="string(name(@*[22]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[23]))=0 or string(name(@*[23]))='src' or string(name(@*[23]))='crossorigin' or string(name(@*[23]))='preload' or string(name(@*[23]))='autoplay' or string(name(@*[23]))='mediagroup' or string(name(@*[23]))='loop' or string(name(@*[23]))='muted' or string(name(@*[23]))='controls' or string(name(@*[23]))='id' or string(name(@*[23]))='xml:lang' or string(name(@*[23]))='title' or string(name(@*[23]))='label' or string(name(@*[23]))='class' or string(name(@*[23]))='dir' or string(name(@*[23]))='role' or string(name(@*[23]))='aria-controls' or string(name(@*[23]))='aria-describedby' or string(name(@*[23]))='aria-flowto' or string(name(@*[23]))='aria-label' or string(name(@*[23]))='aria-labelledby' or string(name(@*[23]))='aria-level' or string(name(@*[23]))='aria-live' or string(name(@*[23]))='aria-orientation' or string(name(@*[23]))='aria-owns' or starts-with(name(@*[23]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 23] Invalid XML attribute in position 23 with name of <sch:value-of select="string(name(@*[23]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[24]))=0 or string(name(@*[24]))='src' or string(name(@*[24]))='crossorigin' or string(name(@*[24]))='preload' or string(name(@*[24]))='autoplay' or string(name(@*[24]))='mediagroup' or string(name(@*[24]))='loop' or string(name(@*[24]))='muted' or string(name(@*[24]))='controls' or string(name(@*[24]))='id' or string(name(@*[24]))='xml:lang' or string(name(@*[24]))='title' or string(name(@*[24]))='label' or string(name(@*[24]))='class' or string(name(@*[24]))='dir' or string(name(@*[24]))='role' or string(name(@*[24]))='aria-controls' or string(name(@*[24]))='aria-describedby' or string(name(@*[24]))='aria-flowto' or string(name(@*[24]))='aria-label' or string(name(@*[24]))='aria-labelledby' or string(name(@*[24]))='aria-level' or string(name(@*[24]))='aria-live' or string(name(@*[24]))='aria-orientation' or string(name(@*[24]))='aria-owns' or starts-with(name(@*[24]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 24] Invalid XML attribute in position 24 with name of <sch:value-of select="string(name(@*[24]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[25]))=0 or string(name(@*[25]))='src' or string(name(@*[25]))='crossorigin' or string(name(@*[25]))='preload' or string(name(@*[25]))='autoplay' or string(name(@*[25]))='mediagroup' or string(name(@*[25]))='loop' or string(name(@*[25]))='muted' or string(name(@*[25]))='controls' or string(name(@*[25]))='id' or string(name(@*[25]))='xml:lang' or string(name(@*[25]))='title' or string(name(@*[25]))='label' or string(name(@*[25]))='class' or string(name(@*[25]))='dir' or string(name(@*[25]))='role' or string(name(@*[25]))='aria-controls' or string(name(@*[25]))='aria-describedby' or string(name(@*[25]))='aria-flowto' or string(name(@*[25]))='aria-label' or string(name(@*[25]))='aria-labelledby' or string(name(@*[25]))='aria-level' or string(name(@*[25]))='aria-live' or string(name(@*[25]))='aria-orientation' or string(name(@*[25]))='aria-owns' or starts-with(name(@*[25]), 'data-')">
                            [RULE ROOT ELEMENT (audio): Assertion 25] Invalid XML attribute in position 25 with name of <sch:value-of select="string(name(@*[25]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:bdi">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (bdi): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:figcaption">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (figcaption): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:figure">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (figure): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:footer">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (footer): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:header">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (header): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:label">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (label): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:nav">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (nav): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:rb">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (rb): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:rp">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (rp): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:rt">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (rt): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:rtc">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (rtc): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:ruby">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (ruby): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:section">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (section): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:source">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='src' or string(name(@*[1]))='type' or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='src' or string(name(@*[2]))='type' or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='src' or string(name(@*[3]))='type' or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='src' or string(name(@*[4]))='type' or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='src' or string(name(@*[5]))='type' or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='src' or string(name(@*[6]))='type' or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='src' or string(name(@*[7]))='type' or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='src' or string(name(@*[8]))='type' or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='src' or string(name(@*[9]))='type' or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='src' or string(name(@*[10]))='type' or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='src' or string(name(@*[11]))='type' or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='src' or string(name(@*[12]))='type' or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='src' or string(name(@*[13]))='type' or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='src' or string(name(@*[14]))='type' or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='src' or string(name(@*[15]))='type' or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='src' or string(name(@*[16]))='type' or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='src' or string(name(@*[17]))='type' or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[18]))=0 or string(name(@*[18]))='src' or string(name(@*[18]))='type' or string(name(@*[18]))='id' or string(name(@*[18]))='xml:lang' or string(name(@*[18]))='title' or string(name(@*[18]))='label' or string(name(@*[18]))='class' or string(name(@*[18]))='dir' or string(name(@*[18]))='role' or string(name(@*[18]))='aria-controls' or string(name(@*[18]))='aria-describedby' or string(name(@*[18]))='aria-flowto' or string(name(@*[18]))='aria-label' or string(name(@*[18]))='aria-labelledby' or string(name(@*[18]))='aria-level' or string(name(@*[18]))='aria-live' or string(name(@*[18]))='aria-orientation' or string(name(@*[18]))='aria-owns' or starts-with(name(@*[18]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 18] Invalid XML attribute in position 18 with name of <sch:value-of select="string(name(@*[18]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[19]))=0 or string(name(@*[19]))='src' or string(name(@*[19]))='type' or string(name(@*[19]))='id' or string(name(@*[19]))='xml:lang' or string(name(@*[19]))='title' or string(name(@*[19]))='label' or string(name(@*[19]))='class' or string(name(@*[19]))='dir' or string(name(@*[19]))='role' or string(name(@*[19]))='aria-controls' or string(name(@*[19]))='aria-describedby' or string(name(@*[19]))='aria-flowto' or string(name(@*[19]))='aria-label' or string(name(@*[19]))='aria-labelledby' or string(name(@*[19]))='aria-level' or string(name(@*[19]))='aria-live' or string(name(@*[19]))='aria-orientation' or string(name(@*[19]))='aria-owns' or starts-with(name(@*[19]), 'data-')">
                            [RULE ROOT ELEMENT (source): Assertion 19] Invalid XML attribute in position 19 with name of <sch:value-of select="string(name(@*[19]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:track">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='kind' or string(name(@*[1]))='src' or string(name(@*[1]))='srclang' or string(name(@*[1]))='default' or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='kind' or string(name(@*[2]))='src' or string(name(@*[2]))='srclang' or string(name(@*[2]))='default' or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='kind' or string(name(@*[3]))='src' or string(name(@*[3]))='srclang' or string(name(@*[3]))='default' or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='kind' or string(name(@*[4]))='src' or string(name(@*[4]))='srclang' or string(name(@*[4]))='default' or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='kind' or string(name(@*[5]))='src' or string(name(@*[5]))='srclang' or string(name(@*[5]))='default' or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='kind' or string(name(@*[6]))='src' or string(name(@*[6]))='srclang' or string(name(@*[6]))='default' or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='kind' or string(name(@*[7]))='src' or string(name(@*[7]))='srclang' or string(name(@*[7]))='default' or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='kind' or string(name(@*[8]))='src' or string(name(@*[8]))='srclang' or string(name(@*[8]))='default' or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='kind' or string(name(@*[9]))='src' or string(name(@*[9]))='srclang' or string(name(@*[9]))='default' or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='kind' or string(name(@*[10]))='src' or string(name(@*[10]))='srclang' or string(name(@*[10]))='default' or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='kind' or string(name(@*[11]))='src' or string(name(@*[11]))='srclang' or string(name(@*[11]))='default' or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='kind' or string(name(@*[12]))='src' or string(name(@*[12]))='srclang' or string(name(@*[12]))='default' or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='kind' or string(name(@*[13]))='src' or string(name(@*[13]))='srclang' or string(name(@*[13]))='default' or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='kind' or string(name(@*[14]))='src' or string(name(@*[14]))='srclang' or string(name(@*[14]))='default' or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='kind' or string(name(@*[15]))='src' or string(name(@*[15]))='srclang' or string(name(@*[15]))='default' or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='kind' or string(name(@*[16]))='src' or string(name(@*[16]))='srclang' or string(name(@*[16]))='default' or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='kind' or string(name(@*[17]))='src' or string(name(@*[17]))='srclang' or string(name(@*[17]))='default' or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[18]))=0 or string(name(@*[18]))='kind' or string(name(@*[18]))='src' or string(name(@*[18]))='srclang' or string(name(@*[18]))='default' or string(name(@*[18]))='id' or string(name(@*[18]))='xml:lang' or string(name(@*[18]))='title' or string(name(@*[18]))='label' or string(name(@*[18]))='class' or string(name(@*[18]))='dir' or string(name(@*[18]))='role' or string(name(@*[18]))='aria-controls' or string(name(@*[18]))='aria-describedby' or string(name(@*[18]))='aria-flowto' or string(name(@*[18]))='aria-label' or string(name(@*[18]))='aria-labelledby' or string(name(@*[18]))='aria-level' or string(name(@*[18]))='aria-live' or string(name(@*[18]))='aria-orientation' or string(name(@*[18]))='aria-owns' or starts-with(name(@*[18]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 18] Invalid XML attribute in position 18 with name of <sch:value-of select="string(name(@*[18]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[19]))=0 or string(name(@*[19]))='kind' or string(name(@*[19]))='src' or string(name(@*[19]))='srclang' or string(name(@*[19]))='default' or string(name(@*[19]))='id' or string(name(@*[19]))='xml:lang' or string(name(@*[19]))='title' or string(name(@*[19]))='label' or string(name(@*[19]))='class' or string(name(@*[19]))='dir' or string(name(@*[19]))='role' or string(name(@*[19]))='aria-controls' or string(name(@*[19]))='aria-describedby' or string(name(@*[19]))='aria-flowto' or string(name(@*[19]))='aria-label' or string(name(@*[19]))='aria-labelledby' or string(name(@*[19]))='aria-level' or string(name(@*[19]))='aria-live' or string(name(@*[19]))='aria-orientation' or string(name(@*[19]))='aria-owns' or starts-with(name(@*[19]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 19] Invalid XML attribute in position 19 with name of <sch:value-of select="string(name(@*[19]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[20]))=0 or string(name(@*[20]))='kind' or string(name(@*[20]))='src' or string(name(@*[20]))='srclang' or string(name(@*[20]))='default' or string(name(@*[20]))='id' or string(name(@*[20]))='xml:lang' or string(name(@*[20]))='title' or string(name(@*[20]))='label' or string(name(@*[20]))='class' or string(name(@*[20]))='dir' or string(name(@*[20]))='role' or string(name(@*[20]))='aria-controls' or string(name(@*[20]))='aria-describedby' or string(name(@*[20]))='aria-flowto' or string(name(@*[20]))='aria-label' or string(name(@*[20]))='aria-labelledby' or string(name(@*[20]))='aria-level' or string(name(@*[20]))='aria-live' or string(name(@*[20]))='aria-orientation' or string(name(@*[20]))='aria-owns' or starts-with(name(@*[20]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 20] Invalid XML attribute in position 20 with name of <sch:value-of select="string(name(@*[20]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[21]))=0 or string(name(@*[21]))='kind' or string(name(@*[21]))='src' or string(name(@*[21]))='srclang' or string(name(@*[21]))='default' or string(name(@*[21]))='id' or string(name(@*[21]))='xml:lang' or string(name(@*[21]))='title' or string(name(@*[21]))='label' or string(name(@*[21]))='class' or string(name(@*[21]))='dir' or string(name(@*[21]))='role' or string(name(@*[21]))='aria-controls' or string(name(@*[21]))='aria-describedby' or string(name(@*[21]))='aria-flowto' or string(name(@*[21]))='aria-label' or string(name(@*[21]))='aria-labelledby' or string(name(@*[21]))='aria-level' or string(name(@*[21]))='aria-live' or string(name(@*[21]))='aria-orientation' or string(name(@*[21]))='aria-owns' or starts-with(name(@*[21]), 'data-')">
                            [RULE ROOT ELEMENT (track): Assertion 21] Invalid XML attribute in position 21 with name of <sch:value-of select="string(name(@*[21]))" />.
                        </sch:assert>
                    </sch:rule>

                    <sch:rule abstract="false" context="//qh5:video">
                        <sch:assert test="string-length(name(@*[1]))=0 or string(name(@*[1]))='src' or string(name(@*[1]))='crossorigin' or string(name(@*[1]))='preload' or string(name(@*[1]))='autoplay' or string(name(@*[1]))='mediagroup' or string(name(@*[1]))='loop' or string(name(@*[1]))='muted' or string(name(@*[1]))='controls' or string(name(@*[1]))='poster' or string(name(@*[1]))='width' or string(name(@*[1]))='height' or string(name(@*[1]))='id' or string(name(@*[1]))='xml:lang' or string(name(@*[1]))='title' or string(name(@*[1]))='label' or string(name(@*[1]))='class' or string(name(@*[1]))='dir' or string(name(@*[1]))='role' or string(name(@*[1]))='aria-controls' or string(name(@*[1]))='aria-describedby' or string(name(@*[1]))='aria-flowto' or string(name(@*[1]))='aria-label' or string(name(@*[1]))='aria-labelledby' or string(name(@*[1]))='aria-level' or string(name(@*[1]))='aria-live' or string(name(@*[1]))='aria-orientation' or string(name(@*[1]))='aria-owns' or starts-with(name(@*[1]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 1] Invalid XML attribute in position 1 with name of <sch:value-of select="string(name(@*[1]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[2]))=0 or string(name(@*[2]))='src' or string(name(@*[2]))='crossorigin' or string(name(@*[2]))='preload' or string(name(@*[2]))='autoplay' or string(name(@*[2]))='mediagroup' or string(name(@*[2]))='loop' or string(name(@*[2]))='muted' or string(name(@*[2]))='controls' or string(name(@*[2]))='poster' or string(name(@*[2]))='width' or string(name(@*[2]))='height' or string(name(@*[2]))='id' or string(name(@*[2]))='xml:lang' or string(name(@*[2]))='title' or string(name(@*[2]))='label' or string(name(@*[2]))='class' or string(name(@*[2]))='dir' or string(name(@*[2]))='role' or string(name(@*[2]))='aria-controls' or string(name(@*[2]))='aria-describedby' or string(name(@*[2]))='aria-flowto' or string(name(@*[2]))='aria-label' or string(name(@*[2]))='aria-labelledby' or string(name(@*[2]))='aria-level' or string(name(@*[2]))='aria-live' or string(name(@*[2]))='aria-orientation' or string(name(@*[2]))='aria-owns' or starts-with(name(@*[2]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 2] Invalid XML attribute in position 2 with name of <sch:value-of select="string(name(@*[2]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[3]))=0 or string(name(@*[3]))='src' or string(name(@*[3]))='crossorigin' or string(name(@*[3]))='preload' or string(name(@*[3]))='autoplay' or string(name(@*[3]))='mediagroup' or string(name(@*[3]))='loop' or string(name(@*[3]))='muted' or string(name(@*[3]))='controls' or string(name(@*[3]))='poster' or string(name(@*[3]))='width' or string(name(@*[3]))='height' or string(name(@*[3]))='id' or string(name(@*[3]))='xml:lang' or string(name(@*[3]))='title' or string(name(@*[3]))='label' or string(name(@*[3]))='class' or string(name(@*[3]))='dir' or string(name(@*[3]))='role' or string(name(@*[3]))='aria-controls' or string(name(@*[3]))='aria-describedby' or string(name(@*[3]))='aria-flowto' or string(name(@*[3]))='aria-label' or string(name(@*[3]))='aria-labelledby' or string(name(@*[3]))='aria-level' or string(name(@*[3]))='aria-live' or string(name(@*[3]))='aria-orientation' or string(name(@*[3]))='aria-owns' or starts-with(name(@*[3]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 3] Invalid XML attribute in position 3 with name of <sch:value-of select="string(name(@*[3]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[4]))=0 or string(name(@*[4]))='src' or string(name(@*[4]))='crossorigin' or string(name(@*[4]))='preload' or string(name(@*[4]))='autoplay' or string(name(@*[4]))='mediagroup' or string(name(@*[4]))='loop' or string(name(@*[4]))='muted' or string(name(@*[4]))='controls' or string(name(@*[4]))='poster' or string(name(@*[4]))='width' or string(name(@*[4]))='height' or string(name(@*[4]))='id' or string(name(@*[4]))='xml:lang' or string(name(@*[4]))='title' or string(name(@*[4]))='label' or string(name(@*[4]))='class' or string(name(@*[4]))='dir' or string(name(@*[4]))='role' or string(name(@*[4]))='aria-controls' or string(name(@*[4]))='aria-describedby' or string(name(@*[4]))='aria-flowto' or string(name(@*[4]))='aria-label' or string(name(@*[4]))='aria-labelledby' or string(name(@*[4]))='aria-level' or string(name(@*[4]))='aria-live' or string(name(@*[4]))='aria-orientation' or string(name(@*[4]))='aria-owns' or starts-with(name(@*[4]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 4] Invalid XML attribute in position 4 with name of <sch:value-of select="string(name(@*[4]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[5]))=0 or string(name(@*[5]))='src' or string(name(@*[5]))='crossorigin' or string(name(@*[5]))='preload' or string(name(@*[5]))='autoplay' or string(name(@*[5]))='mediagroup' or string(name(@*[5]))='loop' or string(name(@*[5]))='muted' or string(name(@*[5]))='controls' or string(name(@*[5]))='poster' or string(name(@*[5]))='width' or string(name(@*[5]))='height' or string(name(@*[5]))='id' or string(name(@*[5]))='xml:lang' or string(name(@*[5]))='title' or string(name(@*[5]))='label' or string(name(@*[5]))='class' or string(name(@*[5]))='dir' or string(name(@*[5]))='role' or string(name(@*[5]))='aria-controls' or string(name(@*[5]))='aria-describedby' or string(name(@*[5]))='aria-flowto' or string(name(@*[5]))='aria-label' or string(name(@*[5]))='aria-labelledby' or string(name(@*[5]))='aria-level' or string(name(@*[5]))='aria-live' or string(name(@*[5]))='aria-orientation' or string(name(@*[5]))='aria-owns' or starts-with(name(@*[5]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 5] Invalid XML attribute in position 5 with name of <sch:value-of select="string(name(@*[5]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[6]))=0 or string(name(@*[6]))='src' or string(name(@*[6]))='crossorigin' or string(name(@*[6]))='preload' or string(name(@*[6]))='autoplay' or string(name(@*[6]))='mediagroup' or string(name(@*[6]))='loop' or string(name(@*[6]))='muted' or string(name(@*[6]))='controls' or string(name(@*[6]))='poster' or string(name(@*[6]))='width' or string(name(@*[6]))='height' or string(name(@*[6]))='id' or string(name(@*[6]))='xml:lang' or string(name(@*[6]))='title' or string(name(@*[6]))='label' or string(name(@*[6]))='class' or string(name(@*[6]))='dir' or string(name(@*[6]))='role' or string(name(@*[6]))='aria-controls' or string(name(@*[6]))='aria-describedby' or string(name(@*[6]))='aria-flowto' or string(name(@*[6]))='aria-label' or string(name(@*[6]))='aria-labelledby' or string(name(@*[6]))='aria-level' or string(name(@*[6]))='aria-live' or string(name(@*[6]))='aria-orientation' or string(name(@*[6]))='aria-owns' or starts-with(name(@*[6]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 6] Invalid XML attribute in position 6 with name of <sch:value-of select="string(name(@*[6]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[7]))=0 or string(name(@*[7]))='src' or string(name(@*[7]))='crossorigin' or string(name(@*[7]))='preload' or string(name(@*[7]))='autoplay' or string(name(@*[7]))='mediagroup' or string(name(@*[7]))='loop' or string(name(@*[7]))='muted' or string(name(@*[7]))='controls' or string(name(@*[7]))='poster' or string(name(@*[7]))='width' or string(name(@*[7]))='height' or string(name(@*[7]))='id' or string(name(@*[7]))='xml:lang' or string(name(@*[7]))='title' or string(name(@*[7]))='label' or string(name(@*[7]))='class' or string(name(@*[7]))='dir' or string(name(@*[7]))='role' or string(name(@*[7]))='aria-controls' or string(name(@*[7]))='aria-describedby' or string(name(@*[7]))='aria-flowto' or string(name(@*[7]))='aria-label' or string(name(@*[7]))='aria-labelledby' or string(name(@*[7]))='aria-level' or string(name(@*[7]))='aria-live' or string(name(@*[7]))='aria-orientation' or string(name(@*[7]))='aria-owns' or starts-with(name(@*[7]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 7] Invalid XML attribute in position 7 with name of <sch:value-of select="string(name(@*[7]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[8]))=0 or string(name(@*[8]))='src' or string(name(@*[8]))='crossorigin' or string(name(@*[8]))='preload' or string(name(@*[8]))='autoplay' or string(name(@*[8]))='mediagroup' or string(name(@*[8]))='loop' or string(name(@*[8]))='muted' or string(name(@*[8]))='controls' or string(name(@*[8]))='poster' or string(name(@*[8]))='width' or string(name(@*[8]))='height' or string(name(@*[8]))='id' or string(name(@*[8]))='xml:lang' or string(name(@*[8]))='title' or string(name(@*[8]))='label' or string(name(@*[8]))='class' or string(name(@*[8]))='dir' or string(name(@*[8]))='role' or string(name(@*[8]))='aria-controls' or string(name(@*[8]))='aria-describedby' or string(name(@*[8]))='aria-flowto' or string(name(@*[8]))='aria-label' or string(name(@*[8]))='aria-labelledby' or string(name(@*[8]))='aria-level' or string(name(@*[8]))='aria-live' or string(name(@*[8]))='aria-orientation' or string(name(@*[8]))='aria-owns' or starts-with(name(@*[8]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 8] Invalid XML attribute in position 8 with name of <sch:value-of select="string(name(@*[8]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[9]))=0 or string(name(@*[9]))='src' or string(name(@*[9]))='crossorigin' or string(name(@*[9]))='preload' or string(name(@*[9]))='autoplay' or string(name(@*[9]))='mediagroup' or string(name(@*[9]))='loop' or string(name(@*[9]))='muted' or string(name(@*[9]))='controls' or string(name(@*[9]))='poster' or string(name(@*[9]))='width' or string(name(@*[9]))='height' or string(name(@*[9]))='id' or string(name(@*[9]))='xml:lang' or string(name(@*[9]))='title' or string(name(@*[9]))='label' or string(name(@*[9]))='class' or string(name(@*[9]))='dir' or string(name(@*[9]))='role' or string(name(@*[9]))='aria-controls' or string(name(@*[9]))='aria-describedby' or string(name(@*[9]))='aria-flowto' or string(name(@*[9]))='aria-label' or string(name(@*[9]))='aria-labelledby' or string(name(@*[9]))='aria-level' or string(name(@*[9]))='aria-live' or string(name(@*[9]))='aria-orientation' or string(name(@*[9]))='aria-owns' or starts-with(name(@*[9]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 9] Invalid XML attribute in position 9 with name of <sch:value-of select="string(name(@*[9]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[10]))=0 or string(name(@*[10]))='src' or string(name(@*[10]))='crossorigin' or string(name(@*[10]))='preload' or string(name(@*[10]))='autoplay' or string(name(@*[10]))='mediagroup' or string(name(@*[10]))='loop' or string(name(@*[10]))='muted' or string(name(@*[10]))='controls' or string(name(@*[10]))='poster' or string(name(@*[10]))='width' or string(name(@*[10]))='height' or string(name(@*[10]))='id' or string(name(@*[10]))='xml:lang' or string(name(@*[10]))='title' or string(name(@*[10]))='label' or string(name(@*[10]))='class' or string(name(@*[10]))='dir' or string(name(@*[10]))='role' or string(name(@*[10]))='aria-controls' or string(name(@*[10]))='aria-describedby' or string(name(@*[10]))='aria-flowto' or string(name(@*[10]))='aria-label' or string(name(@*[10]))='aria-labelledby' or string(name(@*[10]))='aria-level' or string(name(@*[10]))='aria-live' or string(name(@*[10]))='aria-orientation' or string(name(@*[10]))='aria-owns' or starts-with(name(@*[10]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 10] Invalid XML attribute in position 10 with name of <sch:value-of select="string(name(@*[10]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[11]))=0 or string(name(@*[11]))='src' or string(name(@*[11]))='crossorigin' or string(name(@*[11]))='preload' or string(name(@*[11]))='autoplay' or string(name(@*[11]))='mediagroup' or string(name(@*[11]))='loop' or string(name(@*[11]))='muted' or string(name(@*[11]))='controls' or string(name(@*[11]))='poster' or string(name(@*[11]))='width' or string(name(@*[11]))='height' or string(name(@*[11]))='id' or string(name(@*[11]))='xml:lang' or string(name(@*[11]))='title' or string(name(@*[11]))='label' or string(name(@*[11]))='class' or string(name(@*[11]))='dir' or string(name(@*[11]))='role' or string(name(@*[11]))='aria-controls' or string(name(@*[11]))='aria-describedby' or string(name(@*[11]))='aria-flowto' or string(name(@*[11]))='aria-label' or string(name(@*[11]))='aria-labelledby' or string(name(@*[11]))='aria-level' or string(name(@*[11]))='aria-live' or string(name(@*[11]))='aria-orientation' or string(name(@*[11]))='aria-owns' or starts-with(name(@*[11]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 11] Invalid XML attribute in position 11 with name of <sch:value-of select="string(name(@*[11]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[12]))=0 or string(name(@*[12]))='src' or string(name(@*[12]))='crossorigin' or string(name(@*[12]))='preload' or string(name(@*[12]))='autoplay' or string(name(@*[12]))='mediagroup' or string(name(@*[12]))='loop' or string(name(@*[12]))='muted' or string(name(@*[12]))='controls' or string(name(@*[12]))='poster' or string(name(@*[12]))='width' or string(name(@*[12]))='height' or string(name(@*[12]))='id' or string(name(@*[12]))='xml:lang' or string(name(@*[12]))='title' or string(name(@*[12]))='label' or string(name(@*[12]))='class' or string(name(@*[12]))='dir' or string(name(@*[12]))='role' or string(name(@*[12]))='aria-controls' or string(name(@*[12]))='aria-describedby' or string(name(@*[12]))='aria-flowto' or string(name(@*[12]))='aria-label' or string(name(@*[12]))='aria-labelledby' or string(name(@*[12]))='aria-level' or string(name(@*[12]))='aria-live' or string(name(@*[12]))='aria-orientation' or string(name(@*[12]))='aria-owns' or starts-with(name(@*[12]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 12] Invalid XML attribute in position 12 with name of <sch:value-of select="string(name(@*[12]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[13]))=0 or string(name(@*[13]))='src' or string(name(@*[13]))='crossorigin' or string(name(@*[13]))='preload' or string(name(@*[13]))='autoplay' or string(name(@*[13]))='mediagroup' or string(name(@*[13]))='loop' or string(name(@*[13]))='muted' or string(name(@*[13]))='controls' or string(name(@*[13]))='poster' or string(name(@*[13]))='width' or string(name(@*[13]))='height' or string(name(@*[13]))='id' or string(name(@*[13]))='xml:lang' or string(name(@*[13]))='title' or string(name(@*[13]))='label' or string(name(@*[13]))='class' or string(name(@*[13]))='dir' or string(name(@*[13]))='role' or string(name(@*[13]))='aria-controls' or string(name(@*[13]))='aria-describedby' or string(name(@*[13]))='aria-flowto' or string(name(@*[13]))='aria-label' or string(name(@*[13]))='aria-labelledby' or string(name(@*[13]))='aria-level' or string(name(@*[13]))='aria-live' or string(name(@*[13]))='aria-orientation' or string(name(@*[13]))='aria-owns' or starts-with(name(@*[13]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 13] Invalid XML attribute in position 13 with name of <sch:value-of select="string(name(@*[13]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[14]))=0 or string(name(@*[14]))='src' or string(name(@*[14]))='crossorigin' or string(name(@*[14]))='preload' or string(name(@*[14]))='autoplay' or string(name(@*[14]))='mediagroup' or string(name(@*[14]))='loop' or string(name(@*[14]))='muted' or string(name(@*[14]))='controls' or string(name(@*[14]))='poster' or string(name(@*[14]))='width' or string(name(@*[14]))='height' or string(name(@*[14]))='id' or string(name(@*[14]))='xml:lang' or string(name(@*[14]))='title' or string(name(@*[14]))='label' or string(name(@*[14]))='class' or string(name(@*[14]))='dir' or string(name(@*[14]))='role' or string(name(@*[14]))='aria-controls' or string(name(@*[14]))='aria-describedby' or string(name(@*[14]))='aria-flowto' or string(name(@*[14]))='aria-label' or string(name(@*[14]))='aria-labelledby' or string(name(@*[14]))='aria-level' or string(name(@*[14]))='aria-live' or string(name(@*[14]))='aria-orientation' or string(name(@*[14]))='aria-owns' or starts-with(name(@*[14]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 14] Invalid XML attribute in position 14 with name of <sch:value-of select="string(name(@*[14]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[15]))=0 or string(name(@*[15]))='src' or string(name(@*[15]))='crossorigin' or string(name(@*[15]))='preload' or string(name(@*[15]))='autoplay' or string(name(@*[15]))='mediagroup' or string(name(@*[15]))='loop' or string(name(@*[15]))='muted' or string(name(@*[15]))='controls' or string(name(@*[15]))='poster' or string(name(@*[15]))='width' or string(name(@*[15]))='height' or string(name(@*[15]))='id' or string(name(@*[15]))='xml:lang' or string(name(@*[15]))='title' or string(name(@*[15]))='label' or string(name(@*[15]))='class' or string(name(@*[15]))='dir' or string(name(@*[15]))='role' or string(name(@*[15]))='aria-controls' or string(name(@*[15]))='aria-describedby' or string(name(@*[15]))='aria-flowto' or string(name(@*[15]))='aria-label' or string(name(@*[15]))='aria-labelledby' or string(name(@*[15]))='aria-level' or string(name(@*[15]))='aria-live' or string(name(@*[15]))='aria-orientation' or string(name(@*[15]))='aria-owns' or starts-with(name(@*[15]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 15] Invalid XML attribute in position 15 with name of <sch:value-of select="string(name(@*[15]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[16]))=0 or string(name(@*[16]))='src' or string(name(@*[16]))='crossorigin' or string(name(@*[16]))='preload' or string(name(@*[16]))='autoplay' or string(name(@*[16]))='mediagroup' or string(name(@*[16]))='loop' or string(name(@*[16]))='muted' or string(name(@*[16]))='controls' or string(name(@*[16]))='poster' or string(name(@*[16]))='width' or string(name(@*[16]))='height' or string(name(@*[16]))='id' or string(name(@*[16]))='xml:lang' or string(name(@*[16]))='title' or string(name(@*[16]))='label' or string(name(@*[16]))='class' or string(name(@*[16]))='dir' or string(name(@*[16]))='role' or string(name(@*[16]))='aria-controls' or string(name(@*[16]))='aria-describedby' or string(name(@*[16]))='aria-flowto' or string(name(@*[16]))='aria-label' or string(name(@*[16]))='aria-labelledby' or string(name(@*[16]))='aria-level' or string(name(@*[16]))='aria-live' or string(name(@*[16]))='aria-orientation' or string(name(@*[16]))='aria-owns' or starts-with(name(@*[16]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 16] Invalid XML attribute in position 16 with name of <sch:value-of select="string(name(@*[16]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[17]))=0 or string(name(@*[17]))='src' or string(name(@*[17]))='crossorigin' or string(name(@*[17]))='preload' or string(name(@*[17]))='autoplay' or string(name(@*[17]))='mediagroup' or string(name(@*[17]))='loop' or string(name(@*[17]))='muted' or string(name(@*[17]))='controls' or string(name(@*[17]))='poster' or string(name(@*[17]))='width' or string(name(@*[17]))='height' or string(name(@*[17]))='id' or string(name(@*[17]))='xml:lang' or string(name(@*[17]))='title' or string(name(@*[17]))='label' or string(name(@*[17]))='class' or string(name(@*[17]))='dir' or string(name(@*[17]))='role' or string(name(@*[17]))='aria-controls' or string(name(@*[17]))='aria-describedby' or string(name(@*[17]))='aria-flowto' or string(name(@*[17]))='aria-label' or string(name(@*[17]))='aria-labelledby' or string(name(@*[17]))='aria-level' or string(name(@*[17]))='aria-live' or string(name(@*[17]))='aria-orientation' or string(name(@*[17]))='aria-owns' or starts-with(name(@*[17]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 17] Invalid XML attribute in position 17 with name of <sch:value-of select="string(name(@*[17]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[18]))=0 or string(name(@*[18]))='src' or string(name(@*[18]))='crossorigin' or string(name(@*[18]))='preload' or string(name(@*[18]))='autoplay' or string(name(@*[18]))='mediagroup' or string(name(@*[18]))='loop' or string(name(@*[18]))='muted' or string(name(@*[18]))='controls' or string(name(@*[18]))='poster' or string(name(@*[18]))='width' or string(name(@*[18]))='height' or string(name(@*[18]))='id' or string(name(@*[18]))='xml:lang' or string(name(@*[18]))='title' or string(name(@*[18]))='label' or string(name(@*[18]))='class' or string(name(@*[18]))='dir' or string(name(@*[18]))='role' or string(name(@*[18]))='aria-controls' or string(name(@*[18]))='aria-describedby' or string(name(@*[18]))='aria-flowto' or string(name(@*[18]))='aria-label' or string(name(@*[18]))='aria-labelledby' or string(name(@*[18]))='aria-level' or string(name(@*[18]))='aria-live' or string(name(@*[18]))='aria-orientation' or string(name(@*[18]))='aria-owns' or starts-with(name(@*[18]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 18] Invalid XML attribute in position 18 with name of <sch:value-of select="string(name(@*[18]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[19]))=0 or string(name(@*[19]))='src' or string(name(@*[19]))='crossorigin' or string(name(@*[19]))='preload' or string(name(@*[19]))='autoplay' or string(name(@*[19]))='mediagroup' or string(name(@*[19]))='loop' or string(name(@*[19]))='muted' or string(name(@*[19]))='controls' or string(name(@*[19]))='poster' or string(name(@*[19]))='width' or string(name(@*[19]))='height' or string(name(@*[19]))='id' or string(name(@*[19]))='xml:lang' or string(name(@*[19]))='title' or string(name(@*[19]))='label' or string(name(@*[19]))='class' or string(name(@*[19]))='dir' or string(name(@*[19]))='role' or string(name(@*[19]))='aria-controls' or string(name(@*[19]))='aria-describedby' or string(name(@*[19]))='aria-flowto' or string(name(@*[19]))='aria-label' or string(name(@*[19]))='aria-labelledby' or string(name(@*[19]))='aria-level' or string(name(@*[19]))='aria-live' or string(name(@*[19]))='aria-orientation' or string(name(@*[19]))='aria-owns' or starts-with(name(@*[19]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 19] Invalid XML attribute in position 19 with name of <sch:value-of select="string(name(@*[19]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[20]))=0 or string(name(@*[20]))='src' or string(name(@*[20]))='crossorigin' or string(name(@*[20]))='preload' or string(name(@*[20]))='autoplay' or string(name(@*[20]))='mediagroup' or string(name(@*[20]))='loop' or string(name(@*[20]))='muted' or string(name(@*[20]))='controls' or string(name(@*[20]))='poster' or string(name(@*[20]))='width' or string(name(@*[20]))='height' or string(name(@*[20]))='id' or string(name(@*[20]))='xml:lang' or string(name(@*[20]))='title' or string(name(@*[20]))='label' or string(name(@*[20]))='class' or string(name(@*[20]))='dir' or string(name(@*[20]))='role' or string(name(@*[20]))='aria-controls' or string(name(@*[20]))='aria-describedby' or string(name(@*[20]))='aria-flowto' or string(name(@*[20]))='aria-label' or string(name(@*[20]))='aria-labelledby' or string(name(@*[20]))='aria-level' or string(name(@*[20]))='aria-live' or string(name(@*[20]))='aria-orientation' or string(name(@*[20]))='aria-owns' or starts-with(name(@*[20]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 20] Invalid XML attribute in position 20 with name of <sch:value-of select="string(name(@*[20]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[21]))=0 or string(name(@*[21]))='src' or string(name(@*[21]))='crossorigin' or string(name(@*[21]))='preload' or string(name(@*[21]))='autoplay' or string(name(@*[21]))='mediagroup' or string(name(@*[21]))='loop' or string(name(@*[21]))='muted' or string(name(@*[21]))='controls' or string(name(@*[21]))='poster' or string(name(@*[21]))='width' or string(name(@*[21]))='height' or string(name(@*[21]))='id' or string(name(@*[21]))='xml:lang' or string(name(@*[21]))='title' or string(name(@*[21]))='label' or string(name(@*[21]))='class' or string(name(@*[21]))='dir' or string(name(@*[21]))='role' or string(name(@*[21]))='aria-controls' or string(name(@*[21]))='aria-describedby' or string(name(@*[21]))='aria-flowto' or string(name(@*[21]))='aria-label' or string(name(@*[21]))='aria-labelledby' or string(name(@*[21]))='aria-level' or string(name(@*[21]))='aria-live' or string(name(@*[21]))='aria-orientation' or string(name(@*[21]))='aria-owns' or starts-with(name(@*[21]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 21] Invalid XML attribute in position 21 with name of <sch:value-of select="string(name(@*[21]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[22]))=0 or string(name(@*[22]))='src' or string(name(@*[22]))='crossorigin' or string(name(@*[22]))='preload' or string(name(@*[22]))='autoplay' or string(name(@*[22]))='mediagroup' or string(name(@*[22]))='loop' or string(name(@*[22]))='muted' or string(name(@*[22]))='controls' or string(name(@*[22]))='poster' or string(name(@*[22]))='width' or string(name(@*[22]))='height' or string(name(@*[22]))='id' or string(name(@*[22]))='xml:lang' or string(name(@*[22]))='title' or string(name(@*[22]))='label' or string(name(@*[22]))='class' or string(name(@*[22]))='dir' or string(name(@*[22]))='role' or string(name(@*[22]))='aria-controls' or string(name(@*[22]))='aria-describedby' or string(name(@*[22]))='aria-flowto' or string(name(@*[22]))='aria-label' or string(name(@*[22]))='aria-labelledby' or string(name(@*[22]))='aria-level' or string(name(@*[22]))='aria-live' or string(name(@*[22]))='aria-orientation' or string(name(@*[22]))='aria-owns' or starts-with(name(@*[22]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 22] Invalid XML attribute in position 22 with name of <sch:value-of select="string(name(@*[22]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[23]))=0 or string(name(@*[23]))='src' or string(name(@*[23]))='crossorigin' or string(name(@*[23]))='preload' or string(name(@*[23]))='autoplay' or string(name(@*[23]))='mediagroup' or string(name(@*[23]))='loop' or string(name(@*[23]))='muted' or string(name(@*[23]))='controls' or string(name(@*[23]))='poster' or string(name(@*[23]))='width' or string(name(@*[23]))='height' or string(name(@*[23]))='id' or string(name(@*[23]))='xml:lang' or string(name(@*[23]))='title' or string(name(@*[23]))='label' or string(name(@*[23]))='class' or string(name(@*[23]))='dir' or string(name(@*[23]))='role' or string(name(@*[23]))='aria-controls' or string(name(@*[23]))='aria-describedby' or string(name(@*[23]))='aria-flowto' or string(name(@*[23]))='aria-label' or string(name(@*[23]))='aria-labelledby' or string(name(@*[23]))='aria-level' or string(name(@*[23]))='aria-live' or string(name(@*[23]))='aria-orientation' or string(name(@*[23]))='aria-owns' or starts-with(name(@*[23]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 23] Invalid XML attribute in position 23 with name of <sch:value-of select="string(name(@*[23]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[24]))=0 or string(name(@*[24]))='src' or string(name(@*[24]))='crossorigin' or string(name(@*[24]))='preload' or string(name(@*[24]))='autoplay' or string(name(@*[24]))='mediagroup' or string(name(@*[24]))='loop' or string(name(@*[24]))='muted' or string(name(@*[24]))='controls' or string(name(@*[24]))='poster' or string(name(@*[24]))='width' or string(name(@*[24]))='height' or string(name(@*[24]))='id' or string(name(@*[24]))='xml:lang' or string(name(@*[24]))='title' or string(name(@*[24]))='label' or string(name(@*[24]))='class' or string(name(@*[24]))='dir' or string(name(@*[24]))='role' or string(name(@*[24]))='aria-controls' or string(name(@*[24]))='aria-describedby' or string(name(@*[24]))='aria-flowto' or string(name(@*[24]))='aria-label' or string(name(@*[24]))='aria-labelledby' or string(name(@*[24]))='aria-level' or string(name(@*[24]))='aria-live' or string(name(@*[24]))='aria-orientation' or string(name(@*[24]))='aria-owns' or starts-with(name(@*[24]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 24] Invalid XML attribute in position 24 with name of <sch:value-of select="string(name(@*[24]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[25]))=0 or string(name(@*[25]))='src' or string(name(@*[25]))='crossorigin' or string(name(@*[25]))='preload' or string(name(@*[25]))='autoplay' or string(name(@*[25]))='mediagroup' or string(name(@*[25]))='loop' or string(name(@*[25]))='muted' or string(name(@*[25]))='controls' or string(name(@*[25]))='poster' or string(name(@*[25]))='width' or string(name(@*[25]))='height' or string(name(@*[25]))='id' or string(name(@*[25]))='xml:lang' or string(name(@*[25]))='title' or string(name(@*[25]))='label' or string(name(@*[25]))='class' or string(name(@*[25]))='dir' or string(name(@*[25]))='role' or string(name(@*[25]))='aria-controls' or string(name(@*[25]))='aria-describedby' or string(name(@*[25]))='aria-flowto' or string(name(@*[25]))='aria-label' or string(name(@*[25]))='aria-labelledby' or string(name(@*[25]))='aria-level' or string(name(@*[25]))='aria-live' or string(name(@*[25]))='aria-orientation' or string(name(@*[25]))='aria-owns' or starts-with(name(@*[25]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 25] Invalid XML attribute in position 25 with name of <sch:value-of select="string(name(@*[25]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[26]))=0 or string(name(@*[26]))='src' or string(name(@*[26]))='crossorigin' or string(name(@*[26]))='preload' or string(name(@*[26]))='autoplay' or string(name(@*[26]))='mediagroup' or string(name(@*[26]))='loop' or string(name(@*[26]))='muted' or string(name(@*[26]))='controls' or string(name(@*[26]))='poster' or string(name(@*[26]))='width' or string(name(@*[26]))='height' or string(name(@*[26]))='id' or string(name(@*[26]))='xml:lang' or string(name(@*[26]))='title' or string(name(@*[26]))='label' or string(name(@*[26]))='class' or string(name(@*[26]))='dir' or string(name(@*[26]))='role' or string(name(@*[26]))='aria-controls' or string(name(@*[26]))='aria-describedby' or string(name(@*[26]))='aria-flowto' or string(name(@*[26]))='aria-label' or string(name(@*[26]))='aria-labelledby' or string(name(@*[26]))='aria-level' or string(name(@*[26]))='aria-live' or string(name(@*[26]))='aria-orientation' or string(name(@*[26]))='aria-owns' or starts-with(name(@*[26]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 26] Invalid XML attribute in position 26 with name of <sch:value-of select="string(name(@*[26]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[27]))=0 or string(name(@*[27]))='src' or string(name(@*[27]))='crossorigin' or string(name(@*[27]))='preload' or string(name(@*[27]))='autoplay' or string(name(@*[27]))='mediagroup' or string(name(@*[27]))='loop' or string(name(@*[27]))='muted' or string(name(@*[27]))='controls' or string(name(@*[27]))='poster' or string(name(@*[27]))='width' or string(name(@*[27]))='height' or string(name(@*[27]))='id' or string(name(@*[27]))='xml:lang' or string(name(@*[27]))='title' or string(name(@*[27]))='label' or string(name(@*[27]))='class' or string(name(@*[27]))='dir' or string(name(@*[27]))='role' or string(name(@*[27]))='aria-controls' or string(name(@*[27]))='aria-describedby' or string(name(@*[27]))='aria-flowto' or string(name(@*[27]))='aria-label' or string(name(@*[27]))='aria-labelledby' or string(name(@*[27]))='aria-level' or string(name(@*[27]))='aria-live' or string(name(@*[27]))='aria-orientation' or string(name(@*[27]))='aria-owns' or starts-with(name(@*[27]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 27] Invalid XML attribute in position 27 with name of <sch:value-of select="string(name(@*[27]))" />.
                        </sch:assert>
                        <sch:assert test="string-length(name(@*[28]))=0 or string(name(@*[28]))='src' or string(name(@*[28]))='crossorigin' or string(name(@*[28]))='preload' or string(name(@*[28]))='autoplay' or string(name(@*[28]))='mediagroup' or string(name(@*[28]))='loop' or string(name(@*[28]))='muted' or string(name(@*[28]))='controls' or string(name(@*[28]))='poster' or string(name(@*[28]))='width' or string(name(@*[28]))='height' or string(name(@*[28]))='id' or string(name(@*[28]))='xml:lang' or string(name(@*[28]))='title' or string(name(@*[28]))='label' or string(name(@*[28]))='class' or string(name(@*[28]))='dir' or string(name(@*[28]))='role' or string(name(@*[28]))='aria-controls' or string(name(@*[28]))='aria-describedby' or string(name(@*[28]))='aria-flowto' or string(name(@*[28]))='aria-label' or string(name(@*[28]))='aria-labelledby' or string(name(@*[28]))='aria-level' or string(name(@*[28]))='aria-live' or string(name(@*[28]))='aria-orientation' or string(name(@*[28]))='aria-owns' or starts-with(name(@*[28]), 'data-')">
                            [RULE ROOT ELEMENT (video): Assertion 28] Invalid XML attribute in position 28 with name of <sch:value-of select="string(name(@*[28]))" />.
                        </sch:assert>
                    </sch:rule>

                </sch:pattern>
                <!-- RULESET ******************************************************************* -->

            </xs:appinfo>
        </xs:annotation>

        <xs:annotation>
            <xs:documentation>
                Definition of Schematron Validation Rules
                =========================================
                Author:         Colin Smythe (IMS Global, UK) and Mark McKell (IMS Global, USA)
                Date:           1st September, 2015
                Version:        1.0
                Status:         Final Release

                Description:    The set of Schematron Rules to further enforce the HTML5 features in the QTIv2.2 Information Model. The rule sets that have been defined are:

                                [RULE_SET_GENERAL] Ensure the figcaption element positioning within the figure element.

                                RULE_SET_GENERAL: Ensure the figcaption element positioning within the figure element. The set of rules are:-
                                * RULE GENERAL 1-Assertion 1 :- The figcaption must be either the first or last element in the contained sequence.

                History:        The first set of of schematron rules for the IMS QTIv2.2 specification.

            </xs:documentation>

            <xs:appinfo>
                <sch:ns uri="http://www.imsglobal.org/xsd/imsqtiv2p2_html5_v1p0" prefix="qh5" />
                <sch:title>Schematron Validation Rules for the HTML5 Features in the QTIv2.2 Specification.</sch:title>

                <!-- RULESET ******************************************************************* -->
                <sch:pattern abstract="false" id="RULE_SET_GENERAL">
                    <sch:title>Ensure the figcaption element positioning within the figure element.</sch:title>

                    <sch:rule abstract="false" context="//qh5:figure">
                        <sch:assert test="qh5:figcaption[position()=1 or position()=last()]">
                            [RULE GENERAL 1: Assertion 1] The figcaption must be either the first or last element in the contained sequence.<sch:value-of select="concat('The Figure identifier is: ', @id)" />
                        </sch:assert>
                    </sch:rule>

                </sch:pattern>
                <!-- *************************************************************************** -->

            </xs:appinfo>
        </xs:annotation>

        <!-- Generate Global Attributes (non-assigned) ******************************************************** -->

        <!-- ================================================================================================== -->

        <!-- Generate Global Attributes *********************************************************************** -->

        <xs:attributeGroup name="autoplay.Audio.Attr">
            <xs:attribute name="autoplay" use="optional" type="xs:boolean" />
        </xs:attributeGroup>

        <xs:attributeGroup name="controls.Audio.Attr">
            <xs:attribute name="controls" use="optional" type="xs:boolean" />
        </xs:attributeGroup>

        <xs:attributeGroup name="crossorigin.Audio.Attr">
            <xs:attribute name="crossorigin" use="optional">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="anonymous" />
                        <xs:enumeration value="use-credentials" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>

        <xs:attributeGroup name="loop.Audio.Attr">
            <xs:attribute name="loop" use="optional" type="xs:boolean" />
        </xs:attributeGroup>

        <xs:attributeGroup name="mediagroup.Audio.Attr">
            <xs:attribute name="mediagroup" use="optional" type="xs:normalizedString" />
        </xs:attributeGroup>

        <xs:attributeGroup name="muted.Audio.Attr">
            <xs:attribute name="muted" use="optional" type="xs:boolean" />
        </xs:attributeGroup>

        <xs:attributeGroup name="preload.Audio.Attr">
            <xs:attribute name="preload" use="optional" default="metadata">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="none" />
                        <xs:enumeration value="auto" />
                        <xs:enumeration value="metadata" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>

        <xs:attributeGroup name="src.Audio.Attr">
            <xs:attribute name="src" use="optional" type="URL.Type" />
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-controls.BaseHTML5.Attr">
            <xs:attribute name="aria-controls" use="optional" type="xs:IDREFS" />
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-describedby.BaseHTML5.Attr">
            <xs:attribute name="aria-describedby" use="optional" type="xs:IDREFS" />
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-flowto.BaseHTML5.Attr">
            <xs:attribute name="aria-flowto" use="optional" type="xs:IDREFS" />
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-label.BaseHTML5.Attr">
            <xs:attribute name="aria-label" use="optional" type="xs:normalizedString" />
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-labelledby.BaseHTML5.Attr">
            <xs:attribute name="aria-labelledby" use="optional" type="xs:IDREFS" />
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-level.BaseHTML5.Attr">
            <xs:attribute name="aria-level" use="optional" type="AriaLevelInteger.Type" />
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-live.BaseHTML5.Attr">
            <xs:attribute name="aria-live" use="optional" default="off">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="off" />
                        <xs:enumeration value="polite" />
                        <xs:enumeration value="assertive" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-orientation.BaseHTML5.Attr">
            <xs:attribute name="aria-orientation" use="optional" default="horizontal">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="vertical" />
                        <xs:enumeration value="horizontal" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-owns.BaseHTML5.Attr">
            <xs:attribute name="aria-owns" use="optional" type="xs:IDREFS" />
        </xs:attributeGroup>

        <xs:attributeGroup name="class.BaseHTML5.Attr">
            <xs:attribute name="class" use="optional">
                <xs:simpleType>
                    <xs:list itemType="StringList.Type" />
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>

        <xs:attributeGroup name="dataExtension.BaseHTML5.Attr">
            <xs:anyAttribute namespace = "##any" processContents = "lax" />
        </xs:attributeGroup>

        <xs:attributeGroup name="dir.BaseHTML5.Attr">
            <xs:attribute name="dir" use="optional" default="auto">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="ltr" />
                        <xs:enumeration value="rtl" />
                        <xs:enumeration value="auto" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>

        <xs:attributeGroup name="id.BaseHTML5.Attr">
            <xs:attribute name="id" use="optional" type="UniqueIdentifier.Type" />
        </xs:attributeGroup>

        <xs:attributeGroup name="label.BaseHTML5.Attr">
            <xs:attribute name="label" use="optional" type="xs:normalizedString" />
        </xs:attributeGroup>

        <xs:attributeGroup name="language.BaseHTML5.Attr">
            <xs:attribute ref="xml:lang" use="optional" />
        </xs:attributeGroup>

        <xs:attributeGroup name="role.BaseHTML5.Attr">
            <xs:attribute name="role" use="optional">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="article" />
                        <xs:enumeration value="columnheader" />
                        <xs:enumeration value="definition" />
                        <xs:enumeration value="directory" />
                        <xs:enumeration value="document" />
                        <xs:enumeration value="group" />
                        <xs:enumeration value="heading" />
                        <xs:enumeration value="img" />
                        <xs:enumeration value="list" />
                        <xs:enumeration value="listitem" />
                        <xs:enumeration value="math" />
                        <xs:enumeration value="note" />
                        <xs:enumeration value="presentation" />
                        <xs:enumeration value="region" />
                        <xs:enumeration value="row" />
                        <xs:enumeration value="rowgroup" />
                        <xs:enumeration value="rowheader" />
                        <xs:enumeration value="separator" />
                        <xs:enumeration value="toolbar" />
                        <xs:enumeration value="button" />
                        <xs:enumeration value="checkbox" />
                        <xs:enumeration value="gridcell" />
                        <xs:enumeration value="link" />
                        <xs:enumeration value="log" />
                        <xs:enumeration value="option" />
                        <xs:enumeration value="radio" />
                        <xs:enumeration value="slider" />
                        <xs:enumeration value="spinbutton" />
                        <xs:enumeration value="status" />
                        <xs:enumeration value="tab" />
                        <xs:enumeration value="tabpanel" />
                        <xs:enumeration value="textbox" />
                        <xs:enumeration value="timer" />
                        <xs:enumeration value="listbox" />
                        <xs:enumeration value="radiogroup" />
                        <xs:enumeration value="tablist" />
                        <xs:enumeration value="complementary" />
                        <xs:enumeration value="contentinfo" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>

        <xs:attributeGroup name="title.BaseHTML5.Attr">
            <xs:attribute name="title" use="optional" type="xs:normalizedString" />
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-controls.BaseHTML5Empty.Attr">
            <xs:attribute name="aria-controls" use="optional" type="xs:IDREFS" />
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-describedby.BaseHTML5Empty.Attr">
            <xs:attribute name="aria-describedby" use="optional" type="xs:IDREFS" />
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-flowto.BaseHTML5Empty.Attr">
            <xs:attribute name="aria-flowto" use="optional" type="xs:IDREFS" />
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-label.BaseHTML5Empty.Attr">
            <xs:attribute name="aria-label" use="optional" type="xs:normalizedString" />
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-labelledby.BaseHTML5Empty.Attr">
            <xs:attribute name="aria-labelledby" use="optional" type="xs:IDREFS" />
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-level.BaseHTML5Empty.Attr">
            <xs:attribute name="aria-level" use="optional" type="AriaLevelInteger.Type" />
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-live.BaseHTML5Empty.Attr">
            <xs:attribute name="aria-live" use="optional" default="off">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="off" />
                        <xs:enumeration value="polite" />
                        <xs:enumeration value="assertive" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-orientation.BaseHTML5Empty.Attr">
            <xs:attribute name="aria-orientation" use="optional" default="horizontal">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="vertical" />
                        <xs:enumeration value="horizontal" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>

        <xs:attributeGroup name="aria-owns.BaseHTML5Empty.Attr">
            <xs:attribute name="aria-owns" use="optional" type="xs:IDREFS" />
        </xs:attributeGroup>

        <xs:attributeGroup name="class.BaseHTML5Empty.Attr">
            <xs:attribute name="class" use="optional">
                <xs:simpleType>
                    <xs:list itemType="StringList.Type" />
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>

        <xs:attributeGroup name="dataExtension.BaseHTML5Empty.Attr">
            <xs:anyAttribute namespace = "##any" processContents = "lax" />
        </xs:attributeGroup>

        <xs:attributeGroup name="dir.BaseHTML5Empty.Attr">
            <xs:attribute name="dir" use="optional" default="auto">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="ltr" />
                        <xs:enumeration value="rtl" />
                        <xs:enumeration value="auto" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>

        <xs:attributeGroup name="id.BaseHTML5Empty.Attr">
            <xs:attribute name="id" use="optional" type="UniqueIdentifier.Type" />
        </xs:attributeGroup>

        <xs:attributeGroup name="label.BaseHTML5Empty.Attr">
            <xs:attribute name="label" use="optional" type="xs:normalizedString" />
        </xs:attributeGroup>

        <xs:attributeGroup name="language.BaseHTML5Empty.Attr">
            <xs:attribute ref="xml:lang" use="optional" />
        </xs:attributeGroup>

        <xs:attributeGroup name="role.BaseHTML5Empty.Attr">
            <xs:attribute name="role" use="optional">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="article" />
                        <xs:enumeration value="columnheader" />
                        <xs:enumeration value="definition" />
                        <xs:enumeration value="directory" />
                        <xs:enumeration value="document" />
                        <xs:enumeration value="group" />
                        <xs:enumeration value="heading" />
                        <xs:enumeration value="img" />
                        <xs:enumeration value="list" />
                        <xs:enumeration value="listitem" />
                        <xs:enumeration value="math" />
                        <xs:enumeration value="note" />
                        <xs:enumeration value="presentation" />
                        <xs:enumeration value="region" />
                        <xs:enumeration value="row" />
                        <xs:enumeration value="rowgroup" />
                        <xs:enumeration value="rowheader" />
                        <xs:enumeration value="separator" />
                        <xs:enumeration value="toolbar" />
                        <xs:enumeration value="button" />
                        <xs:enumeration value="checkbox" />
                        <xs:enumeration value="gridcell" />
                        <xs:enumeration value="link" />
                        <xs:enumeration value="log" />
                        <xs:enumeration value="option" />
                        <xs:enumeration value="radio" />
                        <xs:enumeration value="slider" />
                        <xs:enumeration value="spinbutton" />
                        <xs:enumeration value="status" />
                        <xs:enumeration value="tab" />
                        <xs:enumeration value="tabpanel" />
                        <xs:enumeration value="textbox" />
                        <xs:enumeration value="timer" />
                        <xs:enumeration value="listbox" />
                        <xs:enumeration value="radiogroup" />
                        <xs:enumeration value="tablist" />
                        <xs:enumeration value="complementary" />
                        <xs:enumeration value="contentinfo" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>

        <xs:attributeGroup name="title.BaseHTML5Empty.Attr">
            <xs:attribute name="title" use="optional" type="xs:normalizedString" />
        </xs:attributeGroup>

        <xs:attributeGroup name="src.Source.Attr">
            <xs:attribute name="src" use="required" type="URL.Type" />
        </xs:attributeGroup>

        <xs:attributeGroup name="type.Source.Attr">
            <xs:attribute name="type" use="optional" type="MimeType.Type" />
        </xs:attributeGroup>

        <xs:attributeGroup name="default.Track.Attr">
            <xs:attribute name="default" use="optional" type="xs:boolean" />
        </xs:attributeGroup>

        <xs:attributeGroup name="kind.Track.Attr">
            <xs:attribute name="kind" use="optional" default="subtitles">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="subtitles" />
                        <xs:enumeration value="captions" />
                        <xs:enumeration value="descriptions" />
                        <xs:enumeration value="chapters" />
                        <xs:enumeration value="metadata" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>

        <xs:attributeGroup name="src.Track.Attr">
            <xs:attribute name="src" use="required" type="URL.Type" />
        </xs:attributeGroup>

        <xs:attributeGroup name="srclang.Track.Attr">
            <xs:attribute name="srclang" use="optional" type="xs:normalizedString" />
        </xs:attributeGroup>

        <xs:attributeGroup name="autoplay.Video.Attr">
            <xs:attribute name="autoplay" use="optional" type="xs:boolean" />
        </xs:attributeGroup>

        <xs:attributeGroup name="controls.Video.Attr">
            <xs:attribute name="controls" use="optional" type="xs:boolean" />
        </xs:attributeGroup>

        <xs:attributeGroup name="crossorigin.Video.Attr">
            <xs:attribute name="crossorigin" use="optional">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="anonymous" />
                        <xs:enumeration value="use-credentials" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>

        <xs:attributeGroup name="height.Video.Attr">
            <xs:attribute name="height" use="optional" type="xs:nonNegativeInteger" />
        </xs:attributeGroup>

        <xs:attributeGroup name="loop.Video.Attr">
            <xs:attribute name="loop" use="optional" type="xs:boolean" />
        </xs:attributeGroup>

        <xs:attributeGroup name="mediagroup.Video.Attr">
            <xs:attribute name="mediagroup" use="optional" type="xs:normalizedString" />
        </xs:attributeGroup>

        <xs:attributeGroup name="muted.Video.Attr">
            <xs:attribute name="muted" use="optional" type="xs:boolean" />
        </xs:attributeGroup>

        <xs:attributeGroup name="poster.Video.Attr">
            <xs:attribute name="poster" use="optional" type="URL.Type" />
        </xs:attributeGroup>

        <xs:attributeGroup name="preload.Video.Attr">
            <xs:attribute name="preload" use="optional" default="metadata">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="none" />
                        <xs:enumeration value="auto" />
                        <xs:enumeration value="metadata" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>

        <xs:attributeGroup name="src.Video.Attr">
            <xs:attribute name="src" use="optional" type="URL.Type" />
        </xs:attributeGroup>

        <xs:attributeGroup name="width.Video.Attr">
            <xs:attribute name="width" use="optional" type="xs:nonNegativeInteger" />
        </xs:attributeGroup>

        <!-- ================================================================================================== -->

        <!-- Generate Global List Types *********************************************************************** -->

        <xs:simpleType name="StringList.Type">
            <xs:restriction base="xs:string" />
        </xs:simpleType>

        <!-- ================================================================================================== -->

        <!-- Generate Namespaced extension Group  ************************************************************* -->

        <!-- ================================================================================================== -->

        <!-- Generate Special DataTypes  ********************************************************************** -->

        <xs:complexType name="EmptyPrimitiveType.Type">
            <xs:complexContent>
                <xs:restriction base="xs:anyType" />
            </xs:complexContent>
        </xs:complexType>

        <!-- ================================================================================================== -->

        <!-- Generate the enumerated simpleType declarations ************************************************** -->

        <!-- ================================================================================================== -->

        <!-- Generate the simpleType elements based on IMS data-types (Parameter) ***************************** -->

        <!-- ================================================================================================== -->

        <!-- Generate the simpleType elements based on IMS data-types (Derived) ******************************* -->

        <!-- ================================================================================================== -->

        <!-- Generate the simpleType elements based on IMS data-types (Union) ********************************* -->

        <!-- ================================================================================================== -->

        <!-- Generate the simpleType elements based on IMS data-types (Complex) ******************************* -->

        <!-- ================================================================================================== -->

        <!-- Generate the derived data-type elements based upon simpleType ************************************ -->

        <xs:simpleType name="AriaLevelInteger.Type">
            <xs:restriction base="xs:integer">
                <xs:minInclusive value="1" />
            </xs:restriction>
        </xs:simpleType>

        <xs:simpleType name="MimeType.Type">
            <xs:restriction base="xs:normalizedString">
                <xs:pattern value="[\p{IsBasicLatin}-[()<>@,;:\\"/\[\]?=]]+/[\p{IsBasicLatin}-[()<>@,;:\\"/\[\]?=]]+" />
            </xs:restriction>
        </xs:simpleType>

        <xs:simpleType name="URL.Type">
            <xs:restriction base="xs:normalizedString" />
        </xs:simpleType>

        <xs:simpleType name="UniqueIdentifier.Type">
            <xs:restriction base="xs:ID" />
        </xs:simpleType>

        <!-- ================================================================================================== -->

        <!-- Generate the derived data-type elements based upon derived simpleType **************************** -->

        <!-- ================================================================================================== -->

        <!-- Generate the ComplexTypes ************************************************************************ -->

        <xs:complexType name="Article.Type" abstract="false" mixed="true">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This defines the permitted content for the HTML5 'article' tag. The article tag represents
                    a complete, or self-contained, composition in a document, page, application, or site and
                    that is, in principle, independently distributable or reusable, e.g. in syndication. This
                    could be a forum post, a magazine or newspaper article, a blog entry, a user-submitted co-
                    mment, an interactive widget or gadget, or any other independent item of content. When ar-
                    ticle tags are nested, the inner article tags represent articles that are in principle re-
                    lated to the contents of the outer article. For instance, a blog entry on a site that acc-
                    epts user-submitted comments could represent the comments as article elements nested with-
                    in the article tag for the blog entry. Author information associated with an article tag
                    (q.v. the address tag) does not apply to nested article tags.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                    <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                                </xs:choice>
                                <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="Aside.Type" abstract="false" mixed="true">
            <xs:annotation>
                <xs:documentation source="documentation">
                     This defines the permitted content for the HTML5 'aside' tag. The aside tag represents a
                    section of a page that consists of content that is tangentially related to the content ar-
                    ound the aside tag, and which could be considered separate from that content. Such sectio-
                    ns are often represented as sidebars in printed typography. The tag can be used for typog-
                    raphical effects like pull quotes or sidebars, for advertising, for groups of nav tags, a-
                    nd for other content that is considered separate from the main content of the page.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                    <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                                </xs:choice>
                                <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="Audio.Type" abstract="false" mixed="false">
            <xs:annotation>
                <xs:documentation source="documentation">
                    The 'audio' tag is an HTML5 feature. An audio tag represents a sound or audio stream. Con-
                    tent may be provided inside the audio tag. User agents should not show this content to the
                    user; it is intended for older Web browsers which do not support audio, so that legacy au-
                    dio plugins can be tried, or to show text to the users of these older browsers informing
                    them of how to access the audio contents.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:sequence>
                        <xs:element ref="source" minOccurs="0" maxOccurs="unbounded" />
                        <xs:element ref="track" minOccurs="0" maxOccurs="unbounded" />
                    </xs:sequence>
                    <xs:attributeGroup ref="src.Audio.Attr" />
                    <xs:attributeGroup ref="crossorigin.Audio.Attr" />
                    <xs:attributeGroup ref="preload.Audio.Attr" />
                    <xs:attributeGroup ref="autoplay.Audio.Attr" />
                    <xs:attributeGroup ref="mediagroup.Audio.Attr" />
                    <xs:attributeGroup ref="loop.Audio.Attr" />
                    <xs:attributeGroup ref="muted.Audio.Attr" />
                    <xs:attributeGroup ref="controls.Audio.Attr" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="BaseHTML5.Type" abstract="false" mixed="false">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This is the base class for the HTML5 features that have children. This consists of a set
                    of children characteristics.
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
            </xs:sequence>
            <xs:attributeGroup ref="id.BaseHTML5.Attr" />
            <xs:attributeGroup ref="language.BaseHTML5.Attr" />
            <xs:attributeGroup ref="title.BaseHTML5.Attr" />
            <xs:attributeGroup ref="label.BaseHTML5.Attr" />
            <xs:attributeGroup ref="class.BaseHTML5.Attr" />
            <xs:attributeGroup ref="dir.BaseHTML5.Attr" />
            <xs:attributeGroup ref="role.BaseHTML5.Attr" />
            <xs:attributeGroup ref="aria-controls.BaseHTML5.Attr" />
            <xs:attributeGroup ref="aria-describedby.BaseHTML5.Attr" />
            <xs:attributeGroup ref="aria-flowto.BaseHTML5.Attr" />
            <xs:attributeGroup ref="aria-label.BaseHTML5.Attr" />
            <xs:attributeGroup ref="aria-labelledby.BaseHTML5.Attr" />
            <xs:attributeGroup ref="aria-level.BaseHTML5.Attr" />
            <xs:attributeGroup ref="aria-live.BaseHTML5.Attr" />
            <xs:attributeGroup ref="aria-orientation.BaseHTML5.Attr" />
            <xs:attributeGroup ref="aria-owns.BaseHTML5.Attr" />
            <xs:attributeGroup ref="dataExtension.BaseHTML5.Attr" />
        </xs:complexType>

        <xs:complexType name="BDI.Type" abstract="false" mixed="true">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This defines the content for defining bidirectional content. The bdi tag represents a span
                    of text that is to be isolated from its surroundings for the purposes of bidirectional te-
                    xt formatting.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                            <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="FigCaption.Type" abstract="false" mixed="true">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This defines the permitted content for the HTML5 'figcaption' tag. The 'figcaption' eleme-
                    nt represents a caption or legend for the rest of the contents of the figcaption element's
                    parent figure element, if any.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                    <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                                </xs:choice>
                                <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="Figure.Type" abstract="false" mixed="true">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This defines the permitted content for the HTML5 'figure' tag. The 'figure' tag represents
                    some flow content, optionally with a caption, that is self-contained (like a complete sen-
                    tence) and is typically referenced as a single unit from the main flow of the document.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:choice minOccurs = "0" maxOccurs = "unbounded">
                        <xs:element ref="figcaption" minOccurs="0" maxOccurs="1" />
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                            <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                    </xs:choice>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="Footer.Type" abstract="false" mixed="true">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This defines the permitted content for the HTML5 'footer' tag. The footer tag represents a
                    footer for its nearest ancestor sectioning content or sectioning root element. A footer t-
                    ypically contains information about its section such as who wrote it, links to related do-
                    cuments, copyright data, and the like.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                    <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                                </xs:choice>
                                <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="Header.Type" abstract="false" mixed="true">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This defines the permitted content for the HTML5 'header' tag. The header tag represents
                    introductory content for its nearest ancestor sectioning content or sectioning root tag. A
                    header typically contains a group of introductory or navigational aids.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                    <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                                </xs:choice>
                                <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="Label.Type" abstract="false" mixed="true">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This defines the permitted content for the HTML5 'label' tag. The label tag represents a
                    caption in a user interface. The caption can be associated with a specific form control,
                    known as the label element's labeled control, either using the for attribute, or by putti-
                    ng the form control inside the label element itself. Except where otherwise specified by
                    the following rules, a label element has no labeled control.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                    <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                                </xs:choice>
                                <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="Nav.Type" abstract="false" mixed="true">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This defines the permitted content for the HTML5 'nav' tag. The nav tag represents a sect-
                    ion of a page that links to other pages or to parts within the page: a section with navig-
                    ation links.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                    <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                                </xs:choice>
                                <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="RB.Type" abstract="false" mixed="true">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This feature is a part of the HTML5 Ruby annotation. The rb tag marks the base text compo-
                    nent of a ruby annotation. When it is the child of a ruby tag, it doesn't represent anyth-
                    ing itself, but its parent ruby tag uses it as part of determining what it represents.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="RP.Type" abstract="false" mixed="true">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This feature is a part of the HTML5 Ruby annotation. The 'rp' tag is used to provide fall-
                    back text to be shown by user agents that don't support ruby annotations. One widespread
                    convention is to provide parentheses around the ruby text component of a ruby annotation.
                    The contents of the rp tags are typically not displayed by user agents which do support r-
                    uby annotations. An rp tag that is a child of a ruby tag represents nothing. An rp element
                    whose parent tag is not a ruby tag represents its children.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="RT.Type" abstract="false" mixed="true">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This feature is a part of the HTML5 Ruby annotation. The 'rt' tag marks the ruby text com-
                    ponent of a ruby annotation. When it is the child of a ruby tag or of an rtc tag that is
                    itself the child of a ruby tag, it doesn't represent anything itself, but its ancestor ru-
                    by tag uses it as part of determining what it represents.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="RTC.Type" abstract="false" mixed="true">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This feature is a part of the HTML5 Ruby annotation. The 'rtc' tag marks a ruby text cont-
                    ainer for ruby text components in a ruby annotation. When it is the child of a ruby tag it
                    doesn't represent anything itself, but its parent ruby tag uses it as part of determining
                    what it represents. An rtc tag that is not a child of a ruby tag represents the same thing
                    as its children.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:choice>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                        </xs:choice>
                        <xs:element ref="rt" minOccurs="0" maxOccurs="unbounded" />
                    </xs:choice>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="Ruby.Type" abstract="false" mixed="true">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This feature is a part of the HTML5 Ruby annotation. The ruby tag allows one or more spans
                    of phrasing content to be marked with ruby annotations. Ruby annotations are short runs of
                    text presented alongside base text, primarily used in East Asian typography as a guide for
                    pronunciation or to include other annotations. In Japanese, this form of typography is al-
                    so known as furigana. Ruby text can appear on either side, and sometimes both sides, of t-
                    he base text, and it is possible to control its position using CSS.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:choice minOccurs="1" maxOccurs="1">
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                    <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                                </xs:choice>
                                <xs:element ref="rb" minOccurs="0" maxOccurs="unbounded" />
                            </xs:choice>
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="rp" minOccurs="0" maxOccurs="1" />
                                <xs:choice minOccurs="1" maxOccurs="1">
                                    <xs:element ref="rt" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="rtc" minOccurs="1" maxOccurs="1" />
                                </xs:choice>
                            </xs:choice>
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="Section.Type" abstract="false" mixed="true">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This defines the permitted content for the HTML5 'section' tag. The section tag represents
                    a generic section of a document or application. A section, in this context, is a thematic
                    grouping of content. The theme of each section should be identified, typically by includi-
                    ng a heading (h1-h6 tag) as a child of the section tag.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element ref="m2:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="m3:math" minOccurs="1" maxOccurs="1" />
                            <xs:element ref="xi:include" minOccurs="1" maxOccurs="1" />
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="qti:img" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:br" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:object" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:em" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:a" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:code" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:span" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sub" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:acronym" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:big" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:tt" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:kbd" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:q" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:i" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dfn" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:abbr" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:strong" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:sup" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:var" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:small" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:samp" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:b" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:cite" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:bdo" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="bdi" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="figure" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="audio" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="video" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="label" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="article" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="aside" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="footer" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="header" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="nav" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="section" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:pre" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h1" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h2" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h3" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h4" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h5" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:h6" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:p" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:address" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:dl" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ol" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:ul" minOccurs="1" maxOccurs="1" />
                                <xs:element ref="qti:hr" minOccurs="1" maxOccurs="1" />
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                    <xs:element ref="ssml11:p" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:s" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:say-as" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:phoneme" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:sub" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:voice" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:emphasis" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:break" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:prosody" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:mark" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:audio" minOccurs="1" maxOccurs="1" />
                                    <xs:element ref="ssml11:speak" minOccurs="1" maxOccurs="1" />
                                </xs:choice>
                                <xs:element ref="ruby" minOccurs="1" maxOccurs="1" />
                            </xs:choice>
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="Source.Type" abstract="false" mixed="false">
            <xs:annotation>
                <xs:documentation source="documentation">
                    The 'source' tag is an HTML5 feature. The source tag allows authors to specify multiple a-
                    lternative media resources for media tags. It does not represent anything on its own.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5Empty.Type">
                    <xs:attributeGroup ref="src.Source.Attr" />
                    <xs:attributeGroup ref="type.Source.Attr" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="Track.Type" abstract="false" mixed="false">
            <xs:annotation>
                <xs:documentation source="documentation">
                    The 'track' tag is an HTML5 feature. The track tag allows authors to specify explicit ext-
                    ernal timed text tracks for media elements. It does not represent anything on its own.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5Empty.Type">
                    <xs:attributeGroup ref="kind.Track.Attr" />
                    <xs:attributeGroup ref="src.Track.Attr" />
                    <xs:attributeGroup ref="srclang.Track.Attr" />
                    <xs:attributeGroup ref="default.Track.Attr" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="Video.Type" abstract="false" mixed="false">
            <xs:annotation>
                <xs:documentation source="documentation">
                    The 'video' tag is an HTML5 feature. A video tag is used for playing videos or movies, and
                    audio files with captions.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="BaseHTML5.Type">
                    <xs:sequence>
                        <xs:element ref="source" minOccurs="0" maxOccurs="unbounded" />
                        <xs:element ref="track" minOccurs="0" maxOccurs="unbounded" />
                    </xs:sequence>
                    <xs:attributeGroup ref="src.Video.Attr" />
                    <xs:attributeGroup ref="crossorigin.Video.Attr" />
                    <xs:attributeGroup ref="preload.Video.Attr" />
                    <xs:attributeGroup ref="autoplay.Video.Attr" />
                    <xs:attributeGroup ref="mediagroup.Video.Attr" />
                    <xs:attributeGroup ref="loop.Video.Attr" />
                    <xs:attributeGroup ref="muted.Video.Attr" />
                    <xs:attributeGroup ref="controls.Video.Attr" />
                    <xs:attributeGroup ref="poster.Video.Attr" />
                    <xs:attributeGroup ref="width.Video.Attr" />
                    <xs:attributeGroup ref="height.Video.Attr" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <!-- ================================================================================================== -->

        <!-- Generate the SOAP Binding ComplexTypes *********************************************************** -->

        <!-- ================================================================================================== -->

        <!-- Generate the derived ComplexTypes **************************************************************** -->

        <xs:complexType name="BaseHTML5Empty.Type" abstract="false" mixed="false">
            <xs:annotation>
                <xs:documentation source="documentation">
                    This is the base class for the HTML5 features that have no children tags i.e. must be emp-
                    ty. This consists of a set of children characteristics.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="EmptyPrimitiveType.Type">
                    <xs:attributeGroup ref="id.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="language.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="title.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="label.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="class.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="dir.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="role.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="aria-controls.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="aria-describedby.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="aria-flowto.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="aria-label.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="aria-labelledby.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="aria-level.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="aria-live.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="aria-orientation.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="aria-owns.BaseHTML5Empty.Attr" />
                    <xs:attributeGroup ref="dataExtension.BaseHTML5Empty.Attr" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <!-- ================================================================================================== -->

        <!-- Declaration of the elements (Complex) ************************************************************ -->

        <!-- ================================================================================================== -->

        <!-- Declaration of the elements (Derived) ************************************************************ -->

        <!-- ================================================================================================== -->

        <!-- Declaration of the root element(s) *************************************************************** -->

        <xs:element name="article" type="Article.Type" />
        <xs:element name="aside" type="Aside.Type" />
        <xs:element name="audio" type="Audio.Type" />
        <xs:element name="bdi" type="BDI.Type" />
        <xs:element name="figcaption" type="FigCaption.Type" />
        <xs:element name="figure" type="Figure.Type" />
        <xs:element name="footer" type="Footer.Type" />
        <xs:element name="header" type="Header.Type" />
        <xs:element name="label" type="Label.Type" />
        <xs:element name="nav" type="Nav.Type" />
        <xs:element name="rb" type="RB.Type" />
        <xs:element name="rp" type="RP.Type" />
        <xs:element name="rt" type="RT.Type" />
        <xs:element name="rtc" type="RTC.Type" />
        <xs:element name="ruby" type="Ruby.Type" />
        <xs:element name="section" type="Section.Type" />
        <xs:element name="source" type="Source.Type" />
        <xs:element name="track" type="Track.Type" />
        <xs:element name="video" type="Video.Type" />

        <!-- ================================================================================================== -->

    </xs:schema>

toc | top

# About this Document

Title: | IMS Question and Test Interoperability (QTI): HTML5 Information Model and XSD Binding v2.2.1
Editors: | Colin Smythe, IMS Global (UK) Mark McKell, IMS Global (USA) Wilbert Kraan, JISC (UK)
Co-chairs: | Wilbert Kraan, JISC (UK) Tom Hoffmann, ETS (USA)
Version: | 1.0
Version Date: | 1st August, 2016
Status: | IMS Final Release
Summary: | This is the definition of the data model and the corresponding XSD binding for the HTML5 features in QTI (HTML5 capability was new functionality added in QTIv2.2). This data model defines the HTML5-based content model supported in QTI. The data model and XSD binding is described using the IMS profile of UML to support the IMS model driven specification engineering method.
Revision Information: | The first release of the IMS QTI HTML5 Information Model and XSD Binding v2.2 (new functionality added in QTIv2.2). Version 2.2.1 focused on: (a) Correction of the 'preload' attribute multiplicity (to become [0..1]) for the 'Audio' class; (b) Replace the use of the 'ElementIDList' class with the 'IDREFS' primitiveType and delete the 'ElementIDList' class; (c) The import to the QTIv2.2 XSD has been changed to QTIv2.2.1 XSD; (d) The schematron rules for the extensions of the 'language' and 'base' characterisics have been corrected to refer to 'xml:lang' and 'xml:base' respectively.
Purpose: | This document is made available for adoption by the public community at large.
Document Location: | IMS Public Website (Standards Download): www.imsglobal.org/question

toc | top

## List of Contributors

The following individuals contributed to the development of this document:

Michael Aumock | Pacific Metrics (USA)
Jerome Bogaerts | O.A.T. (Luxemburgh)
Marty Christensen | ACT (USA)
Jason Craft | Pearson (USA)
Gary Driscoll | ETS (USA)
Gaye Fedorachak | ACT (USA)
Greg Gaspard | Pearson (USA)
Mark Hakkinen | ETS (USA)
Regina Hoag | ETS (USA)
Tom Hoffmann | ETS (USA)
Rob Howard | NWEA (USA)
Wilbert Kraan | JISC (UK)
Justin Marks | NWEA (USA)
Phil McClelland | Desire2Learn (Canada)
Mark McKell | IMS Global (USA)
Sue Milne | JISC/CETIS (UK)

Makoto Murata | JEPA (Japan)
Becka Nethers | NWEA (USA)
Padraig O'hiceadha | HMH (UK)
Jason Pelletier | Measured Progress (USA)
Craig Perry | ACT (USA)
Kevin Ptak | Data Recognition Corps (USA)
Michelle Richard | Pearson (USA)
Madeleine Rothberg | WGBH NCAM (USA)
Sharon Secretan | Pearson (USA)
Farhat Siddiqui | ETS (USA)
Colin Smythe | IMS Global (USA)
Joseph St. George | Measured Progress (USA)
Jeremiah Tanner | DRC (USA)
Wyatt VanderStucken | ETS (USA)
Yvonne Winklemann | BPS (Germany)

toc | top

## Revision History

Version No. | Release Date | Comments
--- | --- | ---
Spec 2.2 / Final 1.0 | 1st September, 2015 | The first formal release of QTI HTML5 v2.2 Specification. This is a combined Information Model an XSD Binding document.
Spec 2.2.1 / Final 1.0 | 1st August, 2016 | The changes made address: (a) Correction of the 'preload' attribute multiplicity (to become [0..1]) for the 'Audio' class; (b) Replace the use of the 'ElementIDList' class with the 'IDREFS' primitiveType and delete the 'ElementIDList' class; (c) The import to the QTIv2.2 XSD has been changed to QTIv2.2.1 XSD; (d) The schematron rules for the extensions of the 'language' and 'base' characterisics have been corrected to refer to 'xml:lang' and 'xml:base' respectively.

toc | top

IMS Global Learning Consortium, Inc. ("IMS Global") is publishing the information contained in this document ("Specification") for purposes of scientific, experimental, and scholarly collaboration only.

IMS Global makes no warranty or representation regarding the accuracy or completeness of the Specification.

This material is provided on an "As Is" and "As Available" basis.

The Specification is at all times subject to change and revision without notice.

It is your sole responsibility to evaluate the usefulness, accuracy, and completeness of the Specification as it relates to you.

IMS Global would appreciate receiving your comments and suggestions.

Please contact IMS Global through our website at http://www.imsglobal.org.

Please refer to Document Name: IMS Question and Test Interoperability (QTI): HTML5 Information Model and XSD Binding v2.2.1

Date: 1st August, 2016

toc | top