<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema targetNamespace="https://oid-base.com/xhtml-light.xsd"
            xmlns="https://oid-base.com/xhtml-light.xsd"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
         schemaLocation="xml.xsd"/>

  <xsd:complexType name="xhtml-light" mixed="true">
    <xsd:annotation>
      <xsd:documentation>
	     The types below have been added to describe the subset of the
             XHTML tags that users are allowed to use for <description/>,
             <information/> and <address/> elements.
	     This provides for the use of <a/>, <br/>, <center/>, <font/>,
             <hr/>, <i/>, <img/>, <li/>, <tt/>, <sub/>, <sup/>, and <ul/>
             tags of XHTML.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="a" type="aType"/>
      <xsd:element name="b" type="bType"/>
      <xsd:element name="br" type="brType"/>
      <xsd:element name="center" type="centerType"/>
      <xsd:element name="font" type="fontType"/>
      <xsd:element name="hr" type="hrType"/>
      <xsd:element name="i" type="iType"/>
      <xsd:element name="img" type="imgType"/>
      <xsd:element name="li" type="liType"/>
      <xsd:element name="tt" type="ttType"/>
      <xsd:element name="sub" type="subType"/>
      <xsd:element name="sup" type="supType"/>
      <xsd:element name="ul" type="ulType"/>
    </xsd:choice>    
  </xsd:complexType>

  <xsd:complexType name="aType" mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="inline"/>
    </xsd:choice>
    <xsd:attributeGroup ref="CoreAttributs"/>
    <xsd:attribute name="type" type="xsd:string"/>
    <xsd:attribute name="name" type="xsd:NMTOKEN"/>
    <xsd:attribute name="href" type="xsd:string"/>
    <xsd:attribute name="rel" type="xsd:string"/>
    <xsd:attribute name="rev" type="xsd:string"/>
  </xsd:complexType>

  <xsd:complexType name="bType" mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="a" type="aType"/>
        <xsd:group ref="inline"/>
      </xsd:choice>
    <xsd:attributeGroup ref="CoreAttributs"/>
  </xsd:complexType>

  <xsd:complexType name="brType">
    <xsd:attributeGroup ref="CoreAttributs"/>
  </xsd:complexType>

  <xsd:complexType name="centerType" mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="p" type="pType"/>
      <xsd:element name="ul" type="ulType"/>
      <xsd:element name="ol" type="olType"/>
      <xsd:element name="hr" type="hrType"/>
      <xsd:element name="center" type="centerType"/>
      <xsd:element name="a" type="aType"/>
      <xsd:group ref="inline"/>
    </xsd:choice>
    <xsd:attributeGroup ref="CoreAttributs"/>
  </xsd:complexType>

  <xsd:complexType name="fontType" mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="a" type="aType"/>
      <xsd:group ref="inline"/>
    </xsd:choice>
    <xsd:attributeGroup ref="CoreAttributs"/>
    <xsd:attribute name="size" type="xsd:string"/>
    <xsd:attribute name="color" type="xsd:string"/>
    <xsd:attribute name="face" type="xsd:string"/>
  </xsd:complexType>

  <xsd:complexType name="hrType">
    <xsd:attributeGroup ref="CoreAttributs"/>
    <xsd:attribute name="align">
      <xsd:simpleType>
        <xsd:restriction base="xsd:NMTOKEN">
          <xsd:enumeration value="left"/>
          <xsd:enumeration value="center"/>
          <xsd:enumeration value="right"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
    <xsd:attribute name="noshade">
      <xsd:simpleType>
        <xsd:restriction base="xsd:NMTOKEN">
          <xsd:enumeration value="noshade"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
    <xsd:attribute name="size" type="xsd:string"/>
    <xsd:attribute name="width" type="xsd:string"/>
  </xsd:complexType>

  <xsd:complexType name="iType" mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="a" type="aType"/>
      <xsd:group ref="inline"/>
    </xsd:choice>
    <xsd:attributeGroup ref="CoreAttributs"/>
  </xsd:complexType>

  <xsd:complexType name="imgType">
    <xsd:attributeGroup ref="CoreAttributs"/>
    <xsd:attribute name="src" type="xsd:string" use="required"/>
    <xsd:attribute name="alt" type="xsd:string" use="required"/>
    <xsd:attribute name="name" type="xsd:NMTOKEN"/>
    <xsd:attribute name="longdesc" type="xsd:string"/>
    <xsd:attribute name="height" type="xsd:string"/>
    <xsd:attribute name="width" type="xsd:string"/>
    <xsd:attribute name="align">
      <xsd:simpleType>
        <xsd:restriction base="xsd:NMTOKEN">
          <xsd:enumeration value="top"/>
          <xsd:enumeration value="middle"/>
          <xsd:enumeration value="bottom"/>
          <xsd:enumeration value="left"/>
          <xsd:enumeration value="right"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
    <xsd:attribute name="border" type="xsd:string"/>
  </xsd:complexType>

  <xsd:complexType name="liType" mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="p" type="pType"/>
      <xsd:element name="ul" type="ulType"/>
      <xsd:element name="ol" type="olType"/>
      <xsd:element name="hr" type="hrType"/>
      <xsd:element name="center" type="centerType"/>
      <xsd:element name="a" type="aType"/>
      <xsd:group ref="inline"/>
    </xsd:choice>
    <xsd:attributeGroup ref="CoreAttributs"/>
  </xsd:complexType>

  <xsd:complexType name="olType">
    <xsd:sequence minOccurs="1" maxOccurs="unbounded">
      <xsd:element name="li" type="liType"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="CoreAttributs"/>
  </xsd:complexType>
  <xsd:complexType name="pType" mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="a" type="aType"/>
        <xsd:group ref="inline"/>
      </xsd:choice>
    <xsd:attributeGroup ref="CoreAttributs"/>
  </xsd:complexType>

  <xsd:complexType name="subType" mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="a" type="aType"/>
        <xsd:group ref="inline"/>
      </xsd:choice>
    <xsd:attributeGroup ref="CoreAttributs"/>
  </xsd:complexType>

  <xsd:complexType name="supType" mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="a" type="aType"/>
      <xsd:group ref="inline"/>
    </xsd:choice>
    <xsd:attributeGroup ref="CoreAttributs"/>
  </xsd:complexType>

  <xsd:complexType name="ttType" mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="a" type="aType"/>
      <xsd:group ref="inline"/>
    </xsd:choice>
    <xsd:attributeGroup ref="CoreAttributs"/>
  </xsd:complexType>

  <xsd:complexType name="ulType">
    <xsd:sequence minOccurs="1" maxOccurs="unbounded">
      <xsd:element name="li" type="liType"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="CoreAttributs"/>
  </xsd:complexType>   

  <xsd:attributeGroup name="CoreAttributs">
    <xsd:attribute name="id" type="xsd:ID"/>
    <xsd:attribute name="class" type="xsd:string"/>
    <xsd:attribute name="style" type="xsd:string"/>
    <xsd:attribute name="title" type="xsd:string"/>
  </xsd:attributeGroup>

  <xsd:group name="inline">
     <xsd:choice>
      <xsd:element name="br" type="brType"/>
      <xsd:element name="img" type="imgType"/>
      <xsd:element name="tt" type="ttType"/>
      <xsd:element name="i" type="iType"/>
      <xsd:element name="b" type="bType"/>
      <xsd:element name="font" type="fontType"/>
      <xsd:element name="sub" type="subType"/>
      <xsd:element name="sup" type="supType"/>
     </xsd:choice>
  </xsd:group>
</xsd:schema>
