Files
git-law/dtd/uslm/uslm-2.0.0.xsd
2025-08-11 08:00:11 -07:00

5590 lines
261 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://schemas.gpo.gov/xml/uslm/2.0"
xmlns:uslm="http://schemas.gpo.gov/xml/uslm/2.0" xmlns="http://schemas.gpo.gov/xml/uslm/2.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xhtml="http://www.w3.org/1999/xhtml"
elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0.0"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning">
<!-- This is a draft version of the USLM schema with proposed changes from
the GPO USLM project. The base version number is updated to "2" because
breaking changes are proposed. This schema uses XMLSchema version 1.0.-->
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
<xsd:import namespace="http://purl.org/dc/terms/" schemaLocation="dcterms.xsd"/>
<xsd:import schemaLocation="uslm-table-module.xsd" namespace="http://www.w3.org/1999/xhtml">
<xsd:annotation>
<xsd:documentation> Schema that includes the redefinitions for USLM/XHTML tables.
</xsd:documentation>
</xsd:annotation>
</xsd:import>
<xsd:annotation>
<xsd:documentation>
<![CDATA[
======================================================================
* United States Legislative Model (USLM)*
======================================================================
** Objective **
This schema provides a general schema for modeling United States
legislative and regulatory documents, including:
* United States Code titles and appendices.
* Enrolled Bills
* Public Law
* Statutes at Large
* Federal Register
* Code of Federal Regulations
It is designed to be extendable to future legislative and regulatory
documents. The intent is to support XML data delivery, publishing,
editing, and automated processing of the documents.
The schema in intended to be extensible to model bills, resolutions,
statutes, amendments, and other legislative documents.
This schema is not intended to model executive branch or judicial
branch documents, except as this content is included in the documments
that are within scope.
** Understanding this Schema **
This schema is designed in several layers. The best way to learn the
schema is to first understand the fundamental building blocks and then
to build your understanding one layer at a time. The order of
declaration and definitions is generally the best order to learn it as
well.
This schema is designed following a "Venetian Blind" design pattern.
This means that each element type is defined separately and a separate
element declaration is created. This pattern maximizes the reusability
of the schema.
** Overriding Principles **
* The general derivation hierarchy is from most abstract to most
concrete.
* Terminology chosen for abstract elements is purposefully designed
to minimize conflict with existing terminology by avoiding well-
established terms.
* Terminology chosen for concrete elements is purposefully designed
to map very closely to existing terminology.
* The overall tag set is kept as small as possible without
compromising semantic richness.
* The schema is more permissive than is absolutely necessary. As this
schema must support legacy documents, a looser rather than tighter
contract is required to be enforced by the schema. In general, the
abstract layer is intended to support the variation extremes while
the concrete layer is intended to support modern practices.
* Consistency with XHTML naming conventions and practices is
maximized.
* Care has been taken to avoid reinventing mark-up for areas, such as
tables or formulas, where other good mark-up has already been
designed.
* The overall structure has been designed to create a readable
document without any unnecessary redirection.
* All text shown in the printed or published document is regular
text, not contained within attributes or to be generated from
attribute data. Rather, the resulting text is shown in the content.
* Attributes are used to contain metadata or normalized forms of
text content. (i.e. normalized numeric values) The general flow of
data is from the content to the attributes rather than the other
way around.
* The schema is designed for editing documents as well as for complete
documents. This means that the "empty document" situation is handled
and validates as a complete and correct document.
** General Definitions **
Jurisdictions:
* United States Federal Government - us
Languages:
* English Language - eng
** Primitives **
The purpose of the primitives is to provide the fundamental building
blocks out of which everything can be built. The primitives are a
minimal set of basic type definitions along with a corresponding set
of element declarations.
At the very top of the derivation tree is the "BaseType" and two
closely related derivatives "BaseBlockType" and "BaseContentType". These
types are primarily to provide base types for all the attributes. They
are defined as abstract types and therefore cannot be instantiated.
All other types derive from these types, by way of either restriction
and/or extension. The terminology chosen for the primitive layer has
been selected to describe, in the most general of terms, the fundamental
building blocks. Care has been taken to avoid using terms which already
have an established meaning within U.S. legislation and to avoid implying
too much meaning or structure beyond the primitive nature of the
elements.
** Common Core **
The common core defines the basic structure of a legislative document.
It is a very abstract and general model intended to be flexible enough
to handle the widest variations likely to be encountered.
It is possible, using the common core, along with the primitives defined
above and the generics defined below, to model any U.S legislation,
albeit abstractly. The terminology chosen has been selected to be
familiar without conflicting with any well-established meanings in use
for U.S. legislation.
** Structural Building Blocks **
The structural building blocks are assemblies of elements which are
used to define the common core. Rather than defining individual elements,
they define groups of elements which are placed together to define
the content of elements in the common core. The building blocks are
largely responsible for taking care of the flexible notes model and
the underlying versioning model.
** Generics **
The generics provide fundamental elements necessary to model any
type of document. These elements fit within the common core, but are
not themselves a part of it. In general, these elements model common
structures like paragraphs, images, columns, and line breaks.
The generics exist to complete the common core without clouding the
core with basic functions that don't contribute the legislative nature
of the schema. The terminology chosen has been selected to be familiar
everyday terms for common concepts. Care has been taken to not
override any well-established meaning in use for U.S. legislation.
** Synonyms **
The synonyms are used to give familiar and comfortable terms to the
most commonly used elements in modern legislation. These synonyms are
more meaningful tags used as equivalent substitutes for the more
abstract tags defined in the common core. As they are defined as
synonyms rather than within a rigid content model, care must be taken
to avoid using them in ways beyond their original intent and harming
the semantic value of XML.
** Naming Elements **
There are three attributes for defining names for elements. Each of
these attributes may or may not be used in all situations:
* The @id attribute is an immutable identity, one that is not changed
once it is assigned. Therefore, it should not reflect any aspect of
the element that is subject to change, such as an assigned number.
The preferred algorithm for generating the @id attribute value is to
use a GUID (Globally Unique IDentifier) generator that guarantees
uniqueness in all space and time. The @id should be given a simple "id"
prefix.
* The @identifier attribute specifies the URL context and identity of
the element. Typically, the @identifier will be established on the
root element or on any element, such as a <quotedContent> or
<quotedText> element, that changes the context.
* The @temporalId attribute is assigned a changeable, human-meaningful,
identifier. Like the @name attribute, the @temporalId will vary with
time. For this reason, the @temporalId is computed each time a document
is extracted from the repository, based on the point-in-time requested,
rather than being statically stored with the text in the repository. The
@temporalId is specified to be nominally unique within the document to which
the element belongs. The @temporalId is composed by concatenating the
@temporalId of the element's parent, if existing (or the parent element's
name if the @temporalId does not exist), "_", and the element's <num>
@value. For example, paragraph 2 of subsection (a) of section 1 should
have the @temporalId of "s1_a_2".
** Referencing Model **
All references are modeled as relative URLs. References are made to
a logical rather than a physical hierarchy that starts always from the
jurisdiction and reaches down to individual provisions within a bill,
resolution, or other Legislation. References do not predict or expect
any particular document partitioning. It is the intent of the URL handler
to map the logical hierarchy to any specific physical hierarchy.
The highest level of the hierarchy is always the jurisdiction code,
specified using the ISO 3166-1 country code and optionally followed by
a dash and a lower level jurisdiction code. For the U.S. Federal
Government, the jurisdiction code is "us".
Lower levels of the hierarchy should use an abbreviated prefix or a numeric/
alphabetic entry to identify the target. Each level in the reference is
separated with the "/" in a hierarchy. For instance, Title 5 is expressed
as "/us/usc/t5" while Pub. L. 111-314 is expressed as "/us/pl/111/314".
When a URL is extended to within a document, the document hierarchy is
expressed in an abbreviated form as in "/us/usc/t5/s101" or
"/us/pl/111/314/s1". To build this URL, append the reference to the
document with "/" + the level designators. So a reference to "title 2 of
division 3 of public law 113-314" would be "/us/pl/111/314/d3/t2".
A language-neutral reference does not include a language code. To
create a reference to a specific language version of the document,
include a language identifier at the nominal document level following
a "!" symbol. For instance, to specify a reference to
section 101 the English version of title 51, the
reference would be "/us/usc/t51!eng/s101".
To make a reference to a version that is operational at a specific
point in time, include a date specification at the nominal document
level following a "@" symbol ("at" the time of). For instance, to
specify a reference to section 101 of Title 51 on 1 February,
2013, the reference would be "/us/t51@2013-02-01/s101".
When including both a language and a time specification, place
the language specification ahead of the time specification. For
instance to combine both examples above, the result would be
"/us/t51!eng@2013-02-01/s101".
]]></xsd:documentation>
</xsd:annotation>
<!-- ==================================================================== -->
<!-- Simple Types -->
<!-- ==================================================================== -->
<xsd:simpleType name="DateSimpleType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The date simple type unifies both date and time formats and allows
a date to be specified as either a day or a time in a day. This is
to allow situations where the law becomes effective based on another
time zone.
]]></xsd:documentation>
</xsd:annotation>
<xsd:union memberTypes="xsd:date xsd:dateTime"/>
</xsd:simpleType>
<!-- ==================================================================== -->
<xsd:simpleType name="OccurrenceSimpleType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The occurrence simple type specifies which occurrence is affected
by an action when amending. An occurence can be either a positive integer
or a value from the choice enumeration such as "all" for
all occurrences or "last" for the last occurrence.
]]></xsd:documentation>
</xsd:annotation>
<xsd:union memberTypes="xsd:positiveInteger ChoiceEnum"/>
</xsd:simpleType>
<!-- ==================================================================== -->
<xsd:simpleType name="CharacterSimpleType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A simple string with 1 character.
]]></xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ==================================================================== -->
<xsd:simpleType name="ShortStringSimpleType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A simple string with not more than 32 characters.
]]></xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="32"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ==================================================================== -->
<xsd:simpleType name="MediumStringSimpleType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A simple string with not more than 128 characters.
]]></xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="128"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ==================================================================== -->
<xsd:simpleType name="LongStringSimpleType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A simple string with not more than 1024 characters.
]]></xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1024"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ==================================================================== -->
<!-- Enumerations -->
<!-- ==================================================================== -->
<xsd:simpleType name="ChoiceEnum">
<xsd:annotation>
<xsd:documentation><![CDATA[
The choice enumeration is used to enumerate some textual values for
use with the occurrence simple type defined above.
]]></xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="all"/>
<xsd:enumeration value="none"/>
<xsd:enumeration value="first"/>
<xsd:enumeration value="last"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ==================================================================== -->
<xsd:simpleType name="YesOrNoEnum">
<xsd:annotation>
<xsd:documentation><![CDATA[
The yes or no enum has two options: "yes" or "no".
]]></xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="yes"/>
<xsd:enumeration value="no"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ==================================================================== -->
<xsd:simpleType name="PropertyTypeEnum">
<xsd:annotation>
<xsd:documentation><![CDATA[
The property type enumeration allows a property to be given a
type specification. If the @type attribute is not specified, then
the default type is "string".
]]></xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="string"/>
<xsd:enumeration value="number"/>
<xsd:enumeration value="token"/>
<xsd:enumeration value="boolean"/>
<xsd:enumeration value="text"/>
<xsd:enumeration value="date"/>
<xsd:enumeration value="url"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ==================================================================== -->
<xsd:simpleType name="SetTypeEnum">
<xsd:annotation>
<xsd:documentation><![CDATA[
The set type enumeration is used allows a set of properties, grouped
using the <set> element, to be given a type specification. If the
@type attribute is not specified, then the default type is "bag".
The type values are inspired by the Resource Descriptor Framework
(RDF).
]]></xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="bag">
<xsd:annotation>
<xsd:documentation><![CDATA[
A "bag" is an unordered but homogeneous collection of
properties or sets.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="seq">
<xsd:annotation>
<xsd:documentation><![CDATA[
A "seq" (sequence) is an ordered and homogeneous sequence of
properties or sets.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="grp">
<xsd:annotation>
<xsd:documentation><![CDATA[
A "grp" (group) is a heterogeneous collection of properties
or sets.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="alt">
<xsd:annotation>
<xsd:documentation><![CDATA[
An "alt" (alternatives) is a homogeneous collection of
properties or sets of which one is selected at any one time.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="res">
<xsd:annotation>
<xsd:documentation><![CDATA[
A "res" is a resource, such as a person, place, or thing and
the properties enclosed within the set describe it.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<!-- ==================================================================== -->
<xsd:simpleType name="StatusEnum">
<xsd:annotation>
<xsd:documentation><![CDATA[
The status enumeration is used to specify the state of a provision
during the period of time defined by the @startPeriod and the
@endPeriod attributes attached to the same element or hierarchically
defined above.
Typically, the status enumeration is applied to the <section> level
or lower, but the model is general enough that it can be applied
anywhere in the level hierarchy. A <section> will progress through a
series of statuses, starting out as "proposed" in a bill, becoming
"pending" when the bill is enacted, "operational" on
the commencement date, and then later possibly "repealed".
It is possible that stages in this sequence might be skipped.
For instance, a section might be repealed before
it ever becomes operational or it might never be repealed.
If the status is not specified, then a section is assumed to be
"operational".
]]></xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="proposed"/>
<xsd:enumeration value="withdrawn"/>
<xsd:enumeration value="cancelled"/>
<xsd:enumeration value="pending"/>
<xsd:enumeration value="operational"/>
<xsd:enumeration value="suspended"/>
<xsd:enumeration value="renumbered"/>
<xsd:enumeration value="repealed"/>
<xsd:enumeration value="expired"/>
<xsd:enumeration value="terminated"/>
<xsd:enumeration value="hadItsEffect"/>
<xsd:enumeration value="omitted"/>
<xsd:enumeration value="notAdopted"/>
<xsd:enumeration value="transferred"/>
<xsd:enumeration value="redesignated"/>
<xsd:enumeration value="reserved"/>
<xsd:enumeration value="vacant"/>
<xsd:enumeration value="crossReference"/>
<xsd:enumeration value="unknown">
<xsd:annotation>
<xsd:documentation><![CDATA[
A "unknown" status indicates that the status is not known.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<!-- ==================================================================== -->
<xsd:simpleType name="StyleTypeEnum">
<xsd:annotation>
<xsd:documentation><![CDATA[
The style type enumeration sets the allowed values in the
@styleType attribute.
]]></xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="appropriations"/>
<xsd:enumeration value="defense"/>
<xsd:enumeration value="OLC"/>
<xsd:enumeration value="nuclear"/>
<xsd:enumeration value="tax"/>
<xsd:enumeration value="traditional"/>
<xsd:enumeration value="USC"/>
<xsd:enumeration value="multiple-resolved-clause"/>
<xsd:enumeration value="order-of-business"/>
<xsd:enumeration value="concur-with-amendment"/>
<xsd:enumeration value="constitutional-amendment"/>
<xsd:enumeration value="impeachment"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ==================================================================== -->
<xsd:simpleType name="AmendingActionTypeEnum">
<xsd:annotation>
<xsd:documentation><![CDATA[
The amending action enumeration is used to specify the type of action being
undertaken by an amendment.
There are two basic sets of amending actions: those for law and those for
proposed law. Pre-enactment stage amendments will use the "insert" and
the "delete" actions when amending rather than the other actions
intended for modifying enacted law.
]]></xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="enact">
<xsd:annotation>
<xsd:documentation><![CDATA[
The "enact" action enacts a law.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="add">
<xsd:annotation>
<xsd:documentation><![CDATA[
The "add" action adds a provision to existing law.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="amend">
<xsd:annotation>
<xsd:documentation><![CDATA[
The "amend" action modifies an existing provision in the law.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="substitute">
<xsd:annotation>
<xsd:documentation><![CDATA[
The "substitute" action replaces an existing provision in the law.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="redesignate">
<xsd:annotation>
<xsd:documentation><![CDATA[
The "redesignate" action changes the number of an existing
provision in the law.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="repeal">
<xsd:annotation>
<xsd:documentation><![CDATA[
The "repeal" action repeals an existing provision in the law.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="insert">
<xsd:annotation>
<xsd:documentation><![CDATA[
The "insert" action adds text to a proposed provision to the law.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="delete">
<xsd:annotation>
<xsd:documentation><![CDATA[
The "delete" action removes text from a proposed provision to
the law.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="conform">
<xsd:annotation>
<xsd:documentation><![CDATA[
The "conform" action means to make the text the same as the
defined replacement text.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="unknown">
<xsd:annotation>
<xsd:documentation><![CDATA[
The "unknown" action is for actions that have not yet been defined.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<!-- ==================================================================== -->
<xsd:simpleType name="PositionEnum">
<xsd:annotation>
<xsd:documentation><![CDATA[
The position enumeration is used with references found within
amendments when it is necessary to specify a position relative to
an item rather than when referencing the item itself.
]]></xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="start"/>
<xsd:enumeration value="before"/>
<xsd:enumeration value="inside"/>
<xsd:enumeration value="after"/>
<xsd:enumeration value="end"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ==================================================================== -->
<xsd:simpleType name="OrientationEnum">
<xsd:annotation>
<xsd:documentation><![CDATA[
The orientation enumeration is used to specify how an item should be
oriented in the printed form. The orientation can be specified
for any content item or for any appendix item, including a
schedule.
]]></xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="portrait"/>
<xsd:enumeration value="landscape"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ==================================================================== -->
<xsd:simpleType name="NoteTypeEnum">
<xsd:annotation>
<xsd:documentation><![CDATA[
Notes can be placed inline, as footnotes at the end of the page,
as side notes next to the text, as end notes of the logical unit,
or can be U.S. Code notes.
]]></xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="inline"/>
<xsd:enumeration value="footnote"/>
<xsd:enumeration value="sidenote"/>
<xsd:enumeration value="endnote"/>
<xsd:enumeration value="uscNote"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ==================================================================== -->
<!-- Attribute Groups -->
<!-- ==================================================================== -->
<xsd:attributeGroup name="XmlSpecialAttrs">
<xsd:annotation>
<xsd:documentation><![CDATA[
This attribute groups is similar to the same attribute group defined
in the XML.xsd schema file, except it omits the "id" attribute.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute ref="xml:base"/>
<xsd:attribute ref="xml:lang"/>
<xsd:attribute ref="xml:space"/>
<!-- <xs:attribute ref="xml:id"/> -->
</xsd:attributeGroup>
<!-- ==================================================================== -->
<xsd:attributeGroup name="IdentificationGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The identification group of attributes is used to add an identity to
an element. All elements use the identification group, and all
attributes are optional. In general:
- An @id is an immutable GUID assigned to an item at its birth.
- An @temporalId is a time variant name, scoped to the document.
- An @identifier is an item variant URL, scoped globally.
- As @scope is a URL of the scope in which the @identifier is valid.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="id" type="xsd:ID" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @id attribute should always be assigned an immutable
(non-changing) value. If the item is subject to renaming or
renumbering, then the @id attribute should not reflect any part
of the changeable part. This is to allow the @id to be long
lasting without causing confusion should the item be renamed or
renumbered.
The @id should be prefixed with "id" and followed by a GUID that
is guaranteed to be globally unique across both time and space.
As an "xsd:ID", the identity must be ensured to be unique in the
document - and it is a good idea that it be guaranteed globally
unique. As the @id is immutable, it is a good identity with which
to associate external information to the item.
If an item is deleted and later a similarly named item is
created, then the new item should be assigned a newly generated
identity as it is not the same item as the earlier item.
The @id attribute is optional, but recommended for all elements
which will contain any other identity attributes.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="temporalId" type="MediumStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @temporalId attribute is a name, scoped to the document,
that is intended to reflect the current identify of the element
in a human-readable way. This means that the @temporalId may need
to be recomputed based on the temporal state of a document or
according to the temporal specification in a requesting URL.
A @temporalId is intended to be scoped to the document as a whole
while the @name is scoped to its immediate parent. The
@temporalId is built as an "_" separated hierarchy of @name
or, in the absence of an @name, element names. However, in a
couple cases, the levels of the hierarchy are suppressed. First
of all, the <main> level is suppressed when calculating any
@temporalId contained within. Secondly, when dealing with
sections which are numbered as a sequence without regard to
the upper levels, then the upper levels are suppressed from the
computation of the @temporalId.
Some examples:
* "s2" - section 2 in the main part of the document
* "schedule_s2" - section 2 in the schedule
* "p2_d1" - division 1 of part 2 in the main part of the
document
The @temporalId attribute is optional.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="identifier" type="LongStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
Use the @identifier attribute to specify the URL context of the
element. Typically, the @identifier will be established on the
root element or on any element, such as a <quotedContent> or
<quotedText> element, that changes the context.
The @identifier attribute is optional.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="scope" type="LongStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
Use the @scope attribute to specify the scope within which the
@identifier attribute is valid. Typically, @scope is formatted
as a URL, referring to a specific context. @scope is used for
terms within in definitions to specify the scope of the definition.
The @scope attribute is optional.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<xsd:attributeGroup name="ClassificationGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The classification group is used to further refine the element
type and to specify any exception cases for styling the element
when presented in the printed form. The @role attribute is inspired
by the @role attribute defined in support of WAI-ARIA for use
in XHTML. Both the @class and the @style attributes are inspired by
the identically named HTML attributes and their behavior is the
same. All elements use the classification group.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="role" type="ShortStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
Use the @role attribute to provide further refinement to an
element's type. This is particularly useful when defining a
refinement of an element from the abstract set. Another possible
use is to use the customary local name for an element whenever
the element name is not a complete match. For example, if the
customary name for an "explanation" is "summary", then the
element can be expressed as <explanation role="summary">.
There is a rough equivalence between an element of a base class
with a @role attribute and a derived class in the schema, although
this equivalence is not explicit. For example
<level role="division"> is roughly equal to <division>.
When transforming XML to HTML, the @role attribute should be
appended to the element name using an "_" underscore and used
as the first value in the HTML @class attribute. If desired,
the proposed XHTML @role attribute can be computed as either the
XML @role attribute or, in the absence of the XML @role
attribute, the XML element name. For example:
<level role="division">
=> <div role="division" class="level_division">
<division>
=> <div role="division" class="division">
This approach is easily reversible.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="class" type="MediumStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @class attribute corresponds to the @class attribute in
HTML. It can be used to specify presentation characteristics
of an element that are not specified by the element name and
the @role attribute. For example, the @class attribute can be
used to specify the presence or absence of the ending separator.
Like the HTML @class attribute, multiple class values can be
specified in a space separated list.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="style" type="LongStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @style attribute is used to specify CSS attributes that
override the default styles defined for an element or an element
class. The current loose-leaf publication standards should be
specified using an external style sheet and the use of the @style
attribute should be reserved for exception cases where the
default presentation must be overridden.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="styleType" type="StyleTypeEnum" use="optional" default="OLC">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @styleType attribute is used to set the overall semantic type of
the block. This has rendering implications. Only a small set of values
is allowed.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<xsd:attributeGroup name="AnnotationGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The annotations group is used to specify annotations with elements
that are outside of the published content. As attributes, only
limited text values should be associated using this mechanism. This
mechanism should never be used for notes to be published. All
elements use the annotation group.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="note" type="LongStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @note attribute should be the primary mechanism for recording
simple text notes to be associated with elements.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="alt" type="LongStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @alt attribute should be used to provide an alternative
description of the element. For use with WCAG 2.0 and other
accessibility initiatives.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="meta" type="LongStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @meta attribute should be used to associate metadata
information with the element for search and other used. How this
attribute is used is not prescribed by the schema.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="misc" type="LongStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @misc attribute is provided for future use.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="draftingTip" type="LongStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @draftingTip is for internal use.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="codificationTip" type="LongStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @codificationTip is for internal use by the OLRC.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<xsd:attributeGroup name="DescriptionGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The description group is used to record information that will be
used to describe an element, primarily for use in a table of
contents or an index. The description group can be used for
statements, the preamble, levels, and appendices including
schedules. In addition, the description group is an integral
part of a TOC item. All attributes are optional.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="title" type="MediumStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @title attribute is used to specify the text describing the
element in a table of contents or index. It must be a simple text
string and should consist of fewer than 40 or so characters -
although this is not enforced.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="brief" type="LongStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @brief attribute is an alternate method for providing a
a longer description of an element, limited to 1024 characters.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="sortOrder" type="xsd:integer" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @sortOrder attribute is used to specify a sorting order for
a list of items, when that sort order is not the document
sequence. The @sortOrder value must be specified as a positive
integer. This attribute should rarely be used.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<xsd:attributeGroup name="ReferenceGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The reference group is used to create references to other items.
These items can be items within the document, items in other documents,
or entire other document. See the reference specification for how
reference URL references are constructed. <property> and
<reference> elements can use the reference group.
All attributes are optional.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="href" type="xsd:anyURI" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @href attribute is used to specify references to external
documents or items in documents. The value must always be
specified as a relative URL conforming to the reference
specification.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="idref" type="xsd:IDREF" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @idref attribute is used to specify references to internal
elements within the same document. The @idref is specified as
the value of the @id attribute of the element being referenced.
As in HTML, there is an equivalence between an @href specified
as href="#{id}" and idref="{id}". However, the @idref attribute
is preferred for internal references.
If the @idref points to a <ref> element, then the referencing
element builds on top of that reference, acquiring its attributes
as default values (which may be overridden by local values). This
is a recursive structure; an element may, through the @idref
attribute, point to an <ref> element which itself builds on
another <ref> element, and so on. This is to support the complex
referencing sometimes found in legislation.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="portion" type="MediumStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @portion attribute is used, in conjunction with the @idref
attribute, when only a portion of the referenced item is being
affected. The value of @portion is an additional part to append
to the URL, with a "/" separator to identify the item affected.
Do not include a leading "/" in the @portion value.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<xsd:attributeGroup name="AmendingGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The amending group is used to point to items being amended. See the
reference specification for how reference URL references are
constructed. The amending group should only be used on references
or amending actions within amending instructions.
All attributes are optional.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="pos" type="PositionEnum" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @pos attribute is used to specify a location relative
to the item being referenced. The @pos is intended primarily
for used with amending instructions.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="posText" type="MediumStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @posText attribute is used to specify text to be used as the
context for the @pos attribute.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="posCount" type="xsd:positiveInteger" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @posCount attribute is used to specify the number of
occurrences of the @posText to seek out when establishing the
context.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<xsd:attributeGroup name="LinkGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The link group is used to reference external documents to be
embedded in a document. The link group can be used for either
appendices or for images. The @src attribute is optional, but
should always be used for images.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="src" type="xsd:anyURI" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @src attribute is a URL that points to an item to be included
in the published document. Unlike an @href attribute, a @src
attribute can be any normal URL and can be relative or absolute.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<xsd:attributeGroup name="ValueGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The value group is used to keep a normalized value. In some cases
the value is recorded as text content and the normalized form is
stored in the @value attribute. The @type attribute is usually used
to type the value. The value group can be used for <property> and
<num> elements.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="value" type="MediumStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @value attribute is used when there is a single value.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="startValue" type="MediumStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @startValue attribute is used for the lower end of a value
range.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="endValue" type="MediumStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @endValue attribute is used for the upper end of a value
range.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<xsd:attributeGroup name="NoteGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The note group is used to place and categorize notes, either
singularly or as groups. The @type attribute is used for placement
while the @topic attribute is used for categorization.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="type" type="NoteTypeEnum" use="optional" default="footnote">
<xsd:annotation>
<xsd:documentation><![CDATA[
Set the @type attribute to "footnote" to indicate that
the notes contained should be shown in the footnotes at
the end of the page, to "endnote" to indicate the
notes contained should be shown at the end of the
document, or to "sidenote" if the notes should be shown
on the side in the margin. If not specified, "footnote" is assumed.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="topic" type="MediumStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
Set the @topic attribute to a string value in order
to categorize the note or group of notes. An open,
but enumerated, list of string values should be used.
Using a fixed list of values will better aid in
categorization of notes.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<xsd:attributeGroup name="RenderingPositionGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The RenderingLocationGroup is used to indicate where an element
should be rendered. It is used for content that should be
rendered out of the normal text flow, such as footnotes or sidenotes.
All attributes are optional.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="renderingPosition" type="MediumStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @position attribute is used to specify the rendering location.
This location may be relative to an object specified in the
@relativeTo attribute.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="relativeTo" type="MediumStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @relativeTo attribute specifies an object that the rendering
should be relative to. This may be an element name, such as "table"
or "section". It may also be a specific element, identified by its
@id attribute or @identifier attribute. It may also be a physical
entity, such as "page" or "column" or "frame".
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<xsd:attributeGroup name="DateGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The date group is used to keep a normalized date. Both normal dates
and date + times can be stored. The format for all dates is either
the xsd:date or xsd:datetime formats which are ISO 8601 based. The
date group can be used with <property>, <date>, and <note> elements.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="date" type="DateSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @date attribute is used for a single date value.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="legisDate" type="DateSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @legisDate attribute is used for a logical legislative date,
which may be different from the calendar date.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="startDate" type="DateSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @startDate attribute is used for the starting date of a date
range.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="endDate" type="DateSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @endDate attribute is used for the ending date of a date
range.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<xsd:attributeGroup name="VersioningGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The versioning group is used to record dates and statuses of
different versions of various elements. These attributes define
the versioning model for USLM. In general, when an item is
versioned, different versions of an element will exist alongside
one another with different time periods and statuses defined.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="startPeriod" type="DateSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @startPeriod attribute is the earliest date that a particular
version applies to. The @startPeriod is not necessarily the
effective date. It's merely the earliest date that the particular
version of the text should be returned in point-in-time
calculations.
The @startPeriod works with the @endPeriod which defines that
last date that a specific version applies to. Together, the
@startPeriod and the @endPeriod define a period of time that the
version applies to. This version may be in states such as
pending, operational, partially commenced, suspended, or even
repealed.
If the @startPeriod is not specified, then all past time is
assumed.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="endPeriod" type="DateSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @endPeriod attribute is the last date that a specific version
of the text should be returned in point-in-time calculations.
If the @endPeriod is not specified, then all future time is
assumed.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="status" type="StatusEnum" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @status attribute is used to show the status of a version
of provision. This attribute works with the @startPeriod and the
@endPeriod and applies to the period of time defined by these
attributes.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="partial" type="xsd:boolean" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @partial attribute is used, in conjunction with the
@status attribute to indicate that the status is not fully
applied.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<xsd:attributeGroup name="AmendingActionGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The amending action group is used to describe amending actions.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="type" type="AmendingActionTypeEnum" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @type attribute describes the type of amending action being taken.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="occurrence" type="OccurrenceSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @occurrence attribute describes which occurrence of item in question
should the amending action take effect on.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="actionDate" type="DateSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @actionDate attribute specifies the date upon which the
action is to be applied.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<xsd:attributeGroup name="CellGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The cell group is used to describe a cell in a tabular structure
found within legislation.
The @colspan and @rowspan attributes are inspired by the HTML
attributes of the same name. Consequently, the names are specified
as all lower-case which is a minor inconsistency to the naming
convention used for all other attributes.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="colspan" type="xsd:integer" use="optional" default="1">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @colspan attribute, like the corresponding HTML attribute,
defines the number of columns a column tag must span.
If this attribute is not set, then the column span is one.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="rowspan" type="xsd:integer" use="optional" default="1">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @rowspan attribute, like the corresponding HTML attribute,
defines the number of rows a specific column tag must span.
If this attribute is not set, then the row span is one.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="leaders" type="ShortStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @leaders attribute specifies whether leaders should be
shown either trailing or following the text content. The
character included as the value is the character used to render
the leaders.
Use the CSS text-align character to position the text. If the
text is aligned to the left, then the leaders will show to the
right and if the text is aligned to the right, then the leaders
will show to the left.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<!-- Attributes for use with HTML tables -->
<!-- ==================================================================== -->
<xsd:attributeGroup name="HtmlTableGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The table group is used to add attributes to the HTML table model.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="type" type="ShortStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @type attribute says what the purpose of the table is.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="blockStyle" type="YesOrNoEnum" use="optional" default="no">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @blockStyle attribute sets block style for all text (reading) columns in
the table, rather than the default flush and hang style. If the column is indented
to indicate a hierarchy, the net effect is indentation and block, no hanging indent.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="cols" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
Number of columns in the table. This must be an integer greater than zero
and smaller than 31 (MicroComp can handle tables up to 30 columns).
]]></xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:nonNegativeInteger">
<xsd:maxInclusive value="30"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="HtmlTdGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The HtmlTd group is used to add attributes to the HTML cell (td) model.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="stubHierarchy" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The stubHierarchy indicates indention of a stub column. It is an attribute with
values 0 to 99, corresponding to stub hierarchy levels 1 to 100 in stub columns.
Usually only values 0 to 9 (1 to 100) are used.
]]></xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:nonNegativeInteger">
<xsd:maxInclusive value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="textHierarchy" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The textHierarchy indicates indention of a stub column. It is an attribute with
values 0 to 99, corresponding to hierarchy levels 1 to 100 in text (reading) columns.
Usually only values 0 to 9 (1 to 100) are used.
]]></xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:nonNegativeInteger">
<xsd:maxInclusive value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="leaders" type="YesOrNoEnum" use="optional" default="no">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @leaders attribute sets the presence or absence of the leader dots in the
table cell. The value 'false' indicates no leaders, while 'true' indicates leaders.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="leaderAlign" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @leaderAlign attribute sets the behavior of the leader dots.
]]></xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="topLine">
<xsd:annotation>
<xsd:documentation><![CDATA[
The leader dots of following cells will align with the top line of text in this cell.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="bottomLine">
<xsd:annotation>
<xsd:documentation><![CDATA[
The leader dots of following cells will align with the bottom line of text in this cell.
]]></xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<xsd:attributeGroup name="LeaderGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The leader group is used to define leaders for use in tables of content.
The attributes define the character to be used for the leader, and
the alignment of the leader from the element.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="leaderChar" type="CharacterSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
Set the @leaderChar attribute to define the character to be used
in the leader.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="leaderAlign" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @leaderAlign attribute sets the direction of the leaders
from the element.
]]></xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="ShortStringSimpleType">
<xsd:enumeration value="left"/>
<xsd:enumeration value="right"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<!-- ==================================================================== -->
<!-- Primitive Definitions -->
<!-- ==================================================================== -->
<xsd:annotation>
<xsd:documentation>
<![CDATA[
** Primitive Definitions **
There are five basic primitive types. All elements are defined to be
one of these five basic types. In addition to types derived from these
five basic types, there are also five abstract element declared
directly from these types. These elements can be used, in some cases,
for when the more specific cases do not apply. In those cases, the
primitive types can be used along with the @role attribute to create
new informal types.
*** Basic Rules ***
* A marker contains nothing within it.
* An inline contains text, or any inline structure including
inline, ref, or marker.
* A block contains any block structure including block, content,
or property.
* A content (block) contains text or any block or other content.
]]></xsd:documentation>
</xsd:annotation>
<!-- ==================================================================== -->
<xsd:complexType name="BaseType" abstract="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The base type defines the most general element, specifying the
attributes which can be found on all elements - specifically
attributes belonging to the identification, classification, and
annotation groups.
The base type is defined as an abstract type and elements cannot
be declared based on it.
]]></xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attributeGroup ref="XmlSpecialAttrs"/>
<xsd:attributeGroup ref="IdentificationGroup"/>
<xsd:attributeGroup ref="ClassificationGroup"/>
<xsd:attributeGroup ref="AnnotationGroup"/>
<xsd:attributeGroup ref="DescriptionGroup"/>
<xsd:attributeGroup ref="VersioningGroup"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="BaseBlockType" abstract="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The base block type is a variant of the base type, but having a
content structure to support block level children - elements
but no text.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attributeGroup ref="XmlSpecialAttrs"/>
<xsd:attributeGroup ref="IdentificationGroup"/>
<xsd:attributeGroup ref="ClassificationGroup"/>
<xsd:attributeGroup ref="AnnotationGroup"/>
<xsd:attributeGroup ref="DescriptionGroup"/>
<xsd:attributeGroup ref="VersioningGroup"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="BaseContentType" abstract="true" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The base content type is a variant of the base type, but having
a very open content model including text.
]]></xsd:documentation>
</xsd:annotation>
<xsd:attributeGroup ref="XmlSpecialAttrs"/>
<xsd:attributeGroup ref="IdentificationGroup"/>
<xsd:attributeGroup ref="ClassificationGroup"/>
<xsd:attributeGroup ref="AnnotationGroup"/>
<xsd:attributeGroup ref="DescriptionGroup"/>
<xsd:attributeGroup ref="VersioningGroup"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="MarkerType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The marker type is a restriction of the base type to an element
without content.
]]></xsd:documentation>
</xsd:annotation>
<!-- No content -->
<xsd:simpleContent>
<xsd:restriction base="BaseType">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:length value="0"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="InlineType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The inline type is an extension of the base type to text content or
other inline elements.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseContentType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="marker"/>
<xsd:element ref="inline"/>
<xsd:element ref="note"/>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="BlockType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The block type is a extension of the base type to content
consisting of only elements.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##targetNamespace"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="ContentType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The content type is a broad base type allowing any content.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseContentType">
<xsd:choice maxOccurs="unbounded" minOccurs="0">
<xsd:element ref="xhtml:table" minOccurs="0" maxOccurs="unbounded"/>
<xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##targetNamespace"
processContents="strict"/>
</xsd:choice>
<xsd:attribute name="orientation" type="OrientationEnum" use="optional"
default="portrait">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @orientation attribute is used to specify a "landscape"
orientation for the published form. This is primarily used
for schedules or for tables.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<!-- Types for tables of content and indices -->
<!-- ==================================================================== -->
<xsd:complexType name="ToCIndexType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The TOCIndexType is a base type for indices and tables of content.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:sequence>
<xsd:group ref="HeadingStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
A ToC or index may have headings.
]]></xsd:documentation>
</xsd:annotation>
</xsd:group>
<xsd:element ref="referenceItem" minOccurs="1" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <referenceItem> element, <headingItem>, and <groupItem>
elements are allowed in the ToC or index 1 or more times.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="note" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation><![CDATA[
A ToC or index may have a single note at the bottom. This
has occurred to put a horizontal rule below the ToC.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<!-- Primitive Declarations -->
<!-- ==================================================================== -->
<xsd:element name="marker" type="MarkerType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <marker> element is a primitive element to be used to mark or
denote a spot in the text. It can be used in the <content> areas or
anywhere else where an <inline> element is expected. The <marker>
element contains no text.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="inline" type="InlineType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <inline> element is a primitive element to be used within
<content> areas or within any other areas which can accept
inline content.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="block" type="BlockType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <block> element is a primitive element to be used anywhere
where <block> elements are permitted including within <content>
elements or anywhere where <block> elements have been explicitly
permitted.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="content" type="ContentType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <content> element is a primitive element to be used anywhere
where a very general content model is desired, including within
other <content> elements.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- Core Definitions -->
<!-- ==================================================================== -->
<xsd:annotation>
<xsd:documentation><![CDATA[
Key:
* <tag> ... </tag> is the enclosing tag
* <child> is a required child
* [<child>] is an optional child
* [<child>]? is a sequence of zero or one child
* [<child>]* is a sequence of zero or more children
* <child1>|<child2> is either child1 or child2
* [<child1>|<child2>] is either child1 or child2 or neither
* [<child1>|</child2>]* is a sequence of zero or more child1s or
child2s in no particular pattern
Basic Model:
* <doc>[<meta>][<preface>][<main>][<backMatter>][<endMarker>][<appendix>]*</doc>
* <meta>[<set>|<property>]*</meta>
* <toc>[<referenceItem>|<groupItem>|<headingItem>]+
* <referenceItem>[<designator>? <label>? <target>?]|<referenceItem>?]
* <main>[<property>|<toc>|<preamble>|<statement>|<note>|
<enactingFormula>|<resolvingClause>|<level>|<crossHeading>|<collection>]*<main>
* <statement>[{text}|<content>|<inline>|<ref>|<marker>|<p>|
<notes>]*</statement>
* <level><num>?<heading>?<subheading>?<notes>?[<instruction><notes>?|
<content><notes>?|<toc>?[<text>|<level>|
<crossheading>|note]*]]</level>
* <num>{text}</num>
* <heading> can contain text, inline, ref, marker
* <appendix> can contain page, preface, main, content, notes
* <notes> can contain text, note, inline, marker
* <note> can contain text, inline, ref, marker. Rendered inline.
* <positionedNote> can contain text, inline, ref, marker. Rendered out of line.
* <instruction> can contain text, amendingAction, quotedText, quotedContent
* <amendingAction> can contain text, ref
* <quotedContent> can contain text, statement, main, level, num,
heading, ref, date, attachments, attachment, notes, note
* <ref>[{test}|<inline>|<marker>]*</ref>
* <date>[{text}|<inline>|<ref>|<marker>]*</date>
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexType name="LawDocType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The law doc type is the core root element type for all document that
contain law - either proposed or enacted.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:sequence>
<xsd:element ref="meta">
<xsd:annotation>
<xsd:documentation><![CDATA[
All documents start with a meta area containing properties about
the document. The information contained within this area is not
official text in the document and should not be published other
than as editorial notes.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="page" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
An document may optionally begin with a page number.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="preface" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
Documents may optionally have a preface before the main body of
the document. Some information in the preface may be duplicated
in the meta section. The content in the meta section would be
normalized, whereas the content in the preface would contain the
text as it is rendered for the user.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="main" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
The primary part of the document is the main area. This contains
the bulk of the document including any hierarchical levels,
sections, table of contents, etc.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="block">
<xsd:annotation>
<xsd:documentation><![CDATA[
A block container, usually for signatures and signing dates.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="notes">
<xsd:annotation>
<xsd:documentation><![CDATA[
For notes at the end of a document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="backMatter">
<xsd:annotation>
<xsd:documentation><![CDATA[
For notes at the end of a document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="endMarker" maxOccurs="1">
<xsd:annotation>
<xsd:documentation><![CDATA[
For the endMarker at the end of a public law.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="appendix">
<xsd:annotation>
<xsd:documentation><![CDATA[
In addition to the main part of the document, a document
may have one or more appendices such as schedules or
explanatory memorandums/notes. These appendices can
either be inline documents or the can be external
referenced documents.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="schemaVersion" type="xsd:string" use="optional"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="GenericDocType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The generic doc type is the core type for generic loosely structured
documents.
Documents using legislative structures and subject to amending,
either locally or by an external jurisdiction, should not use this
format.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:sequence>
<xsd:element ref="meta">
<xsd:annotation>
<xsd:documentation><![CDATA[
All documents start with a meta area containing properties about
the document. The information contained within this area is not
official text in the document and should not be published other
than as editorial notes.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="content">
<xsd:annotation>
<xsd:documentation><![CDATA[
The primary part of the document is the content area. This
can contain a basic generic document structure.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="appendix" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation><![CDATA[
In addition to the content part of the document, a document may have
one or more appendices.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="MetaType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The meta type is a core level container for metadata relating to the
document. The metadata is not part of the official text of the
document and should not be displayed in the printed text, other
than in editorial comments.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:any namespace="http://purl.org/dc/elements/1.1/" processContents="lax">
<xsd:annotation>
<xsd:documentation><![CDATA[
Core elements defined by the Dublin Core may be used.
]]></xsd:documentation>
</xsd:annotation>
</xsd:any>
<xsd:any namespace="http://purl.org/dc/terms/" processContents="lax">
<xsd:annotation>
<xsd:documentation><![CDATA[
Terms defined by the Dublin Core may be used.
]]></xsd:documentation>
</xsd:annotation>
</xsd:any>
<xsd:element ref="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
Properties are added to the metadata to record varying
aspects of the document. In addition to generic
properties, there are defined derivatives of the
property type that can also be used, for things like
the document type and document number.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="set">
<xsd:annotation>
<xsd:documentation><![CDATA[
Properties can be grouped into sets. These sets can
be used to represent something like a series of events,
a person, or another other object related to the
document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="action">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <action> contains information about the actions associated
with the document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="PrefaceType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The PrefaceType is used for preface elements. It allows all the elements
of the MetaType, and others that are rendered.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent >
<xsd:extension base="BaseBlockType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:any namespace="http://purl.org/dc/elements/1.1/" processContents="lax">
<xsd:annotation>
<xsd:documentation><![CDATA[
Core elements defined by the Dublin Core may be used.
]]></xsd:documentation>
</xsd:annotation>
</xsd:any>
<xsd:any namespace="http://purl.org/dc/terms/" processContents="lax">
<xsd:annotation>
<xsd:documentation><![CDATA[
Terms defined by the Dublin Core may be used.
]]></xsd:documentation>
</xsd:annotation>
</xsd:any>
<xsd:element ref="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
Properties are added to the metadata to record varying
aspects of the document. In addition to generic
properties, there are defined derivatives of the
property type that can also be used, for things like
the document type and document number.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="set">
<xsd:annotation>
<xsd:documentation><![CDATA[
Properties can be grouped into sets. These sets can
be used to represent something like a series of events,
a person, or another other object related to the
document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="action">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <action> contains information about the actions associated
with the document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
A document may contain page numbering information or
other notes in the preface.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="content">
<xsd:annotation>
<xsd:documentation><![CDATA[
Used for content interspersed between items in a
preface.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="toc">
<xsd:annotation>
<xsd:documentation><![CDATA[
Sometimes the table of contents is in the preface.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="PropertyType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The property core type is used to record metadata about a document.
Properties usually are found in the meta or preface area of the
document. Properties can also be found in the text of the document
if they are allowed, expressly or by substitution group. The text
content of a property other than in the meta section is the official
text in the document and a normalized date, value, or reference
attribute might also be defined.
In some cases, specific elements are derived from the property type
with more descriptive names. In that case, the descriptive name is
the equivalent of the @name attribute on a core property element.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="InlineType">
<xsd:attributeGroup ref="DateGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
A property can represent a date or a date range.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
<xsd:attributeGroup ref="ValueGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
A property can represent a value or a value range.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
<xsd:attributeGroup ref="ReferenceGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
A property can represent a pointer to either an external
document or an element within the document.
A ref can be used to create a pointer to an endnote or a
footnote. In that case, the ref text will be the endnote or
footnote indicator as seen in "<ref idref="fn000001">†</ref>"
where the dagger is the indicator. An endnote or footnote
reference should always use the @idref attribute to point to
an endnote or a footnote within the document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
<xsd:attribute name="type" type="PropertyTypeEnum" use="optional" default="string">
<xsd:annotation>
<xsd:documentation><![CDATA[
By default, a property is a string. The @type attribute is used to define
an alternate property type. The attributes of the Reference Group are used
when the @type is set to "url". The attributes of the Value Group are used
when the @type is set to "string", "number", "token", or "boolean" or the
@type is not set. The attributes of the Date Group are used when the @type
is set to "date".
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="SetType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The set type is the core type for a group of properties. Property
sets are found within the meta area only. Sets can contain other
sets as well as properties.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:any namespace="http://purl.org/dc/elements/1.1/" processContents="lax">
<xsd:annotation>
<xsd:documentation><![CDATA[
Properties defined by the Dublin Core may be used.
]]></xsd:documentation>
</xsd:annotation>
</xsd:any>
<xsd:element ref="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
A set can contain 0 or more properties.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="set">
<xsd:annotation>
<xsd:documentation><![CDATA[
A set can contain 0 or more sets.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:attribute name="type" type="SetTypeEnum" use="optional" default="bag">
<xsd:annotation>
<xsd:documentation><![CDATA[
By default, the properties in a set are a simple "bag" of
properties, known as an unordered set. However, a set of
properties can also be typed using the @type attribute,
choosing values from the set type enumeration.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="ItemType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The item core type is an item in a table of contents or index. Items
can be nested to create a hierarchy.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="designator">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <designator> contains the alpha-numeric part of an item in a table of
contents or index. It is typically the number of the item (e.g. "Part 1").
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="label">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <label> contains the textual part of an item in a table of contents
or index. It is typically the heading of the item (e.g. "Definitions").
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="target">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <target> is a reference to the target in a table of contents or index.
It is typically found in the last column and may contain like the page
number or beginning section number. It has the usual attributes for references.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
An element of type note is allowed for items such as footnotes, or the ear element
in an FR document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="referenceItem">
<xsd:annotation>
<xsd:documentation><![CDATA[
referenceItems are also allowed to be nested in a referenceItem.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="MainType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The main core type is the container for the main part of the
document. The content model defines the various aspects in a very
flexible model allowing arbitrary ordering. The general model allows
for properties, table of contents, preface and statements to be at the
top of the document, the preamble or enacting formula in the middle,
the levels and cross-heading or collections below that, backmatter at
the end, and notes interspersed anywhere.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:restriction base="BlockType">
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
In addition to placing properties in the <meta> area,
properties can also be found in the main container.
Elements derived from the core <property> and defined
within the property substitution group can also be
used.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="block">
<xsd:annotation>
<xsd:documentation><![CDATA[
Blocks derived from the core <block> property and
included in the block substitution group, such as
approval signatures, can be placed in the main
container.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="statement">
<xsd:annotation>
<xsd:documentation><![CDATA[
Statements or elements derived from the core
<statement> property and included in the statement
substitution group can be placed in the main
container.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="toc" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <main> body of the document may have a table of
contents. This may be authored or generated. The
model permits multiple <toc> elements.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:group ref="NoteStructure"/>
</xsd:choice>
<xsd:group ref="PreambleStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
The preamble structure, which includes the simple
enacting formula, is optional to allow for its removal in
enacted law.
]]></xsd:documentation>
</xsd:annotation>
</xsd:group>
<xsd:choice minOccurs="0">
<xsd:group ref="LevelStructure">
<xsd:annotation>
<xsd:documentation><![CDATA[
The document is permitted to be empty to allow for the
case when the document is newly created and still in a
drafting state.
]]></xsd:documentation>
</xsd:annotation>
</xsd:group>
<xsd:element ref="collection" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation><![CDATA[
The document may contain various collections of components,
such as proclamations in the Statutes at Large.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:element ref="action" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <action> contains information about the actions associated
with the document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="StatementType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The statement core type is used for most of the provisions that
begin a legislative document. Preambles, enactment formulas, and
other starting provisions are all derivations of statements.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseContentType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="marker">
<xsd:annotation>
<xsd:documentation><![CDATA[
A statement can contain markers.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
A statement can contain inline elements.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
A statement can contain note elements.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="block">
<xsd:annotation>
<xsd:documentation><![CDATA[
A statement can contain blocks.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="text">
<xsd:annotation>
<xsd:documentation><![CDATA[
Text context such as an opening <chapeau>, closing <continuation>,
or a <proviso> may be interspersed between levels in a hierarchical
structure.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="heading">
<xsd:annotation>
<xsd:documentation><![CDATA[
A statement can contain heading elements.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="content">
<xsd:annotation>
<xsd:documentation><![CDATA[
A statement can contain content elements.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A statement can be composed of hierarchy.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="statement">
<xsd:annotation>
<xsd:documentation><![CDATA[
A statement can be composed of statements.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="PreambleType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The preamble core type is the optional container for recitals and
the enacting formula. In most modern Bills, the preamble is omitted
and a single standalone enacting formula is used instead.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:sequence>
<xsd:group ref="HeadingStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <preamble> can, in some cases, begin with a heading.
]]></xsd:documentation>
</xsd:annotation>
</xsd:group>
<xsd:group ref="RecitalStructure" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <preamble> can be made up of a series of recitals.
Recitals typically begin "Whereas,".
]]></xsd:documentation>
</xsd:annotation>
</xsd:group>
<xsd:choice>
<xsd:element ref="enactingFormula" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
When the <preamble> is present, the enacting formula
ends the preamble in a Bill.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="resolvingClause" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
When the <preamble> is present, the resolving clause
ends the preamble in a Resolution.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="RulePreambleType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The RulePreambleType is the container for statements, signature blocks, and
the words of issuance for a Federal Register entry.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:sequence>
<xsd:group ref="StatementStructure" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <rulePreamble> is contains a series of statements
before the words-of-issuance.
]]></xsd:documentation>
</xsd:annotation>
</xsd:group>
<xsd:element ref="signatures" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <rulePreamble> may contain signatures before the
words-of-issuance.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="wordsOfIssuance" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
The words-of-issuance ends the rulePreamble.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="LevelType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The level core type is the basic element in the primary document
hierarchy. Levels are used to represent items ranging from Title,
Subtitle, etc, down to subsubclauses. Typically, a derived synonym
which more closely describes the level type will be used rather
than the abstract.
There are some level types found in U.S. Code which
do not have a defined name or number. For example, see the
undesignated heading levels in Title 12, Chapter 7.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:group ref="NumStructure" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <level> is usually numbered. However, in a few cases,
typically preliminary sections or with item lists, this
may not be the case.
]]></xsd:documentation>
</xsd:annotation>
</xsd:group>
<xsd:group ref="HeadingStructure" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <level> may have a heading, but this is not required.
]]></xsd:documentation>
</xsd:annotation>
</xsd:group>
</xsd:choice>
<xsd:element ref="marker" minOccurs="0"/>
<xsd:group ref="TocStructure" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation><![CDATA[
A table of contents is sometimes found within the level
hierarchy. Typically, this <toc> will be manually defined
rather than generated.
]]></xsd:documentation>
</xsd:annotation>
</xsd:group>
<xsd:element ref="statement" minOccurs="0"/> <!-- for long titles within divisions or other big levels. Used in Consolidated Appropriations bills -->
<xsd:group ref="LevelStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
The primary part of a <level>. This may not exist in
cases where the level has been repealed, omitted, spent,
or otherwise removed and a simple note has been left
behind.
]]></xsd:documentation>
</xsd:annotation>
</xsd:group>
<xsd:element ref="appendix" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation><![CDATA[
A level may have one or more appendices.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="AppropriationsType">
<xsd:annotation>
<xsd:documentation><![CDATA[
Appropriations are similar to levels, with additional attributes related
to the appropriation.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:sequence>
<xsd:group ref="HeadingStructure" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <appropriations> element can have multiple headings and sub-headings.
]]></xsd:documentation>
</xsd:annotation>
</xsd:group>
<xsd:group ref="LevelStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
The primary part of an appropriation is a level structure.
]]></xsd:documentation>
</xsd:annotation>
</xsd:group>
</xsd:sequence>
<xsd:attribute name="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
The level attribute specifies which level the appropriations
element is. This corresponds to major, intermediate, and small
in the BillDTD.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="forType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The forType attribute defines which type of budget grouping the
appropriation is for (for example, agency, bureau, or account).
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="forValue">
<xsd:annotation>
<xsd:documentation><![CDATA[
The forValue attribute defines which budget grouping the
appropriation is for. This could be a URI that points to a
web page giving details of the agency or account, for example.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="NumType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The numType is used to surround the numeric designation given
to a hierarchical level and other items in a document. The
<num> element should surround the complete text of the number
including any preceding prefix and any decoration and punctuation.
This is to allow the complete text to be properly displayed in
the published form.
Numbers can be used for either single values or for number ranges.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="InlineType">
<xsd:attributeGroup ref="ValueGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
Use the @value attribute to record a normalized value of
the <num> content. When the text content represents a
range of values, use the @beginValue and @endValue
attributes to record the range.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="HeadingType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The heading type is used to define heading and subheadings for
levels and other structured items. Often a heading will follow
a number.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ContentType"> </xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="InstructionType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The instruction type is used to describe an amendment or modification.
It contains a sequence of one or more amending actions which may have
quoted text or quoted content blocks associated.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseContentType">
<xsd:sequence>
<xsd:element ref="ref">
<xsd:annotation>
<xsd:documentation><![CDATA[
Specify at least one item to be amended or modified.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
Various inline elements can be used.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="marker">
<xsd:annotation>
<xsd:documentation><![CDATA[
Various markers can be used. This includes line breaks
that can be included for formatting purposes.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:sequence maxOccurs="4">
<xsd:element ref="amendingAction" maxOccurs="4">
<xsd:annotation>
<xsd:documentation><![CDATA[
The amending action describes an atomic operation within the
amendment.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:choice minOccurs="0">
<xsd:element ref="level" minOccurs="1" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation><![CDATA[
A list of amendments may be enumerated, typically
as items.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="quotedText">
<xsd:annotation>
<xsd:documentation><![CDATA[
A quoted text string may be associated with an
amending action (by position) as part of the processing
action.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="quotedContent">
<xsd:annotation>
<xsd:documentation><![CDATA[
A quoted structure may be associated with an
amending action (by position) as part of the processing
action.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="AmendingActionType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
An amending action type is used to describe an amendment action in terms that
a computer program can explain. It surrounds the human readable text
of the amendment action and adds @href, @pos, and @action attributes
to describe the same information for programmatic evaluation.
When an amendment contains multiple amending actions, they are to be executed
sequentially in the order in which they appear.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="InlineType">
<xsd:attributeGroup ref="ReferenceGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
Use the @href and @idref attributes along with the
Amending Group attributes to describe what is being
affected.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
<xsd:attributeGroup ref="AmendingGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
Use the @pos and other attributes to describe what is being
affected.
The attributes in the amending group should only be used
for references or amending actions within an amending instruction.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
<xsd:attributeGroup ref="AmendingActionGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
Use the @action attribute to describe the amending action being taken.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="NotesType">
<xsd:annotation>
<xsd:documentation><![CDATA[
Notes are a continguous set of notes, like the US Code notes below
a section.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:choice>
<xsd:sequence>
<xsd:element ref="heading" minOccurs="0"/>
<xsd:element ref="subheading" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="note" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <notes> element is a set of note elements.
Typically, rather than using the abstract <note>
element, the note will be a more specific elements
like <footnote>, etc.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:element ref="layout"/>
</xsd:choice>
<xsd:attributeGroup ref="NoteGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @type attribute is used to position the notes and the
@topic attribute to categorize the notes.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="NoteType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
A note is an annotation recording important information about the
document or it's content. The note may be rendered inline, or, in the
case of a positionedNote, it may be rendered out-of-line.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ContentType">
<xsd:attributeGroup ref="NoteGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @type attribute is used to position the note and the
@topic attribute to categorize the note.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
<xsd:attributeGroup ref="DateGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @date attribute is used to associate dates with a note.
This can be used to generate alerts.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
<xsd:attributeGroup ref="ReferenceGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @href attribute can used to associate external content
with a note.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="PositionedNoteType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The content model of a PositionedNoteType element is the same as
NoteType, with additional attributes to specify where the note is
to be rendered.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="NoteType">
<xsd:attributeGroup ref="RenderingPositionGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The RenderingPositionGroup attribute can used to
specify where the note is to be rendered.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="ElidedType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The content of the <elided> element is the text that is rendered in
place of the elided material. This content may be determined by
organizational conventions, such as the three- five- and seven- stars
found in the Federal Register. The content might also be authored to
indicate where the elided content can be found.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:restriction base="NoteType"> </xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="AppendixType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The appendix type is used to attach associated documents to the main
document. Typically, appendices are schedules or explanations, but
can also be documents that are incorporated by reference.
Appendices can be either included within (as is usually the case)
or they can be referenced via a URL.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:sequence>
<xsd:element ref="page" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
An appendix may optionally begin with a page number.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="preface" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
Appendices may optionally have a preface before the main body of
the appendix.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="main" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
For a structured appendix the body is in a main element.
This can include any hierarchical levels, sections, table of
contents, etc.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="content" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
For an unstructured appendix, the body is in a content element.
This can include paragraphs, headings, tables, lists, images, etc.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="notes" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
For notes at the end.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attributeGroup ref="LinkGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
If an <appendix> is to be included by reference, use the
@src attribute with a normal URL to point to the document
to be included.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
<xsd:attribute name="orientation" type="OrientationEnum" use="optional"
default="portrait">
<xsd:annotation>
<xsd:documentation><![CDATA[
Use the @orientation attribute to specify a "landscape"
orientation for the entire schedule. The orientation of
individual elements within the schedule can also be
defined.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="BackMatterType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The back matter type is used to contain multiple components at the
end of a document.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:choice maxOccurs="unbounded">
<xsd:element ref="content">
<xsd:annotation>
<xsd:documentation><![CDATA[
For unstructured content within back matter.
This can include paragraphs, headings, tables, lists, images, etc.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="index">
<xsd:annotation>
<xsd:documentation><![CDATA[
For indices within back matter.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:group ref="NoteStructure">
<xsd:annotation>
<xsd:documentation><![CDATA[
For notes, page numbers, etc.
]]></xsd:documentation>
</xsd:annotation>
</xsd:group>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="SignaturesType">
<xsd:annotation>
<xsd:documentation><![CDATA[
Defines a block for a set of signatures. An opening paragraph
is permitted as well as an ending date. In some cases, the date may
appear within the opening paragraph.
The signatures may either be specified serially or in a grid-like
layout. The <notation> element allows for text such as 'Attest:'
to be placed once per <signatures> block, or for each <signature>.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:restriction base="BlockType">
<xsd:sequence>
<xsd:element ref="notation" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
Defines a notation for the signatures or signature, such as 'Attest:'.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:choice>
<xsd:element ref="signature" maxOccurs="unbounded"/>
<xsd:element ref="layout"/>
</xsd:choice>
<xsd:element ref="date" minOccurs="0"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="SignatureType">
<xsd:annotation>
<xsd:documentation><![CDATA[
Defines a basic signature element comprising a name and optionally
the person's role, their affiliation, and a date. All fields can be
defined to include either an @href or an @idref to point to an
identifying resource that describes the person, their role, and
their affiliation.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:restriction base="BlockType">
<xsd:sequence>
<xsd:element ref="notation" minOccurs="0"/>
<xsd:choice maxOccurs="unbounded">
<xsd:element ref="autograph" minOccurs="0"/>
<xsd:element ref="name" minOccurs="0"/>
<xsd:element ref="role" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="affiliation" minOccurs="0"/>
<xsd:element ref="date" minOccurs="0">
<xsd:annotation>
<xsd:documentation><![CDATA[
A date can be associated with a group of signatures,
or using this element with a single signature.
]]></xsd:documentation> </xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="RefType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The ref type is used to denote references within the text of a
document. The text of the element is the human-friendly
representation while the text in the @href of @idref attribute
is the computer-friendly representation built in accordance with
the referencing model described above.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="PropertyType">
<xsd:attributeGroup ref="AmendingGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
Use the @pos and other attributes to describe
what or where is being affected.
The attributes in the amending group should only be used
for references or amending actions within an amending instruction.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="DateType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
The date type is used to denote dates within the text of a
document. The text of the element is the human-friendly
representation while the text in the @date attribute is the
computer-friendly normalized representation.
For dates at the top of a bill, this is the date or dates on which a
particular floor action occurred. There may be two dates associated with
an action, the regular calendar date and the legislative day. Sometimes
the textual descriptions of these dates do not divide neatly into two parts,
for example, the full date may be written as “February 3 (legislative day,
January 30), 1995”. Therefore, the date is just data characters, to be
entered in any fashion necessary.
Dates can be specified as either dates or as date times when the
document might not coincide with the local time zone.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:restriction base="PropertyType">
<xsd:attributeGroup ref="DateGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
Use the @date attribute to record a normalized value of the
date according to ISO 8601.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="QuotedTextType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
A quoted text type is an extraction of simple text from another
source or origin. If the quoted text is to have literal quotes
surrounding it, then those characters must be included in the text
surrounding the quoted text and not within it.
Quoted text is seen in amendments or modifications.
Use the @identifier attribute to establish the referencing context
of the quoted text.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="InlineType">
<xsd:choice>
<xsd:element ref="amendingAction" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="text" minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:attribute name="origin" type="xsd:anyURI" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @origin attribute is used to refer to the origin of
quoted text. The value must always be specified as a
relative URL conforming to the reference specification.
The @origin attribute is optional.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="QuotedContentType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
A quotedContentType is used for an extraction of potentially structured
text (text with XML elements) from another source or origin.
Quoted content is seen in USC Notes, amendments, and modifications.
Use the @identifier attribute to establish the referencing context
of the quoted structure
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ContentType">
<xsd:attribute name="origin" type="xsd:anyURI" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @origin attribute is used to refer to the origin of
quoted text. The value must always be specified as a
relative URL conforming to the reference specification.
The @origin attribute is optional.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="CollectionType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The collection core type is the basic element in a document that is
a collection of items, potentially from external sources. Collections
may contain individual items and/or other collections.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:sequence>
<xsd:choice maxOccurs="unbounded">
<xsd:element ref="preface" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation><![CDATA[
A collection may have a preface.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="toc" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation><![CDATA[
A table of contents may be found within a collection.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="content">
<xsd:annotation>
<xsd:documentation><![CDATA[
Used for content interspersed between items in a
collection.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="collection">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <collection> may contain other collections.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="component">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <component> contains an individual item
of a collection.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<xsd:complexType name="ComponentType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <ComponentType> is a generic container for an individual item. The
content may be contained in the item, or the content may be included
by reference.
Components are typically used in collections, but may exist in other
parts of the document.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ContentType">
<xsd:attribute name="origin" type="xsd:anyURI" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @origin attribute is used to refer to the origin of
the item. The value must always be specified as a
relative URL conforming to the reference specification.
The @origin attribute is optional.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="ReferenceGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
The content of a component can be included by reference,
identified by the ReferencGroup attibutes.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==================================================================== -->
<!-- Structural Building Blocks -->
<!-- ==================================================================== -->
<xsd:group name="NoteStructure">
<xsd:annotation>
<xsd:documentation><![CDATA[
Notes can be defined in a variety of ways and tend to occur in many
different places throughout legislation.
This structure allows for either individual notes or groups of
notes.
The number of times the notes might appear should be specified with
each use of this group.
]]></xsd:documentation>
</xsd:annotation>
<xsd:choice>
<xsd:element ref="note"/>
<xsd:element ref="notes"/>
</xsd:choice>
</xsd:group>
<!-- ==================================================================== -->
<xsd:group name="NumStructure">
<xsd:annotation>
<xsd:documentation><![CDATA[
The num structure allows for an unlimited number of occurrences in
a simple sequence. This is to allow an item to be renumbered without
creating a whole new parent item, typically a level or appendix structure.
Each <num> element should apply to a different temporal period.
Notes will typically only follow a <num> when found in a repealed,
omitted, spent, or otherwise removed section or level that is being
noted.
]]></xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="num" maxOccurs="unbounded"/>
<xsd:group ref="NoteStructure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<!-- ==================================================================== -->
<xsd:group name="HeadingStructure">
<xsd:annotation>
<xsd:documentation><![CDATA[
The primary structure of headings.
A <heading> should exist only once for a single temporal period.
Multiple headings are permitted to support versioning without having
to create a whole new parent level or appendix. This is
important in hierarchical upper levels where it is not desirable to
generate a whole new level should part of the heading change.
Use the optional <subheadings> in cases where there is one or more
subheadings to the parent item. Like the <heading> element,
different <subheading> elements can be added to apply to different
temporal periods.
Notes may follow the heading. Often this is a source note.
]]></xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:choice maxOccurs="unbounded">
<xsd:element ref="heading"/>
</xsd:choice>
<xsd:sequence>
<xsd:element ref="subheading" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="NoteStructure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:sequence>
</xsd:group>
<!-- ==================================================================== -->
<xsd:group name="TocStructure">
<xsd:annotation>
<xsd:documentation><![CDATA[
The table of contents structure defines the simple case of a <toc>
followed by optional notes.
]]></xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="toc"/>
<xsd:group ref="NoteStructure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<!-- ==================================================================== -->
<xsd:group name="StatementStructure">
<xsd:annotation>
<xsd:documentation><![CDATA[
The statement structure defines the simple case of a <statement>
(such as a <docTitle> or <longTitle>) followed by optional notes.
]]></xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="statement"/>
<xsd:group ref="NoteStructure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<!-- ==================================================================== -->
<xsd:group name="RecitalStructure">
<xsd:annotation>
<xsd:documentation><![CDATA[
The recital structure defines the simple case, found in a preamble,
of a recital followed by optional notes. Recitals usually start with
"Whereas,".
]]></xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="recital"/>
<xsd:group ref="NoteStructure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<!-- ==================================================================== -->
<xsd:group name="PreambleStructure">
<xsd:annotation>
<xsd:documentation><![CDATA[
The preamble structure defines the case where a <preamble>, an
<enactingFormula>, or a <resolvingClause> can exist within the
<main> part of a <lawDoc>. When a <preamble> is used, the
<enactingFormula> or <resolvingClause> is found within the
<preamble>, at the bottom.
Notes may be defined after the <preamble>, <enactingFormula>,
or <resolvingClause>.
]]></xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:choice>
<xsd:element ref="preamble"/>
<xsd:element ref="rulePreamble"/>
<xsd:element ref="enactingFormula"/>
<xsd:element ref="resolvingClause"/>
</xsd:choice>
<xsd:group ref="NoteStructure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<!-- ==================================================================== -->
<xsd:group name="LevelStructure">
<xsd:annotation>
<xsd:documentation><![CDATA[
The level structure is the primary structure of hierarchy. A level
is structured either as an instruction, loosely structured content,
or as a hierarchy.
]]></xsd:documentation>
</xsd:annotation>
<xsd:choice>
<xsd:sequence maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation><![CDATA[
Multiple <instruction> elements should only be used for cases
where the instruction has been versioned and it is not desirable
to create a whole new version of the parent level. This use
case should be very rare.
]]></xsd:documentation>
</xsd:annotation>
<xsd:element ref="instruction" maxOccurs="unbounded"/>
<xsd:group ref="NoteStructure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:sequence>
<xsd:annotation>
<xsd:documentation><![CDATA[
Multiple <content> elements should only be used for cases
where the content has been versioned and it is not desirable
to create a whole new version of the parent level. This use
case should be very rare.
]]></xsd:documentation>
</xsd:annotation>
<xsd:element ref="content" maxOccurs="unbounded"/>
<xsd:group ref="NoteStructure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:sequence maxOccurs="unbounded">
<xsd:choice>
<xsd:element ref="text">
<xsd:annotation>
<xsd:documentation><![CDATA[
Used for content interspersed between levels in a hierarchical
structure, such as an opening <chapeau>, an
interstitial or closing <continuation>, or a <proviso>.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
When a <level> is not the lowest level of a hierarchy, it
will primarily be made up of child levels.
It is generally desirable to push all versioning down to
lower elements to avoid replicating large portions of
the document to support version changes. This means that
the <num>, <heading>, and <subheading> elements should
be defined across different temporal periods rather than
defining <level> elements across temporal periods.
However, <level> elements can be defined with the
temporal attributes and this applies to the lower levels,
such as the <section> level, where practical
considerations necessitate versioning at the <level>
element.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="crossHeading">
<xsd:annotation>
<xsd:documentation><![CDATA[
A cross heading is an interstitial heading appearing
between level items, but is not part of the hierarchy.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="appropriations">
<xsd:annotation>
<xsd:documentation><![CDATA[
Appropriations elements are used in bills.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:group ref="NoteStructure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:choice>
</xsd:group>
<!-- ==================================================================== -->
<!-- Core Declarations -->
<!-- ==================================================================== -->
<xsd:element name="lawDoc" type="LawDocType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <lawDoc> is a base level element representing all types of
legislative documents.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="document" type="GenericDocType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <document> is a base level element for loosely structured
documents.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="meta" type="MetaType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <meta> block contains properties and sets of properties recording
metadata about the document. The information contained within the
meta block is not part of the official law and should not be printed
as such. Ordinarily, all text content in a document is intended for
publication in textual representations of the document. However,
this is not the case for textual content in the <meta> block. If,
for instance, a property in the meta block has text content, it
does not automatically become text to be included in a published
form. However, in some case this may be desirable and can be done.
However, the meaning is not implicit.
The <meta> block may contain elements from the Dublin Core.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="property" type="PropertyType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <property> is a simple value recorded with the document. Typically
properties are stored in the <meta> and/or <preface> blocks of the document.
If a property in the <meta> block has textual content, then this
text is not intended for publication. However, if a property in the <preface>
block has textual content, then this text is intended for publication.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="set" type="SetType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <set> is a grouping of properties in the <meta> block. Sets
themselves can contain other sets. Sets can be typed using the
@type attribute with the SetTypeEnum enumeration. By default, sets
are simply unordered bags of properties.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="preface" type="PrefaceType">
<xsd:annotation>
<xsd:documentation><![CDATA[
Documents may optionally have a preface before the main body of
the document. Some information in the preface may be duplicated
in the meta section. The content in the meta section would be
normalized, whereas the content in the preface would contain the
text as it is rendered for the user.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="toc" type="ToCIndexType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <toc> is a table of contents. A table of contents can appear in a
number of locations in document. A table of contents can appear in
three different locations:
- It can appear anywhere within the top of the <main> element,
before the levels.
- It can appear in any level following the <heading>, <subheading>,
and any notes.
- It can appear in an <appendix>.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="index" type="ToCIndexType" substitutionGroup="toc">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <toc> is a table of contents. A table of contents can appear in a
number of locations in document. A table of contents can appear in
three different locations:
- It can appear anywhere within the top of the <main> element,
before the levels.
- It can appear in any level following the <heading>, <subheading>,
and any notes.
- It can appear in an <appendix>.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="tableOfTitlesAndChapters" type="ToCIndexType" substitutionGroup="index">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <listOfSectionsAffected> is a list of sections that are affected. It is found
for example in the back matter of the CFR.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="listOfAgencies" type="ToCIndexType" substitutionGroup="index">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <listOfAgencies> is a list of agencies. It is found for example in the back
matter of the CFR.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="listOfSectionsAffected" type="ToCIndexType" substitutionGroup="index">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <listOfSectionsAffected> is a list of sections that are affected. It is found
for example in the back matter of the CFR.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="listOfBillsEnacted" type="ToCIndexType" substitutionGroup="index">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <listOfBillsEnacted> is a list of bills enacted into law; either public law or
private law. It is found for example in the front of the Statutes at Large.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="listOfPublicLaws" type="ToCIndexType" substitutionGroup="index">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <listOfPublicLaws> is a list of public laws. It is found for example in the
front of the Statutes at Large.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="listOfPrivateLaws" type="ToCIndexType" substitutionGroup="index">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <listOfPrivateLaws> is a list of private laws. It is found for example in the
front of the Statutes at Large.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="listOfConcurrentResolutions" type="ToCIndexType" substitutionGroup="index">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <listOfConcurrentResolutions> is list of concurrent resolutions. It is found
for example in the front of the Statutes at Large.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="listOfProclamations" type="ToCIndexType" substitutionGroup="index">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <listOfProclamations> is a list of bills presidential proclamations. It is
found for example in the front of the Statutes at Large.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="popularNameIndex" type="ToCIndexType" substitutionGroup="index">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <popularNameIndex> is a list of popular names. It is found for example in the
back of the Statutes at Large.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="subjectIndex" type="ToCIndexType" substitutionGroup="index">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <subjectIndex> list is an index of subjects. It is found for example in the
back of the Statutes at Large.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="referenceItem" type="ItemType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <referenceItem> is an item in a ToCIndex that refers to specific content
in the document (versus a concept or a grouping). The referenceItem may also
contain lower level referenceItems if the content being referred to contains
lower level content.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="headingItem" type="ItemType" substitutionGroup="referenceItem">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <headingItem> is an item in a ToCIndex that is a columnar-type heading for
the items below it. e.g. “Sec.” or “Page”. This is commonly repeated on
following pages.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="groupItem" type="ItemType" substitutionGroup="referenceItem">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
A <groupItem> is an item in a ToCIndex that collects a number of referenceItems
or other groupItems under a heading. The groupItem may or may not refer to a
specific place in the document. groupItems may also contain nested groupItems.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="designator">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <designator> is a reference to a numbered item in a table of contents or index.
It has attributes for leaders.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexType mixed="true">
<xsd:complexContent>
<xsd:extension base="RefType">
<xsd:attributeGroup ref="LeaderGroup"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="label">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <label> is a textual reference in a table of contents or index.
It has attributes for leaders.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexType mixed="true">
<xsd:complexContent>
<xsd:extension base="RefType">
<xsd:attributeGroup ref="LeaderGroup"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="target">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <target> is a reference to the target in a table of contents. This is
used to provide various items in the last column of the multiple column table of
contents entry. It has the usual attributes for references.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexType mixed="true">
<xsd:complexContent mixed="true">
<xsd:extension base="RefType">
<xsd:attributeGroup ref="LeaderGroup"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="main" type="MainType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <main> is the primary container for the body of a legislative
document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="statement" type="StatementType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <statement> is the general container for the provisions at the
beginning of legislation and for heading sections in FR rulePreambles.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="preamble" type="PreambleType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <preamble> is a container for the "Whereas" clauses and the
enacting formula. Modern practice is to not use the preamble,
but to use a standalone enacting formula. However, for the rare
cases where a preamble is desired, the tags are made available.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="recital" type="StatementType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <recital> is a preliminary statement in a bill stating the reasons
for the Bill. Modern legislation seldom uses a recital although it
can still occur.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="resolvingClause" type="StatementType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <resolvingClause> is a special type of statement that begins with "resolved",
that is specified just before the main content of the resolution. The
<resolvingClause> can appear as either the last statement in a preamble or,
when a preamble is not present, standalone within the main element just prior
to the main provisions.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="enactingFormula" type="StatementType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <enactingFormula> is specified just before the main provisions of
a bill. The <enactingFormula> can appear as either the last statement
in a preamble or, when a preamble is not present, standalone within
the main element just prior to the main provisions.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="rulePreamble" type="RulePreambleType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <rulePreamble> is a container for the statements, signature blocks, and words-of-issuance
within a Rule or Proposed Rule in the Federal Register.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="wordsOfIssuance" type="StatementType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <wordsOfIssuance> is a special type of statement that introduces the content
of a regulation rule or proposed rule. The <wordsOfIssuance> is the last
statement in a rule preamble.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="level" type="LevelType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <level> is the general container for the main provisions of
legislation, often organized as a hierarchy.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="appropriations" type="AppropriationsType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <appropriations> element is used for nesting
the various levels of appropriation agencies, bureaus, and
departments, as well as the various budget areas within those
agencies, bureaus, and departments.
The level attribute is used to distinguish major, intermediate,
and small levels of nesting.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="num" type="NumType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <num> surrounds the numeric designation assigned to a level
in legislation. Numbering is not always present. The number should
always include the surrounding decoration including descriptive
text and parenthesis and grammar. This number should never be
auto-generated. A normalized value based on the text content of the
<num> element should be stored in the @value attribute.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="text" type="ContentType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <text> element is a base class for <chapeau>, <continuation>,
<proviso>, <def> and any other type of text that can be interspersed
in the hierarchy of a document. It is similar to the <content> tag,
but has more limited applicability. In general, use the <content>
tag when a hierarchical level is made up largely of general content
and use one of the derivatives of the text tag when limited text
is found interstitially between levels or other tags.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="heading" type="HeadingType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <heading> is an optional part of a level element and various other
elements. The heading is based on the content primitive and can contain
various elements including definitions.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="subheading" type="HeadingType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <subheading> is an optional part of a level element and various
other elements. Like the heading, the subheading is based on the
content primitive and can contain various elements including
definitions. A subheading should only be created if a heading
already exists.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="crossHeading" type="HeadingType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <crossHeading> is a non-hierarchical heading construct which can
be placed within and amongst heading levels. A <crossHeading> acts
as a divider, separating items within a level.
Cross headings are typically shown as center-aligned headings
without any level identification or level numbering.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="instruction" type="InstructionType">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <instruction> is a container that has formalized text describing an
amendment or a modification. An <instruction> contains the <amendingAction>
and <quotedText> and/or <quotedContent> elements necessary to describe an
amendment.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="amendingAction" type="AmendingActionType">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <amendingAction> is an atomic-level amendment instruction. The amending action
contains the text related to that action and the type of amending action to be
performed as well as optional attributes that old more information.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="appendix" type="AppendixType">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <appendix> is a generic element appended to the main part of a
document. Appendices can either be inline or included via a @src
reference.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="schedule" type="AppendixType" substitutionGroup="appendix">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <schedule> is a type of appendix.
It can contain a wide variety of content and the containment model is
consequently relatively loose. A <schedule> is often a list of numbered items,
sometimes arranged in columns. Sometimes a schedule is a list of
consequential amendments. Schedules can also be tables or documents
defined externally such as extradition treaties or trade agreements.
Schedules are sometimes printed in a landscape rather that portrait
orientation.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="backMatter" type="BackMatterType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <backMatter> is a container for the back matter at the end of a
document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="signatures" type="SignaturesType" substitutionGroup="block">
<xsd:annotation>
<xsd:documentation><![CDATA[
Some documents conclude with one or more signatures indicating sponsorship,
attestation, or approval. These signatures are placed within this container.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="signature" type="SignatureType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <signature> consists of a name and, any of the optional elements role,
affiliation, and date. Both the name and the role may be hyperlinked to something
which identifies the person or role.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- Substitution groups allow the elements below to appear in
numerous places. -->
<xsd:element name="ref" type="RefType" substitutionGroup="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <ref> element is a reference or link to another document, a
location within another document, or a location with the same
document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="date" type="DateType" substitutionGroup="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <date> element is a wrapper around dates. A normalized value
of the date text can be stored in the @date attribute or in the
@startDate and @endDate attributes in the case of a date range.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="quotedText" type="QuotedTextType" substitutionGroup="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <quotedText> element is used for an extraction of simple text from
another source or origin. If the quoted text is to have literal
quotes surrounding it, then those characters must be included in the
text surrounding the quoted text. The <quotedText> element does not
generate those characters.
Quoted text is seen in amendments or modifications. The <quotedText>
element is not used for other cases where quote characters may appear,
such as place name or titles.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="quotedContent" type="QuotedContentType" substitutionGroup="content">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <quotedContent> element is used for an extraction of structured
text (text with XML elements) from another source or origin or destined
for another document. Quoted content is used in USC Notes, amendments,
and modifications. If the quoted content is to have literal quotes
within it, then those characters must be included in the text. The
<quotedContent> element does not generate those characters.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="collection" type="CollectionType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <collection> is the container for a collection of items or components.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="component" type="ComponentType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <component> is an item or a reference to an item within a collection.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="fragment" type="BlockType" substitutionGroup="block">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <fragment> element is used to contain an arbitrary fragment of
a USLM document. It may be used to transport a portion of a document
between subsystems, such as retrieving a section from a repository.
Having a fragment wrapper would allow, for instance, two sibling
elements to be transported, or allow an element to be moved with
processing instructions around it.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- Generic Definitions -->
<!-- ==================================================================== -->
<xsd:element name="elided" type="ElidedType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <elided> element is a replacement for text content that has
been elided or omitted from this document. The optional ref
attribute may point to the text that was elided.
The <elided> element may only contain text content (typically
asterisks, called 'stars').
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- Generic Definitions -->
<!-- ==================================================================== -->
<xsd:complexType name="LayoutType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A layout type is used to denote an area of text intended to
be displayed in a column-oriented layout similar to a table. Use
the <header>, <row>, and <column> elements to denote the rows and
columns of the structure. A <layout> can be either row oriented or
column oriented.
Use layout types when describing legislative structure in a column
oriented fashion. For regular tables as shown in forms, use HTML
tables.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <layout> type can contain various types of elements
as rows including headers, rows, TOC items, blocks,
and contents. All elements, aside from <column> elements,
are treated as rows when found directly within a layout
structure.
]]></xsd:documentation>
</xsd:annotation>
<xsd:element ref="header"/>
<xsd:element ref="row"/>
<xsd:element ref="block"/>
<xsd:element ref="content"/>
<xsd:group ref="NoteStructure"/>
</xsd:choice>
<xsd:attribute name="orientation" type="OrientationEnum" use="optional"
default="portrait">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @orientation attribute is used to specify a landscape
orientation for the published form. This is primarily used
for schedules or tables.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="RowType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A row type denotes a row entry within a layout structure. In
addition to the formal <row> element, any child element directly in
a <layout> element, aside from a <column> element, is regarded as a row.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseBlockType">
<xsd:sequence>
<xsd:element ref="column" minOccurs="1" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation><![CDATA[
A row contains one or more column cells.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ColumnType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
A column type is a cell in a layout structure. As a <content>
element, it can contain a wide range of text and elements.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent mixed="true">
<xsd:extension base="ContentType">
<xsd:attributeGroup ref="CellGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
Use the elements of the cell group to specify
the row and column spans.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
A "P" type is a simple unnumbered paragraph. As a <content>
element, it can contain a wide range of text and elements.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ContentType"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="BrType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A break type is simple marker element denoting a line break.
]]></xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="MarkerType">
<xsd:attribute name="verticalSpace" type="MediumStringSimpleType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @verticalSpace attribute defines the amount of vertical space associated
with the line break. If the attribute is not present, no extra space between lines
is added. If the attribute is present, the value is the amount of space
to add to the position of the next line. The value may specify units, using CSS
syntax (e.g. "4em" or "12pt"). If no units are given, the units are assumed to be
points. The values "nextPage" and "nextColumn" are used to force a page break or
column break.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="ImgType">
<xsd:annotation>
<xsd:documentation><![CDATA[
An image type is a simple marker element denoting where a graphic image is to be
inserted. This is commonly used within the <figure> element.
]]></xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="MarkerType">
<xsd:attribute name="orientation" type="OrientationEnum" use="optional"
default="portrait">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @orientation attribute is used to specify a landscape
orientation for the published form. If the @orientation attribute
is not set, the default orientation for all elements is portrait.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="LinkGroup">
<xsd:annotation>
<xsd:documentation><![CDATA[
Use the @src attribute to point to the image with a normal URL.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<!-- ==================================================================== -->
<!-- Generic Declarations -->
<!-- ==================================================================== -->
<xsd:element name="layout" type="LayoutType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <layout> element is used to denote an area of text intended to
be displayed in a columns-oriented format similar to table. Use
the <header>, <row>, and <column> elements to denote the rows and
columns of the structure.
Use <layout> when describing legislative structure in a column-
oriented fashion. For regular tables as shown for forms, use HTML
tables.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="header" type="RowType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <header> denotes a header row within a column-based structure.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="row" type="RowType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <row> denotes a row entry within a column-based structure.
In addition to the formal <row> element, any child element
in a <layout> element, aside from a <column> element, is regarded as
a row. There should always be a <layout> element as an
ancestor of a <row>. Both column and row spans may be defined for
<row> entries.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="column" type="ColumnType" substitutionGroup="content">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <column> denotes a column when specified directly under a <layout>
or a cell when specified within a <row> (or equivalent) in a
<layout> structure. There should always be a <layout> element as an
ancestor of a <column>. Both column and row spans may be defined for
<column> entries.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="p" type="PType" substitutionGroup="content">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <p> is a simple paragraph. This is different from the
more complex numbered <paragraph> element used for
the formal paragraph level of legislative documents.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="br" type="BrType" substitutionGroup="marker">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <br> is simple marker element denoting a line break.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="img" type="ImgType" substitutionGroup="marker">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <img> is a simple marker element denoting where a graphic
image is to be inserted. Use the @src attribute to point to the
image with a normal URL.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="figure" type="ContentType" substitutionGroup="content">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <figure> is a unit of content, optionally with a caption, that
is self-contained, that is typically referenced as a single unit from
the main flow of the document, and that can be moved away from the
main flow of the document without affecting the documents meaning.
A figure usually contains an <img> element, but may instead contain
mathematical or chemical markup. This element is modelled after the
HTML5 <figure> element.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="figCaption" type="ContentType" substitutionGroup="content">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <figCaption> represents a caption or legend for a figure. It can
appear before or after the content within the figure. This element is
modelled after the HTML5 <figCaption> element, although in HTML5,
only one figCaption is allowed per figure element.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="center" type="ContentType" substitutionGroup="content">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <center> element contains content text that is to be centered on the page.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="fillIn" type="ContentType" substitutionGroup="content">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <fillIn> is an inline spacer which denotes an area to be filled
in a form designed to be printed. Usually, a <fillIn> is rendered
as dotted lines with the text content within the <fillIn> tags shown
just below. If parentheses are to surround the text shown below the line,
then those parentheses should be included in the text content.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="checkBox" type="ContentType" substitutionGroup="content">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <checkBox> is an inline tick box which denotes a box to be filled
in on an form.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="b" type="InlineType" substitutionGroup="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <b> is a simple inline element for text that is to be rendered in bold text.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="i" type="InlineType" substitutionGroup="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <i> is a simple inline element for text that is to be rendered in italic text.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="sub" type="InlineType" substitutionGroup="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <sub> is a simple inline element for text that is to be rendered in subscript text.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="sup" type="InlineType" substitutionGroup="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <sup> is a simple inline element for text that is to be rendered in superscript text.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="del" type="InlineType" substitutionGroup="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <del> is a simple inline element for text that is to be rendered as deleted text
within a modification.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ins" type="InlineType" substitutionGroup="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <ins> is a simple inline element for text that is to be rendered inserted text
within a modification.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="headingText" type="InlineType" substitutionGroup="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <headingText> element is for text that bears some relationship to a <heading>
element. It may be a reference to a heading, or an amendment to a heading,
or a quoted heading. The @role attribute is used to indicate the role and
thereby styling of the typeset text.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="span" type="InlineType" substitutionGroup="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <span> element is general purpose wrapper for text similar to an
html span. The @role attribute can be used to specify the type
of span.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="committee" type="InlineType" substitutionGroup="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <committee> element is used to tag references to committees in text. It is
used, for example, in the legislative history section of a Public Laws.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="coverTitle" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <coverTitle> is the version of the title that is rendered on the
cover page. This is, for example, found on some Public Laws.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="coverText" type="ContentType" substitutionGroup="content">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <coverText> is content on the cover page that is in addition to, or
instead of, the coverTitle.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- Lists -->
<!-- ==================================================================== -->
<xsd:complexType name="ListType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
ListType is for simple lists. It differs from the XHTML <ol> and <ul> by
allowing numbering elements to be included explicitly, instead of
generating them automatically. This allows more control over the numbering.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseContentType">
<xsd:sequence>
<xsd:element ref="listItem" maxOccurs="unbounded" minOccurs="1"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ListItemType" mixed="true">
<xsd:annotation>
<xsd:documentation><![CDATA[
ListItemType supports simple one-level lists, with or without numbering.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseContentType">
<xsd:sequence>
<xsd:element ref="num" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="listContent" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="list" type="ListType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
A list contains list items for ordered or unordered lists.
]]>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="listItem" type="ListItemType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
A listItem is an item in a list. It contains an optional
character to indicate an ordered or unordered list,
followed by the text of the item in a listContent element.
]]>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="listContent" type="InlineType">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
The listContent contains list item content, including text,
phrase-level (inline), content markers and notes.
]]>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- Synonyms -->
<!-- ==================================================================== -->
<xsd:element name="bill" type="LawDocType" substitutionGroup="lawDoc">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <bill> is a document containing proposed law. When enacted, a
<bill> becomes a <plaw>.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="pLaw" type="LawDocType" substitutionGroup="lawDoc">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <pLaw> (public or private law) is a document containing an approved bill,
whether public or private.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="statute" type="LawDocType" substitutionGroup="lawDoc">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <statute> is a document containing an enacted bill.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="statutesAtLarge" type="LawDocType" substitutionGroup="lawDoc">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <statutesAtLarge> volume is a compilation of statutes, public and private laws,
proclamations, and concurrent resolutions.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="resolution" type="LawDocType" substitutionGroup="lawDoc">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <resolution> is a simple resolution, joint resolution, or concurrent
resolution, as those terms are defined by the U.S. Congress.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="amendment" type="LawDocType" substitutionGroup="lawDoc">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <amendment> is a document containing a pre-enactment stage amendment.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="uscDoc" type="LawDocType" substitutionGroup="lawDoc">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <uscDoc> is a document containing a title or appendix of the
U.S. Code.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="frDoc" type="LawDocType" substitutionGroup="lawDoc">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <frDoc> is a document containing a Federal Register issue or
part of a Federal Register Issue.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="rule" type="LawDocType" substitutionGroup="lawDoc">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <rule> is a document containing a regulatory rule, as found in
the Federal Register.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="notice" type="LawDocType" substitutionGroup="lawDoc">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <notice> is a document containing a regulatory notice, as found in
the Federal Register.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="presidentialDoc" type="LawDocType" substitutionGroup="lawDoc">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <presidentialDoc> is a document containing a presidential document,
such as a proclamation or an executive order. The Federal Register
contains presidential documents, as does a Statutes at Large volume.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="cfrDoc" type="LawDocType" substitutionGroup="lawDoc">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <cfrDoc> is a document containing a title of the Code of
Federal Regulations.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- PropertyType -->
<!-- -->
<!-- Properties are used in the <meta> and <preface> elements to capture -->
<!-- metadata, which can be machine-processable (meta) or designed to -->
<!-- be rendered in print or on the screen (preface). -->
<!-- ==================================================================== -->
<xsd:element name="docNumber" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <docNumber> is a property that contains a numeric designation
assigned to this document. The document number should not contain
any document prefix. Use the <docType> for the prefix.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="docPublicationName" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <docPublicationName> is a property used to record the name of
the publication that this document is part of. The values of the
<docPublicationName> are not defined.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="docReleasePoint" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <docReleasePoint> is a property used to record the point the document
was released. The values of the doc status are not defined. For a USC title,
this may be the Public Law number that the title is updated through.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="docStage" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <docStage> is a property used to hold the stage of the document, such
as Enrolled. The attribute @value holds the normalized stage, from the list
at https://www.gpo.gov/help/index.html#about_congressional_bills.htm, capitalized.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="docPart" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <docPart> is a property used to identify the part of the document, such
as "Part 2 of 3". The attribute @role holds the type of part, such as "book",
"part", etc.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="publicPrivate" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <publicPrivate> is a property that documents whether the bill, public law, or other
document is public or private. Two values are allowed: 'public' (the default value) and
'private'.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="congress" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <congress> is a property used to identify the congress number that the
document was created in. When in the <meta> element, the content is the normalized
form (e.g., 115). When in the <preface> element, the content is the form that
is rendered (e.g., One Hundred Fifteenth Congress of the United States of America).
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="session" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <session> is a property used to identify the session within a congress
that the document was created in. When in the <meta> element, the content is the
normalized form (e.g., 1). When in the <preface> element, the content is the form
that is rendered (e.g., AT THE FIRST SESSION).
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="citableAs" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <citableAs> is a property that specifies how this document may be cited.
There may be more than one form of citation for a document, such as a public law
that may also be cited by its Statute volume and page number.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="enrolledDateline" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <enrolledDateline> is a property used to hold the date and location
of the start of the session, which is printed on enrolled bills.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="starPrint" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
A reprint of a bill, resolution, amendment, or committee report correcting
technical or substantive errors in a previous printing; so called because of the
small black star that appears on the front page or cover. Within the <meta>
section, the content is the star print number; 0 is the default (no star print).
The maximum is 4 stars printed. Within the <preface> section, the content is
the actual star characters to be printed.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="PropertyType">
<xsd:attribute name="number" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @number attribute defines the reprint number.
]]></xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:nonNegativeInteger">
<xsd:maxInclusive value="4"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="processedBy" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <processedBy> property identifies a system that has processed the document.
It can be used to identify a converter or editing tool that was used to make the
document. There may be more than one <processedBy> element.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- Action elements for the preface -->
<xsd:element name="actionDescription" type="PropertyType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <actionDescription> is the description of the floor action taking place.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="actionInstruction" type="PropertyType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <actionInstruction> is the instruction related to the action.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="organization" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <organization> is a property used to identify the organization associated
with the document. The role attribute may be used to identify the type
of organization, e.g. @role="agency".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="volume" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <volume> is a property used to identify volume of the document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="issue" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <issue> is a property used to identify the issue of the document.
Sometimes used in conjunction with the volume.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="startingPage" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <startingPage> is a property used to identify the starting page of the
document. Sometimes used in conjunction with the volume.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="endingPage" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <endingPage> is a property used to identify the enduing page of the
document. Sometimes used in conjunction with the volume.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="startingProvision" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <startingProvision> is a property used to identify the starting provision
of the document. This is used for example for part ranges for a volume of the CFR.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="endingProvision" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <endingProvision> is a property used to identify the ending provision
of the document. This is used for example for part ranges for a volume of the CFR.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="provisionRange" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <provisionRange> property gives the starting and ending provision that
is covered by the document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="subject" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <subject> is a property used to identify the subject associated
with the document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="affected" type="PropertyType" substitutionGroup="property">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <affected> is a property used to identify a provision or document
that is affected by this document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- Elements for use in the signature. -->
<!-- -->
<!-- ==================================================================== -->
<xsd:element name="notation">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <notation> is the label for a signature or group of signatures.
It contains simple text, such as the word "Attest:".
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="BaseContentType">
<xsd:attribute name="type" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The @type attribute defines the type of notation. Currently
only 'attestation' is used.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="autograph" type="PropertyType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <autograph> is the representation of the "wet signature". It
is often a reference to an image, or a special character.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="name" type="PropertyType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <name> is the name of a person attesting to this document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="role" type="PropertyType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <role> is the role of the person named in <name>.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="affiliation" type="PropertyType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <affiliation> is the affiliation of the <name> in the signature.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- The action set and its properties -->
<!-- -->
<!-- ==================================================================== -->
<xsd:element name="action">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <action> is the set of information pertaining to a floor action
for a measure or amendment, i.e., the actual description of the floor
action and the date on which the action occurred.
]]></xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="date" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <date> in an <action> is the date or dates on which a particular action occurred.
There may be two dates associated with an action, the regular calendar date and the
legislative day. Sometimes the textual descriptions of these dates do not divide
neatly into two parts, for example, the full date may be written as
“February 3 (legislative day, January 30), 1995”. Therefore, the ACTION DATE
is just data characters, to be entered in any fashion necessary.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="actionDescription" minOccurs="0"/>
<xsd:element ref="actionInstruction" minOccurs="0"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- ==================================================================== -->
<!-- StatementType -->
<!-- -->
<!-- ==================================================================== -->
<xsd:element name="longTitle" type="StatementType" substitutionGroup="statement">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <longTitle> is a statement that sets out the purposes of the bill
in general terms. Typically, it includes a <docTitle> followed by an
<officialTitle>.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="docTitle" type="StatementType" substitutionGroup="statement">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <docTitle> is a statement, such as "An Act", that precedes the long title
in legislation. The short title is typically declared in the
first clause of a bill and is tagged in that location using the
<shortTitle> tag.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="officialTitle" type="StatementType" substitutionGroup="statement">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <officialTitle> is the portion of the long title after the <docTitle>.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- InlineType -->
<!-- -->
<!-- ==================================================================== -->
<xsd:element name="shortTitle" type="InlineType" substitutionGroup="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <shortTitle> element is used to surround the short title when it
is first defined, usually in the first clause of the bill. Note
that the <shortTitle> element is to be used in this case rather than
the <docTitle> element.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="term" type="InlineType" substitutionGroup="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <term> is a word or phrase that is being defined. The <term> element
surrounds the words for the term being defined. It is possible
for multiple <term> elements to be specified within a definition.
When a <term> is the words in an alternate language, then the
xml:lang attribute must be used. <term> elements can also be used
for synonyms or near-synonyms which are also specified within the
definition. The containing element (such as a section) has a
@role="definitions" to indicate that definitions are contained within it.
The <term> element does not define rendering or add quote characters.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="entity" type="InlineType" substitutionGroup="inline">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <entity> is a generic inline element to identify a text fragment
introducing or referring to an ontological concept. This is modelled after
the Akoma Ntoso <entity> element. The @role attribute can be used to
distinguish the concept. For example, a NAICS code or SEC code would be
<entity @role="NAICS"> or <entity @role="SEC">.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- LevelType -->
<!-- -->
<!-- ==================================================================== -->
<xsd:element name="preliminary" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <preliminary> level is used to create a hierarchical region
of the main document consisting of preliminary clauses that
are outside of the main document hierarchy.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- Levels above the Section -->
<!-- -->
<!-- ==================================================================== -->
<xsd:element name="title" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <title> is the top hierarchical level of a legislative document.
When naming a title, use the case-sensitive prefix "t".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="subtitle" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <subtitle> is a hierarchical level of a legislative document.
When naming a subtitle, use the case-sensitive prefix "st".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="part" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <part> is a hierarchical level of a legislative document.
When naming a part, use the case-sensitive prefix "p".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="subpart" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <subpart> is a hierarchical level of a legislative document.
When naming a subpart, use the case-sensitive prefix "sp".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="division" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <division> is a hierarchical level of a legislative document.
When naming a Division, use the case-sensitive prefix "d".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="subdivision" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <subdivision> is a hierarchical level of a legislative document.
When naming a subdivision, use the case-sensitive prefix "sd".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="chapter" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <chapter> is a hierarchical of a legislative document.
When naming a chapter, use the case-sensitive prefix "ch".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="subchapter" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <subchapter> is a hierarchical level of a legislative document.
When naming a subchapter, use the case-sensitive prefix "sch".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="article" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <article> is a used in bills.
When naming an article, use the case-sensitive prefix "a".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="subarticle" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <subarticle> is used in bills.
When naming a subarticle, use the case-sensitive prefix "sa".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- Appendices -->
<!-- -->
<!-- ==================================================================== -->
<xsd:element name="compiledAct" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <compiledAct> is used in title appendices.
When naming a compiledAct, use the case-sensitive prefix "cact".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="courtRules" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
<courtRules> is used in title appendices.
courtRules is a containment level that is not named.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="courtRule" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <courtRule> is used in appendices.
When naming a courtRule, use the case-sensitive prefix "crule".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="reorganizationPlans" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
<reorganizationPlans> are used in title appendices.
reorganizationPlans is a containment level that is not named.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="reorganizationPlan" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <reorganizationPlan> is used in title appendices.
When naming a reorganizationPlan, use the case-sensitive prefix "rplan".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- Section Level -->
<!-- -->
<!-- ==================================================================== -->
<xsd:element name="section" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <section> is the primary hierarchical level in a USC Title, bill
or other formally structured document.
When naming a section, use the case-sensitive prefix "s".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- Levels below the Section -->
<!-- -->
<!-- ==================================================================== -->
<xsd:element name="subsection" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <subsection> is an optional hierarchical level below a section.
Subsections are usually numbered with lower-case letters.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="paragraph" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <paragraph> is a numbered level usually found below a
subsection in the document hierarchy. Paragraphs are
usually numbered with Arabic numbers.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="subparagraph" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <subparagraph> is a level below a paragraph in the document
hierarchy. Subparagraphs are usually numbered with upper-case
letters.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="clause" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <clause> is an optional below-section hierarchical level.
Clauses are usually numbered with lower-case Roman numerals.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="subclause" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <subclause> is an optional hierarchical level below a clause.
Subclauses are usually numbered with upper-case Roman numerals.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="item" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <item> is a level usually below a subclause in the document
hierarchy. Items are usually numbered with double lower-case
letters.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="subitem" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <subitem> is a level below an item in the document
hierarchy. Subitems are usually numbered with double upper-case
letters.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="subsubitem" type="LevelType" substitutionGroup="level">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <subsubitem> is a level below a subitem in the document
hierarchy. Subsubitems are usually numbered with triple lower-case
letters.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- Collections -->
<!-- -->
<!-- ==================================================================== -->
<xsd:element name="notices" type="CollectionType" substitutionGroup="collection">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <notices> is a collection of notices. These are typically found in the
Federal Register.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="rules" type="CollectionType" substitutionGroup="collection">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <rules> is a collection of rules. These are typically found in the
Federal Register.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="proposedRules" type="CollectionType" substitutionGroup="collection">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <proposedRules> is a collection of proposed rules. These are typically
found in the Federal Register.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="presidentialDocs" type="CollectionType" substitutionGroup="collection">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <presidentialDocs> is a collection of Presidential Documents.
These are typically found in the Federal Register and Statutes at Large volumes.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="agencyGroup" type="CollectionType" substitutionGroup="collection">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <agencyGroup> is a collection related to a specific agency. It is, for
example, used in the Federal Register to group together a set of rules,
proposed rules, or notices.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="publicLaws" type="CollectionType" substitutionGroup="collection">
<xsd:annotation>
<xsd:documentation><![CDATA[
<publicLaws> is a collection of public laws. It is found, for example, in a Statutes
at Large volume.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="privateLaws" type="CollectionType" substitutionGroup="collection">
<xsd:annotation>
<xsd:documentation><![CDATA[
<privateLaws> is a collection of private laws. It may be found, for example, in a
Statutes at Large volume.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="concurrentResolutions" type="CollectionType" substitutionGroup="collection">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <concurrentResolutions> is a collection of concurrent resolutions. It is found, for
example in a Statutes at Large volume.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- TextType -->
<!-- -->
<!-- ==================================================================== -->
<xsd:element name="chapeau" type="ContentType" substitutionGroup="text">
<xsd:annotation>
<xsd:documentation><![CDATA[
Use a <chapeau> whenever there is introductory text that comes
before lower levels in a level hierarchy and the text alone is not
permitted by the content model.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="continuation" type="ContentType" substitutionGroup="text">
<xsd:annotation>
<xsd:documentation><![CDATA[
Use a <continuation> for interstitial text or whenever there is
final text that comes after lower levels in a level hierarchy and
the text alone is not permitted by the content model.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="proviso" type="ContentType" substitutionGroup="text">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <proviso> is a sentence, clause, or paragraph that states conditions
relating to the law it is related to. A proviso generally begins with
"Provided that" or "Provided", or "Provided further". Proviso can contain
their own complex structure including sandwich structures.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- Notes -->
<!-- -->
<!-- ==================================================================== -->
<xsd:element name="notes" type="NotesType">
<xsd:annotation>
<xsd:documentation><![CDATA[
The <notes> is a container for sets of individual notes.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="note" type="NoteType">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <note> is a generic element for notes associated with items in the
document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- In-flow Notes -->
<!-- -->
<!-- ==================================================================== -->
<xsd:element name="sourceCredit" type="NoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <sourceCredit> is a note included to indicate the source of a
provision. It usually will contain a reference to the source of the
provision and the Statute(s) that have affected it. Source credits are
usually set out in parenthesis. The surrounding parentheses are shown
in the text - they are not automatically added.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="uscNote" type="NoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <uscNote> is a note below sections and big-level headings in the U.S.
Code.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="legislativeHistory" type="NotesType" substitutionGroup="notes">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <legislativeHistory> contains a set of notes about a piece of legislation.
It is typically found at the end of a Public Law.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="statutoryNote" type="NoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <statutoryNote> is a note that becomes part of the law.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="editorialNote" type="NoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <editorialNote> is a note included for editorial purposes only. While
present in the text of the document as printed, it is not a part of
the law. Editorial notes are often used to record where provisions
have been omitted or other changes have been made, or in a preface of the CFR.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="changeNote" type="NoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <changeNote> is a note that records a non-substantive change that
has been made to the document. Usually change notes are set out in
square brackets and these must be set out in the text and must not
be automatically added.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="authority" type="NoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <authority> is a note included to indicate the authority behind
a provision. In the CFR and statutes at large, the <authority> is
the law which authorizes the regulation.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="source" type="NoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <source> is a note included to indicate the source of a provision.
In the CFR, the <source> is a citation to an entry in the Federal
Register where the provision is sourced. <source> is similar to
<sourceCredit> in the U.S. Code, but is specifically called "Source"
in the CFR.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="effectiveDateNote" type="NoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <effectiveDateNote> is a note to indicate the effectivity of a
provision. In the CFR, the <effectiveDateNote> contains a heading,
explanatory text, and sometimes the text of the provision that will
become effective on that date. Some of this new text may be elided.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="frDocId" type="NoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <frDocId> is a note identifying the Document ID of an entry
in the Federal Register.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="billingCode" type="NoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <billingCode> is a note containing the billing code of an item. It is
used, for example, in the Federal Register.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="editionNote" type="NoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <editionNote> is a note that describes the edition of the
document. It is used, for example, in the preface of the CFR for the
"Official Edition Notice".
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="organizationNote" type="NoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <organizationNote> is a note that identifies an organization
associated with the document. It is used, for example, in the preface of
the CFR and the statutes at large to identify the organization that
publishes the document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="citationNote" type="NoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <citationNote> is a note that gives information about how to cite
this document and/or about citations within the document. It is used,
for example, in the preface of the CFR.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="explanationNote" type="NoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <explanation> is a note that gives an explanation. It is used, for example.
in the preface in the CFR and statutes at large to explain the document.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="findingAidsNote" type="NoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <findingAids> element is one or more finding aids, typically found in the
back matter of a publication. It is used, for example, in the back matter of the CFR.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ==================================================================== -->
<!-- Positioned Notes -->
<!-- -->
<!-- ==================================================================== -->
<xsd:element name="footnote" type="PositionedNoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <footnote> is a note that is to be rendered at the bottom of a page
or column or table. It typically has a corresponding <ref idref="xxx">
element, where the @idref matches the @id of the <footnote>.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="sidenote" type="PositionedNoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <sidenote> is a note that is to be rendered in the side margins of a
page. It may have a corresponding <ref idref="xxx"> element, where the
@idref matches the @id of the <sidenote>.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="endnote" type="PositionedNoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <endnote> is a note that is to be rendered at the bottom logical
unit of content. The logical unit can be specified in the @relativeTo
attribute. It typically has a corresponding <ref idref="xxx"> element,
where the @idref matches the @id of the <endnote>.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="leftRunningHead" type="PositionedNoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <leftRunningHead> contains the text to be printed in the left hand
running header. It is used, for example, in the CFR.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="rightRunningHead" type="PositionedNoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <rightRunningHead> contains the text to be printed in the right hand
running header. It is used, for example, in the CFR.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ear" type="PositionedNoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <ear> contains the text to be printed in the outside margin. It is
used, for example, in the CFR.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="endMarker" type="PositionedNoteType">
<xsd:annotation>
<xsd:documentation><![CDATA[
An <endMarker> element is used at the end of a document and usually contains
the &#x25CB; (&all;) character. It is used, for example, in a public law.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- Page and line markers are often handled with processing instructions so that they
do not interfere with the content model of the document. In some cases, such as
a public law's stat page number and the Federal Register issue, the page number is
considered part of the document content and is used in citations. The elements below
support this and can be considered alternatives to processing instructions. -->
<xsd:element name="page" type="PositionedNoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <page> is a note indicating where a page boundary occurred. The
content will typically be the page number.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="line" type="PositionedNoteType" substitutionGroup="note">
<xsd:annotation>
<xsd:documentation><![CDATA[
A <line> is a note indicating where a line boundary occurred.
The content will typically be the line number, and possibly also
the page number.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:schema>