-- XSD schema extracted from ITU-T T.805 (01/2012)
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="htx" xmlns="http://www.jpeg.org/hiddentext/htx" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xhtml="http://www.w3.org/1999/xhtml" targetNamespace="http://www.jpeg.org/hiddentext/htx" elementFormDefault="qualified">
<xs:import namespace="http://www.w3.org/1999/xhtml" schemaLocation="http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd">
</xs:import>
<xs:simpleType name="Shape">
<xs:annotation>
<xs:documentation>Enumeration of shapes.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:enumeration value="rect" />
<xs:enumeration value="poly" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Coords">
<xs:annotation>
<xs:documentation>
Comma separated list of integer values.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="\d+,\s*\d+(,\s*\d+,\s*\d+)+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Percentage">
<xs:annotation>
<xs:documentation>Percentage value.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="\d+(\.\d+)?%?" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Angle">
<xs:annotation>
<xs:documentation>nn for radian measure or nn° for degree</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[\-\+]?\d+(\.\d+)?°?" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Resolution">
<xs:annotation>
<xs:documentation>
Resolution value in dots per inch (dpi). A single number stands for horizontal and vertical resolution having the same values. Two numbers can be used to define different resolutions for horizontal (first number) and vertical (second number).
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="\d+(\.\d+)?(,\*s\d+(\.\d+)?)?" />
</xs:restriction>
</xs:simpleType>
<xs:attributeGroup name="coreattrs">
<xs:annotation>
<xs:documentation>
core attributes common to most elements
id document-wide unique id
class space separated list of classes
lang language code (backwards compatible)
xml:lang language code (as per XML 1.0 spec)
dir direction for weak/neutral text
iref URI of the image corresponding to the region
</xs:documentation>
</xs:annotation>
<xs:attribute name="id" type="xs:ID" />
<xs:attribute name="class" type="xs:NMTOKENS" />
<xs:attribute name="iref" type="xs:anyURI" />
<xs:attributeGroup ref="xhtml:i18n" />
</xs:attributeGroup>
<xs:attributeGroup name="posattrs">
<xs:annotation>
<xs:documentation>
positioning attributes common to most elements
shape shape of an element
coords coordinates of an element
angle angle of text direction
0 is horizontal to the right, positive values
mean counter-clockwise rotation
baseline angle of the characters in a line of text
</xs:documentation>
</xs:annotation>
<xs:attribute name="shape" type="Shape" default="rect" />
<xs:attribute name="coords" type="Coords" />
<xs:attribute name="angle" type="Angle" default="0" />
<xs:attribute name="baseline" type="Angle" default="0" />
</xs:attributeGroup>
<xs:element name="htx">
<xs:annotation>
<xs:documentation>
Global container for hidden text and annotations. Contains language attributes, an optional xhtml head and a mandatory body.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="xhtml:head" minOccurs="0" />
<xs:element ref="annotations" minOccurs="0" />
<xs:element ref="hiddentext" minOccurs="0" />
</xs:sequence>
<xs:attribute name="res" type="Resolution" />
<xs:attribute name="width" type="xs:integer" />
<xs:attribute name="height" type="xs:integer" />
<xs:attributeGroup ref="coreattrs" />
</xs:complexType>
</xs:element>
<xs:element name="param">
<xs:annotation>
<xs:documentation>
User defined properties for a hidden text and annotations object.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="hiddentext">
<xs:annotation>
<xs:documentation>
A hiddentext element contains hidden text for a page.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="region" maxOccurs="unbounded" />
</xs:sequence>
<xs:attributeGroup ref="coreattrs" />
<xs:attributeGroup ref="posattrs" />
</xs:complexType>
</xs:element>
<xs:element name="region">
<xs:annotation>
<xs:documentation>
A region element contains hidden text for a page region.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded">
<xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="paragraph" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="word" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="char" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="snippet" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attributeGroup ref="coreattrs" />
<xs:attributeGroup ref="posattrs" />
</xs:complexType>
</xs:element>
<xs:element name="paragraph">
<xs:annotation>
<xs:documentation>
A paragraph element contains hidden text for a paragraph.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded">
<xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="line" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="word" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="char" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="snippet" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attributeGroup ref="coreattrs" />
<xs:attributeGroup ref="posattrs" />
</xs:complexType>
</xs:element>
<xs:element name="line">
<xs:annotation>
<xs:documentation>
A line element contains hidden text for a line.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded">
<xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="word" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="char" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="snippet" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attributeGroup ref="coreattrs" />
<xs:attributeGroup ref="posattrs" />
</xs:complexType>
</xs:element>
<xs:element name="word">
<xs:annotation>
<xs:documentation>
A word element contains hidden text for a word.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded">
<xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="char" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="snippet" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="altword" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="conf" type="Percentage" />
<xs:attributeGroup ref="coreattrs" />
<xs:attributeGroup ref="posattrs" />
</xs:complexType>
</xs:element>
<xs:element name="altword">
<xs:annotation>
<xs:documentation>
A altword element contains hidden text for a alternative word.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded">
<xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="char" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="snippet" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="conf" type="Percentage" />
<xs:attributeGroup ref="coreattrs" />
<xs:attributeGroup ref="posattrs" />
</xs:complexType>
</xs:element>
<xs:element name="char">
<xs:annotation>
<xs:documentation>
A char element contains a hidden text character.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded">
<xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="altchar" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="conf" type="Percentage" />
<xs:attributeGroup ref="coreattrs" />
<xs:attributeGroup ref="posattrs" />
</xs:complexType>
</xs:element>
<xs:element name="altchar">
<xs:annotation>
<xs:documentation>
A altchar element contains a hidden text alternative character.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="conf" type="Percentage" />
<xs:attributeGroup ref="coreattrs" />
<xs:attributeGroup ref="posattrs" />
</xs:complexType>
</xs:element>
<xs:element name="snippet">
<xs:annotation>
<xs:documentation>
A snippet element identifies an unrecognised portion of the image.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="param" />
</xs:sequence>
<xs:attributeGroup ref="coreattrs" />
<xs:attributeGroup ref="posattrs" />
</xs:complexType>
</xs:element>
<xs:element name="annotations">
<xs:annotation>
<xs:documentation>
The annotations element represents annotated, clickable and highlighted areas on a page.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element ref="area" />
</xs:sequence>
<xs:attributeGroup ref="coreattrs" />
</xs:complexType>
</xs:element>
<xs:element name="area">
<xs:annotation>
<xs:documentation>
An area element represents a clickable and/or highlighted area on a page.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="href" type="xhtml:URI" />
<xs:attribute name="alt" type="xhtml:Text" />
<xs:attribute name="target" type="xhtml:URI" default="_self" />
<xs:attribute name="shape" type="Shape" default="rect" />
<xs:attribute name="coords" type="Coords" />
<xs:attributeGroup ref="coreattrs" />
</xs:complexType>
</xs:element>
</xs:schema>