Files
git-law/dtd/uslm/uslm-table-module-2.0.17.xsd
2025-08-11 08:00:11 -07:00

377 lines
18 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
xmlns:uslm="http://schemas.gpo.gov/xml/uslm"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
targetNamespace="http://www.w3.org/1999/xhtml"
xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
xmlns:mathml="http://www.w3.org/1998/Math/MathML"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
attributeFormDefault="unqualified" version="2.0.17">
<xsd:annotation>
<xsd:documentation>
This is the module definition for XHTML tables within USLM. It includes the XHTML1.1 Table module,
defining the groups, elements, and attributes that are needed.
Version: 2024-07-30.
</xsd:documentation>
<xsd:documentation source="xhtml-copyright-1.xsd"/>
</xsd:annotation>
<xsd:import namespace="http://www.w3.org/1999/xhtml/datatypes/"
schemaLocation="xhtml-datatypes-1.xsd">
<xsd:annotation>
<xsd:documentation>
This import brings in the datatypes used in XHTML
</xsd:documentation>
</xsd:annotation>
</xsd:import>
<xsd:import namespace="http://schemas.gpo.gov/xml/uslm"
schemaLocation="uslm-2.0.17.xsd">
<xsd:annotation>
<xsd:documentation>
This import brings in the USLM schema so it can be referenced.
</xsd:documentation>
</xsd:annotation>
</xsd:import>
<xsd:import schemaLocation="mathml3.xsd" namespace="http://www.w3.org/1998/Math/MathML">
<xsd:annotation>
<xsd:documentation> MathML3 Schema without modifications.
</xsd:documentation>
</xsd:annotation>
</xsd:import>
<xsd:attributeGroup name="Common.attrib">
<xsd:attributeGroup ref="uslm:ClassificationGroup"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="xhtml.Common.attrib">
<xsd:annotation>
<xsd:documentation>
Define the common attributes.
</xsd:documentation>
</xsd:annotation>
<xsd:attributeGroup ref="xhtml:Common.attrib"/>
</xsd:attributeGroup>
<xsd:group name="xhtml.Flow.mix">
<xsd:annotation>
<xsd:documentation>
Define the flow model (block or inline elements) for tables. This includes USLM elements.
</xsd:documentation>
</xsd:annotation>
<xsd:choice>
<xsd:element ref="uslm:br"/>
<xsd:element ref="uslm:p"/>
<xsd:element ref="xhtml:table"/>
<xsd:element ref="mathml:math"/>
<xsd:group ref="xhtml:uslm.Inline.mix"/>
</xsd:choice>
</xsd:group>
<xsd:group name="uslm.Inline.mix">
<xsd:annotation>
<xsd:documentation>
Define the inline model (character-level elements) for tables. This includes USLM elements.
</xsd:documentation>
</xsd:annotation>
<xsd:choice>
<xsd:element ref="uslm:inline"/>
<xsd:element ref="uslm:note"/>
</xsd:choice>
</xsd:group>
<xsd:element name="table" type="xhtml:xhtml.table.type">
<xsd:annotation>
<xsd:documentation>
The HTML table element.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- Include the xhtml-table-1.xsd module directly, with changes as listed below -->
<!-- Change the xs prefix to xsd, add namespaces as appropriate -->
<!-- Add the appropriate attributes to xhtml.table.attlist and xhtml.td.attlist -->
<xsd:annotation>
<xsd:documentation>
This is based on the XML Schema Tables module for XHTML
</xsd:documentation>
<xsd:documentation source="xhtml-copyright-1.xsd"/>
</xsd:annotation>
<xsd:annotation>
<xsd:documentation>
Tables
* table, caption, thead, tfoot, tbody, colgroup, col, tr, th, td
This module declares element types and attributes used to provide
table markup similar to HTML 4.0, including features that enable
better accessibility for non-visual user agents.
</xsd:documentation>
<xsd:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_tablemodule"/>
</xsd:annotation>
<xsd:attributeGroup name="xhtml.frame.attrib">
<xsd:attribute name="frame">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="void"/>
<xsd:enumeration value="above"/>
<xsd:enumeration value="below"/>
<xsd:enumeration value="hsides"/>
<xsd:enumeration value="lhs"/>
<xsd:enumeration value="rhs"/>
<xsd:enumeration value="vsides"/>
<xsd:enumeration value="box"/>
<xsd:enumeration value="border"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="xhtml.rules.attrib">
<xsd:attribute name="rules">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="none"/>
<xsd:enumeration value="groups"/>
<xsd:enumeration value="rows"/>
<xsd:enumeration value="cols"/>
<xsd:enumeration value="all"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="xhtml.CellVAlign.attrib">
<xsd:attribute name="valign">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="top"/>
<xsd:enumeration value="middle"/>
<xsd:enumeration value="bottom"/>
<xsd:enumeration value="baseline"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="xhtml.CellHAlign.attrib">
<xsd:attribute name="align">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="left"/>
<xsd:enumeration value="center"/>
<xsd:enumeration value="right"/>
<xsd:enumeration value="justify"/>
<xsd:enumeration value="char"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="char" type="xh11d:Character"/>
<xsd:attribute name="charoff" type="xh11d:Length"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="xhtml.scope.attrib">
<xsd:attribute name="scope">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="row"/>
<xsd:enumeration value="col"/>
<xsd:enumeration value="rowgroup"/>
<xsd:enumeration value="colgroup"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="xhtml.td.attlist">
<xsd:attributeGroup ref="xhtml:xhtml.Common.attrib"/>
<xsd:attribute name="abbr" type="xh11d:Text"/>
<xsd:attribute name="axis" type="xh11d:CDATA"/>
<xsd:attribute name="headers" type="xsd:IDREFS"/>
<xsd:attributeGroup ref="xhtml:xhtml.scope.attrib"/>
<xsd:attribute name="rowspan" type="xh11d:Number" default="1"/>
<xsd:attribute name="colspan" type="xh11d:Number" default="1"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellHAlign.attrib"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellVAlign.attrib"/>
<xsd:attributeGroup ref="uslm:HtmlTdGroup"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:attributeGroup>
<xsd:group name="xhtml.td.content">
<xsd:sequence>
<xsd:group ref="xhtml:xhtml.Flow.mix" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<xsd:complexType name="xhtml.td.type" mixed="true">
<xsd:group ref="xhtml:xhtml.td.content"/>
<xsd:attributeGroup ref="xhtml:xhtml.td.attlist"/>
</xsd:complexType>
<xsd:attributeGroup name="xhtml.th.attlist">
<xsd:attributeGroup ref="xhtml:xhtml.Common.attrib"/>
<xsd:attribute name="abbr" type="xh11d:Text"/>
<xsd:attribute name="axis" type="xh11d:CDATA"/>
<xsd:attribute name="headers" type="xsd:IDREFS"/>
<xsd:attributeGroup ref="xhtml:xhtml.scope.attrib"/>
<xsd:attribute name="rowspan" type="xh11d:Number" default="1"/>
<xsd:attribute name="colspan" type="xh11d:Number" default="1"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellHAlign.attrib"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellVAlign.attrib"/>
<xsd:attribute name="leaders" type="uslm: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:anyAttribute namespace="##other" processContents="lax"/>
</xsd:attributeGroup>
<xsd:group name="xhtml.th.content">
<xsd:sequence>
<xsd:group ref="xhtml:xhtml.Flow.mix" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<xsd:complexType name="xhtml.th.type" mixed="true">
<xsd:group ref="xhtml:xhtml.th.content"/>
<xsd:attributeGroup ref="xhtml:xhtml.th.attlist"/>
</xsd:complexType>
<xsd:attributeGroup name="xhtml.tr.attlist">
<xsd:attributeGroup ref="xhtml:xhtml.Common.attrib"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellHAlign.attrib"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellVAlign.attrib"/>
</xsd:attributeGroup>
<xsd:group name="xhtml.tr.content">
<xsd:sequence>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="th" type="xhtml:xhtml.th.type"/>
<xsd:element name="td" type="xhtml:xhtml.td.type"/>
</xsd:choice>
</xsd:sequence>
</xsd:group>
<xsd:complexType name="xhtml.tr.type">
<xsd:group ref="xhtml:xhtml.tr.content"/>
<xsd:attributeGroup ref="xhtml:xhtml.tr.attlist"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
<xsd:attributeGroup name="xhtml.col.attlist">
<xsd:attributeGroup ref="xhtml:xhtml.Common.attrib"/>
<xsd:attribute name="span" type="xh11d:Number" default="1"/>
<xsd:attribute name="width" type="xh11d:MultiLength"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellHAlign.attrib"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellVAlign.attrib"/>
</xsd:attributeGroup>
<xsd:group name="xhtml.col.content">
<xsd:sequence/>
</xsd:group>
<xsd:complexType name="xhtml.col.type">
<xsd:group ref="xhtml:xhtml.col.content"/>
<xsd:attributeGroup ref="xhtml:xhtml.col.attlist"/>
</xsd:complexType>
<xsd:attributeGroup name="xhtml.colgroup.attlist">
<xsd:attributeGroup ref="xhtml:xhtml.Common.attrib"/>
<xsd:attribute name="span" type="xh11d:Number" default="1"/>
<xsd:attribute name="width" type="xh11d:MultiLength"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellHAlign.attrib"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellVAlign.attrib"/>
</xsd:attributeGroup>
<xsd:group name="xhtml.colgroup.content">
<xsd:sequence>
<xsd:element name="col" type="xhtml:xhtml.col.type" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<xsd:complexType name="xhtml.colgroup.type">
<xsd:group ref="xhtml:xhtml.colgroup.content"/>
<xsd:attributeGroup ref="xhtml:xhtml.colgroup.attlist"/>
</xsd:complexType>
<xsd:attributeGroup name="xhtml.tbody.attlist">
<xsd:attributeGroup ref="xhtml:xhtml.Common.attrib"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellHAlign.attrib"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellVAlign.attrib"/>
</xsd:attributeGroup>
<xsd:group name="xhtml.tbody.content">
<xsd:choice>
<xsd:element name="tr" type="xhtml:xhtml.tr.type"/>
<xsd:element ref="uslm:page"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="xhtml.tbody.type">
<xsd:group ref="xhtml:xhtml.tbody.content" maxOccurs="unbounded"/>
<xsd:attributeGroup ref="xhtml:xhtml.tbody.attlist"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
<xsd:attributeGroup name="xhtml.tfoot.attlist">
<xsd:attributeGroup ref="xhtml:xhtml.Common.attrib"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellHAlign.attrib"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellVAlign.attrib"/>
</xsd:attributeGroup>
<xsd:group name="xhtml.tfoot.content">
<xsd:choice>
<xsd:element name="tr" type="xhtml:xhtml.tr.type"/>
<xsd:element ref="uslm:page"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="xhtml.tfoot.type">
<xsd:group ref="xhtml:xhtml.tfoot.content" maxOccurs="unbounded"/>
<xsd:attributeGroup ref="xhtml:xhtml.tfoot.attlist"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
<xsd:attributeGroup name="xhtml.thead.attlist">
<xsd:attributeGroup ref="xhtml:xhtml.Common.attrib"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellHAlign.attrib"/>
<xsd:attributeGroup ref="xhtml:xhtml.CellVAlign.attrib"/>
</xsd:attributeGroup>
<xsd:group name="xhtml.thead.content">
<xsd:sequence>
<xsd:element name="tr" type="xhtml:xhtml.tr.type" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<xsd:complexType name="xhtml.thead.type">
<xsd:group ref="xhtml:xhtml.thead.content"/>
<xsd:attributeGroup ref="xhtml:xhtml.thead.attlist"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
<xsd:attributeGroup name="xhtml.caption.attlist">
<xsd:attributeGroup ref="xhtml:xhtml.Common.attrib"/>
</xsd:attributeGroup>
<xsd:group name="xhtml.caption.content">
<xsd:choice>
<xsd:group ref="xhtml:uslm.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="uslm:p" minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="xhtml.caption.type" mixed="true">
<xsd:group ref="xhtml:xhtml.caption.content"/>
<xsd:attributeGroup ref="xhtml:xhtml.caption.attlist"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
<xsd:attributeGroup name="xhtml.table.attlist">
<xsd:attributeGroup ref="xhtml:xhtml.Common.attrib"/>
<xsd:attribute name="summary" type="xh11d:Text"/>
<xsd:attribute name="width" type="xh11d:Length"/>
<xsd:attribute name="border" type="xh11d:Pixels"/>
<xsd:attributeGroup ref="xhtml:xhtml.frame.attrib"/>
<xsd:attributeGroup ref="xhtml:xhtml.rules.attrib"/>
<xsd:attribute name="cellspacing" type="xh11d:Length"/>
<xsd:attribute name="cellpadding" type="xh11d:Length"/>
<xsd:attributeGroup ref="uslm:HtmlTableGroup"/>
</xsd:attributeGroup>
<xsd:group name="xhtml.table.content">
<xsd:sequence>
<xsd:element name="caption" type="xhtml:xhtml.caption.type" minOccurs="0"/>
<xsd:choice>
<xsd:element name="col" type="xhtml:xhtml.col.type" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="colgroup" type="xhtml:xhtml.colgroup.type" minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:choice>
<xsd:sequence>
<xsd:element name="thead" type="xhtml:xhtml.thead.type" minOccurs="0"/>
<xsd:element name="tfoot" type="xhtml:xhtml.tfoot.type" minOccurs="0"/>
<xsd:element name="tbody" type="xhtml:xhtml.tbody.type" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:choice>
<xsd:element name="tr" type="xhtml:xhtml.tr.type" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:choice>
</xsd:sequence>
</xsd:group>
<xsd:complexType name="xhtml.table.type">
<xsd:group ref="xhtml:xhtml.table.content"/>
<xsd:attributeGroup ref="xhtml:xhtml.table.attlist"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
</xsd:schema>