<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.w3.org/1999/xhtml"
           xmlns="http://www.w3.org/1999/xhtml">

  <xs:annotation>
    <xs:documentation>
      This is the XML Schema module of named XHTML content models for SLXHTML.
      SLXHTML is a profile of XHTML (see W3C copyright notice below).

      @author: Gregor Karlinger gregor.karlinger@cio.gv.at
      $Id: slxhtml-model-1.xsd,v 1.2 2003/11/13 18:38:16 karlinger Exp $
    </xs:documentation>
    <xs:documentation source="xhtml-copyright-1.xsd"/>
  </xs:annotation>
  
  <xs:annotation>
    <xs:documentation>
      XHTML Document Model

      This module describes the groupings of elements/attributes that make up
      common content models for XHTML elements.

      XHTML has following basic content models:

          Inline.mix;          character-level elements
          Block.mix;           block-like elements, eg., paragraphs and lists
          Flow.mix;            any block or inline elements
          HeadOpts.mix;        Head Elements
          InlinePre.mix;       Special class for pre content model
          InlineNoAnchor.mix;  Content model for Anchor

      Any groups declared in this module may be used
      to create element content models, but the above are
      considered 'global' (insofar as that term applies here).
      
      XHTML has the following Attribute Groups
           Core.extra.attrib
           I18n.extra.attrib
           Common.extra
           
      The above attribute Groups are considered Global      
      
    </xs:documentation>
  </xs:annotation>  
    
  <xs:attributeGroup name="I18n.extra.attrib">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: attributeGroup "dir.attrib" removed.
      </xs:documentation>
    </xs:annotation>  
  </xs:attributeGroup>

  <xs:attributeGroup name="Common.extra">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: attributeGroup "style.attrib" removed.
       </xs:documentation>
    </xs:annotation>      
  </xs:attributeGroup>

  <xs:attributeGroup name="Core.extra.attrib">
  </xs:attributeGroup>

    
  <xs:group name="HeadOpts.mix">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: elements "script", "meta", "link", "object" removed.
       </xs:documentation>
    </xs:annotation>      
    <xs:choice>
      <xs:element ref="style"/>
    </xs:choice>
  </xs:group>

  <xs:group name="Edit.class">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: elements "ins", "del" removed.
       </xs:documentation>
    </xs:annotation>      
    <xs:choice/>
  </xs:group>

  <xs:group name="Script.class">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: elements "script", "noscript" removed.
       </xs:documentation>
    </xs:annotation>      
    <xs:choice/>
  </xs:group>

  <xs:group name="Misc.extra">
    <xs:choice/>
  </xs:group>

  <xs:group name="Misc.class">
    <xs:choice>
      <xs:group ref="Edit.class"/>
      <xs:group ref="Script.class"/>
      <xs:group ref="Misc.extra"/>
    </xs:choice>
  </xs:group>

  <xs:group name="InlStruct.class">
    <xs:choice>
      <xs:element ref="br"/>
      <xs:element ref="span"/>
    </xs:choice>
  </xs:group>

  <xs:group name="InlPhras.class">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: elements "dfn", "samp", "kbd", "var", "q" , "abbr" and
                 "acronym" removed.
       </xs:documentation>
    </xs:annotation>      
    <xs:choice>
      <xs:element ref="em"/>
      <xs:element ref="strong"/>
      <xs:element ref="code"/>
      <xs:element ref="cite"/>
    </xs:choice>
  </xs:group>

  <xs:group name="InlPres.class">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: elements "tt", "i", "b", "big", "small", "sub", "sup" removed.
       </xs:documentation>
    </xs:annotation>      
    <xs:choice/>
  </xs:group>

  <xs:group name="I18n.class">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: element "bdo" removed.
       </xs:documentation>
    </xs:annotation>      
    <xs:sequence/>
  </xs:group>

  <xs:group name="Anchor.class">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: element "a" removed.
       </xs:documentation>
    </xs:annotation>      
    <xs:sequence/>
  </xs:group>

  <xs:group name="InlSpecial.class">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: elements "map", "object" removed.
       </xs:documentation>
    </xs:annotation>      
    <xs:choice>
      <xs:element ref="img"/>
    </xs:choice>
  </xs:group>

  <xs:group name="InlForm.class">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: elements "input", "select", "textara", "lable", "button" removed.
       </xs:documentation>
    </xs:annotation>      
    <xs:choice/>
  </xs:group>

  <xs:group name="Inline.extra">
    <xs:choice/>
  </xs:group>

  <xs:group name="Ruby.class">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: element "ruby" removed.
       </xs:documentation>
    </xs:annotation>      
    <xs:sequence/>
  </xs:group>

  <xs:group name="Inline.class">
    <xs:choice>
      <xs:group ref="InlStruct.class"/>
      <xs:group ref="InlPhras.class"/>
      <xs:group ref="InlPres.class"/>
      <xs:group ref="I18n.class"/>
      <xs:group ref="Anchor.class"/>
      <xs:group ref="InlSpecial.class"/>
      <xs:group ref="InlForm.class"/>
      <xs:group ref="Ruby.class"/>
      <xs:group ref="Inline.extra"/>
    </xs:choice>
  </xs:group>
  
  <xs:group name="InlNoRuby.class">
    <xs:choice>
      <xs:group ref="InlStruct.class"/>
      <xs:group ref="InlPhras.class"/>
      <xs:group ref="InlPres.class"/>
      <xs:group ref="I18n.class"/>
      <xs:group ref="Anchor.class"/>
      <xs:group ref="InlSpecial.class"/>
      <xs:group ref="InlForm.class"/>
      <xs:group ref="Inline.extra"/>
    </xs:choice>
  </xs:group>
  
  <xs:group name="InlinePre.mix">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: elements "tt", "i", "b", "script", "map" removed.
       </xs:documentation>
    </xs:annotation>      
    <xs:choice>
      <xs:group ref="InlStruct.class"/>
      <xs:group ref="InlPhras.class"/>
      <xs:group ref="I18n.class"/>
      <xs:group ref="Anchor.class"/>
      <xs:group ref="Inline.extra"/>
    </xs:choice>
  </xs:group>  

  <xs:group name="InlNoAnchor.class">
    <xs:choice>
      <xs:group ref="InlStruct.class"/>    
      <xs:group ref="InlPhras.class"/>
      <xs:group ref="InlPres.class"/>
      <xs:group ref="I18n.class"/>
      <xs:group ref="InlSpecial.class"/>
      <xs:group ref="InlForm.class"/>
      <xs:group ref="Ruby.class"/>
      <xs:group ref="Inline.extra"/>
    </xs:choice>
  </xs:group>
  
  <xs:group name="InlNoAnchor.mix">
    <xs:choice>
      <xs:group ref="InlNoAnchor.class"/>
      <xs:group ref="Misc.class"/>
    </xs:choice>
  </xs:group>

  <xs:group name="Inline.mix">
    <xs:choice>
      <xs:group ref="Inline.class"/>
      <xs:group ref="Misc.class"/>
    </xs:choice>
  </xs:group>
  
  <xs:group name="InlNoRuby.mix">
    <xs:choice>
      <xs:group ref="InlNoRuby.class"/>
      <xs:group ref="Misc.class"/>      
    </xs:choice>
  </xs:group>
  
  <xs:group name="Heading.class">
    <xs:choice>
      <xs:element ref="h1"/>
      <xs:element ref="h2"/>
      <xs:element ref="h3"/>
      <xs:element ref="h4"/>
      <xs:element ref="h5"/>
      <xs:element ref="h6"/>
    </xs:choice>
  </xs:group>

  <xs:group name="List.class">
    <xs:choice>
      <xs:element ref="ul"/>
      <xs:element ref="ol"/>
      <xs:element ref="dl"/>
    </xs:choice>
  </xs:group>

  <xs:group name="Table.class">
    <xs:choice>
      <xs:element ref="table"/>
    </xs:choice>
  </xs:group>
  
  <xs:group name="Form.class">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: element "form" removed.
       </xs:documentation>
    </xs:annotation>      
    <xs:choice/>
  </xs:group>  

  <xs:group name="Fieldset.class">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: element "fieldset" removed.
       </xs:documentation>
    </xs:annotation>      
    <xs:choice/>
  </xs:group>  
    
  <xs:group name="BlkStruct.class">
    <xs:choice>
      <xs:element ref="p"/>
      <xs:element ref="div"/>
    </xs:choice>
  </xs:group>

  <xs:group name="BlkPhras.class">
    <xs:annotation>
      <xs:documentation>
        SLXHTML: element "address" removed.
       </xs:documentation>
    </xs:annotation>      
    <xs:choice>
      <xs:element ref="pre"/>
      <xs:element ref="blockquote"/>
    </xs:choice>
  </xs:group>

  <xs:group name="BlkPres.class">
    <xs:sequence>
      <xs:element ref="hr"/>
    </xs:sequence>
  </xs:group>

  <xs:group name="BlkSpecial.class">
    <xs:choice>
      <xs:group ref="Table.class"/>
      <xs:group ref="Form.class"/>
      <xs:group ref="Fieldset.class"/>
    </xs:choice>
  </xs:group>

  <xs:group name="Block.extra">
    <xs:choice/>
  </xs:group>

  <xs:group name="Block.class">
    <xs:choice>
      <xs:group ref="BlkStruct.class"/>
      <xs:group ref="BlkPhras.class"/>
      <xs:group ref="BlkPres.class"/>
      <xs:group ref="BlkSpecial.class"/>
      <xs:group ref="Block.extra"/>
    </xs:choice>
  </xs:group>

  <xs:group name="Block.mix">
    <xs:choice>
      <xs:group ref="Heading.class"/>
      <xs:group ref="List.class"/>
      <xs:group ref="Block.class"/>
      <xs:group ref="Misc.class"/>
    </xs:choice>
  </xs:group>

  <xs:group name="Flow.mix">
    <xs:choice>
      <xs:group ref="Heading.class"/>
      <xs:group ref="List.class"/>
      <xs:group ref="Block.class"/>
      <xs:group ref="Inline.class"/>
      <xs:group ref="Misc.class"/>
    </xs:choice>
  </xs:group>

  <xs:group name="BlkNoForm.mix">
    <xs:choice>
      <xs:group ref="Heading.class"/>
      <xs:group ref="List.class"/>
      <xs:group ref="BlkStruct.class"/>
      <xs:group ref="BlkPhras.class" />
      <xs:group ref="BlkPres.class"/>
      <xs:group ref="Table.class"/>
      <xs:group ref="Block.extra"/>
      <xs:group ref="Misc.class"/>
    </xs:choice>
  </xs:group>  
    
</xs:schema>