RELAX NG Schema for Paloose Extensions
Author: Hugh Field-Richards
Date: 2006-08-15T11:45

The Paloose site extensions to my normal schemas.


These are the namespaces needed by the Schematron validator.

Schematron
Declare schematron namespace : page = http://www.hsfr.org.uk/Schema/Page
Schematron
Declare schematron namespace : link = http://www.hsfr.org.uk/Schema/Link
Schematron
Declare schematron namespace : list = http://www.hsfr.org.uk/Schema/List
Schematron
Declare schematron namespace : text = http://www.hsfr.org.uk/Schema/Text
Schematron
Declare schematron namespace : i18n = http://apache.org/cocoon/i18n/2.1
Schematron
Declare schematron namespace : paloose = http://www.paloose.org/schemas/Paloose/1.0

Paloose Special Tags

I need to add several paloose special tags within the meta-data. Mainly to do the page counter transformer. Not needed if a "straight" Paloose is being used.

Page Hit

Simple hook to include page hit information. Only used within meta-data.

paloose.page-hit — Warning! not used within this schema file.
define : paloose.page-hit
element : paloose:page-hit
empty
<define name="paloose.page-hit">
   <element name="paloose:page-hit">
      <empty/>
   </element>
</define>

Paloose Versions

define : paloose.versions
element : paloose:versions
zeroOrMore
<define name="paloose.versions">
   <element name="paloose:versions">
      <zeroOrMore>
         <ref name="paloose.version"/>
      </zeroOrMore>
   </element>
</define>
define : paloose.version
element : paloose:version
<define name="paloose.version">
   <element name="paloose:version">
      <interleave>
         <ref name="paloose.version-date"/>
         <ref name="paloose.version-number"/>
         <ref name="paloose.version-file"/>
         <ref name="paloose.version-description"/>
      </interleave>
   </element>
</define>
define : paloose.version-date
element : paloose:version-date
choice
Any text
refi18n.text
<define name="paloose.version-date">
   <element name="paloose:version-date">
      <choice>
         <text/>
         <ref name="i18n.text"/>
      </choice>
   </element>
</define>
define : paloose.version-number
element : paloose:version-number
Any text
<define name="paloose.version-number">
   <element name="paloose:version-number">
      <text/>
   </element>
</define>
define : paloose.version-file
element : paloose:version-file
Any text
<define name="paloose.version-file">
   <element name="paloose:version-file">
      <text/>
   </element>
</define>
define : paloose.version-description
element : paloose:version-description
choice
Any text
reftext.horizontalContent
<define name="paloose.version-description">
   <element name="paloose:version-description">
      <choice>
         <text/>
         <ref name="text.horizontalContent"/>
         <ref name="paloose.version-items"/>
      </choice>
   </element>
</define>
define : paloose.version-items
oneOrMore
<define name="paloose.version-items">
   <oneOrMore>
      <ref name="paloose.version-item"/>
   </oneOrMore>
</define>
define : paloose.version-item
element : paloose:version-item
zeroOrMore
interleave
choice
reftext.forcedLine
reftext.emphElement
reftext.codeElement
reflink.linkElement
reftext.indexEntry
Any text
<define name="paloose.version-item">
   <element name="paloose:version-item">
      <zeroOrMore>
         <interleave>
            <choice>
               <ref name="text.forcedLine"/>
               <ref name="text.emphElement"/>
               <ref name="text.codeElement"/>
               <ref name="link.linkElement"/>
               <ref name="text.indexEntry"/>
               <text/>
            </choice>
         </interleave>
      </zeroOrMore>
   </element>
</define>

Vertical Content Extension

text.verticalContent — Warning! not used within this schema file. (Combine: interleave)
define : text.verticalContent
zeroOrMore
<define name="text.verticalContent" combine="interleave">
   <zeroOrMore>
      <ref name="paloose.versions"/>
   </zeroOrMore>
</define>