<?xml version = "1.0" encoding = "utf-8"?>
<?xml-stylesheet href="/pool/rng_ht.xslt" type="application/xml"?>
<!-- file KLEIDER/web/src/addstory/imgindex.rng -->
<!--
  Daten zur Indizierung von Bildern durch Suchmaschinen
  "http://herbaer.de/xmlns/20110902/imgindex"
  2011, 2013 Herbert Schiemann <h.schiemann@herbaer.de>
  Borkener Str. 167, 46284 Dorsten, Germany
  GPL Version 2 oder neuer
  Jede Gewährleistung ist ausgeschlossen.

  2013-09-06 numrepr, repr

  Das Schema folgt den folgenden Richtlinien:
  - Jedes Attribut und jedes Element wird in einem
    <define>-Element spezifiziert
  - Jedes <define>-Element spezifiziert höchstens ein Attribut oder Element
  - Die Namen der Muster ("Pattern"), die ein Attribut spezifizieren,
    beginnen mit "att_".
  - Die Namen der Muster, die ein Element spezifizieren,
    beginnen mit "el_".
  - Die Dokumentation ist in den define-Elementen enthalten und benutzt
    DocBook-XML-artige Markierungen des Namensraums
    http://herbaer.de/xmlns/20051201/doc
-->
<grammar
  xmlns   = "http://relaxng.org/ns/structure/1.0"
  xmlns:d = "http://herbaer.de/xmlns/20051201/doc"
  ns      = "http://herbaer.de/xmlns/20110902/imgindex"
>

<d:info xmlns="http://herbaer.de/xmlns/20051201/doc">
  <title>imgindex.rng</title>
  <subtitle>Daten zur Indizierung von Bildern durch Suchmaschinen</subtitle>
  <date>2013-09-06</date>
  <author>
    <personname>
      <firstname>Herbert</firstname>
      <surname>Schiemann</surname>
    </personname>
    <email>h.schiemann@herbaer.de</email>
  </author>
</d:info>

<start>
  <ref name = "el_imgindex"/>
</start>

<define name = "anything">
  <d:para>
    Beliebiger Inhalt
  </d:para>
  <zeroOrMore>
    <choice>
      <element>
        <anyName/>
        <ref name="anything"/>
      </element>
      <attribute>
        <anyName/>
      </attribute>
      <text/>
    </choice>
  </zeroOrMore>
</define><!-- anything -->

<define name = "foreign_att">
  <d:para>
    Attribute anderer XML-Namensräume
  </d:para>
  <zeroOrMore>
    <attribute>
      <anyName>
        <except>
          <nsName ns = ""/>
          <nsName ns = "http://herbaer.de/xmlns/20110902/imgindex"/>
        </except>
      </anyName>
    </attribute>
  </zeroOrMore>
</define><!-- foreign_att -->

<define name = "foreign_el">
  <d:para>
    Elemente anderer XML-Namensräume
  </d:para>
  <zeroOrMore>
    <element>
      <anyName>
        <except>
          <nsName ns = "http://herbaer.de/xmlns/20110920/imgindex"/>
        </except>
      </anyName>
      <ref name = "anything"/>
    </element>
  </zeroOrMore>
</define><!-- foreign_el -->

<define name = "el_imgindex">
  <d:para>
Das XML-Wurzelelement des Dokuments
  </d:para>
  <element name = "imgindex">
    <ref name = "foreign_att"/>
    <interleave>
      <optional>
        <ref name = "el_meta"/>
      </optional>
      <optional>
        <ref name = "el_numrepr"/>
      </optional>
      <zeroOrMore>
        <ref name = "el_image"/>
      </zeroOrMore>
      <ref name="foreign_el"/>
    </interleave>
  </element>
</define><!-- el_imgindex -->

<define name = "el_meta">
  <d:para>
Meta-Daten zur Bilder-Bewertung.
  </d:para>
  <element name = "meta">
    <ref name = "foreign_att"/>
    <interleave>
      <optional>
        <ref name = "el_filename"/>
      </optional>
      <optional>
        <ref name = "el_time"/>
      </optional>
      <optional>
        <ref name = "el_storyid"/>
      </optional>
      <optional>
        <ref name = "el_srcfile"/>
      </optional>
      <ref name="foreign_el"/>
    </interleave>
  </element>
</define><!-- el_meta -->

<define name = "el_filename">
  <d:para>
Der ursprüngliche Dateipfad des Dokuments
  </d:para>
  <element name = "filename">
    <ref name = "foreign_att"/>
    <data type = "string"/>
  </element>
</define><!-- el_filename -->

<define name = "el_time">
  <d:para>
Die Zeit, zu der das Dokument erstellt wurde
  </d:para>
  <element name = "time">
    <ref name = "foreign_att"/>
    <data type = "string"/>
  </element>
</define><!-- el_time -->

<define name = "el_storyid">
  <d:para>
Kennung der Bildergeschichte
  </d:para>
  <element name = "storyid">
    <ref name = "foreign_att"/>
    <data type = "string"/>
  </element>
</define><!-- el_storyid -->

<define name = "el_srcfile">
  <d:para>
Dateipfad der Bildergeschichte (Eingabe)
  </d:para>
  <element name = "srcfile">
    <ref name = "foreign_att"/>
    <data type = "string"/>
  </element>
</define><!-- el_srcfile -->

<define name = "el_numrepr">
  <d:para>
Anzahl der Bilder, die die Bildergeschichte repräsentieren.
Dient zur Montage eines Vorschaubildes.
  </d:para>
  <element name = "numrepr">
    <ref name = "foreign_att"/>
    <data type = "integer"/>
  </element>
</define>

<define name = "el_image">
  <d:para>
Daten zu einem Bild
  </d:para>
  <element name = "image">
    <ref name = "foreign_att"/>
    <interleave>
      <ref name = "el_key"/>
      <optional>
        <ref name = "el_position"/>
      </optional>
      <optional>
        <ref name = "el_alt"/>
      </optional>
      <ref name = "el_rank"/>
      <optional>
        <ref name = "el_format"/>
      </optional>
      <optional>
        <ref name = "el_sectno"/>
      </optional>
      <optional>
        <ref name = "el_repr"/>
      </optional>
      <ref name="foreign_el"/>
    </interleave>
  </element>
</define><!-- el_image -->

<define name = "el_key">
  <d:para>
Die Kennung eines Bildes (Dateiname ohne Suffix wie <d:literal>.jpg</d:literal>)
  </d:para>
  <element name = "key">
    <ref name = "foreign_att"/>
    <data type = "string"/>
  </element>
</define><!-- el_key -->

<define name = "el_position">
  <d:para>
Die Position des Bildes in der Quelle bzw. den Quellen
  </d:para>
  <element name = "position">
    <ref name = "foreign_att"/>
    <data type = "integer"/>
  </element>
</define><!-- el_position -->

<define name = "el_alt">
  <d:para>
Der Titel eines eines Bildes
  </d:para>
  <element name = "alt">
    <ref name = "foreign_att"/>
    <interleave>
      <text/>
      <ref name="foreign_el"/>
    </interleave>
  </element>
</define><!-- el_alt -->

<define name = "el_rank">
  <d:para>
Die Bewertung (Rang) eines Bildes zur Aufnahme in einen Suchmaschinen-Index.
Die Zahl 1 ist die beste Bewertung.
Eine größere Zahl bedeutet,
dass das Bild weniger gut zur Aufnahme in die Sitemap geeignet ist.
  </d:para>
  <element name = "rank">
    <ref name = "foreign_att"/>
    <data type = "integer"/>
  </element>
</define><!-- el_rank -->

<define name = "el_format">
  <d:para>
Format des Bildes (hoch oder quer)
  </d:para>
  <element name = "format">
    <ref name = "foreign_att"/>
    <choice>
      <value>hoch</value>
      <value>quer</value>
    </choice>
  </element>
</define><!-- el_format -->

<define name = "el_sectno">
  <d:para>
Nummer des Abschnitts der Bildergeschichte,
beginnend mit 1.
  </d:para>
  <element name = "sectno">
    <ref name = "foreign_att"/>
    <data type = "positive_int"/>
  </element>
</define><!-- el_sectno -->

<define name = "el_repr">
  <d:para>
Ein positiver Wert kennzeichnet ein Bild,
das die Bildergeschichte repräsentieren kann.
Dient zur Montage eines Vorschaubildes.
  </d:para>
  <element name = "repr">
    <ref name = "foreign_att"/>
    <data type = "integer"/>
  </element>
</define>

</grammar>
<!-- end of file KLEIDER/web/src/addstory/imgindex.rng -->
