<xsl:number>-Element

Fügt eine formatierte Zahl in die Ergebnisstruktur ein.

<xsl:number
  level = "single" | "multiple" | "any"
  count = Pattern
  from = Pattern
  value = number-expression
  format = { string }
  lang = { nmtoken }
  letter-value = { "alphabetic" | "traditional" }
  grouping-separator = { char }
  grouping-size = { number } />

Attribute

  • level
    Dadurch wird angegeben, welche Ebenen der Quellstruktur berücksichtigt werden sollen. Es existieren die Werte "single", "multiple" und "any". Der Standardwert ist "single".
  • count
    Ein Muster, das angibt, welche Knoten auf diesen Ebenen gezählt werden sollen. Wenn das count-Attribut nicht angegeben ist, wird als Standard das Muster verwendet, das einem beliebigen Knoten mit demselben Knotentyp wie der aktuelle Knoten entspricht. Wenn der aktuelle Knoten über einen erweiterten Namen verfügt, wird das Muster als Standard verwendet, das einem Knoten mit demselben erweiterten Namen wie der aktuelle Knoten entspricht.
  • from
    Ein Muster, mit dem angegeben wird, wo die Zählung beginnt.
  • value
    Gibt den Ausdruck an, der in eine Zahl konvertiert werden und an eine Ergebnisstruktur ausgegeben werden soll. Wenn kein value-Attribut angegeben ist, fügt das <xsl:number>-Element eine auf die Position des aktuellen Knotens in der Quellstruktur basierende Zahl ein.
  • format
    Eine Folge von Token, die das für jede Zahl in der Liste zu verwendende Format angeben. Wenn keine Formattoken vorhanden sind, wird der Standardwert 1 verwendet. Er generiert die Folge 1 2 ... 10 11 12....Jede auf die erste Zahl folgende Zahl wird von der vorherigen Zahl getrennt. Dies geschieht mithilfe des Trennzeichentokens, das dem zum Formatieren der Zahl verwendeten Formattoken vorausgeht. Wenn keine Trennzeichentoken vorhanden sind, wird ein Punkt (".") verwendet.

    Formattoken Generierte Folge

    1

    1 2 3 4 5 ... 10 11 12 ...

    01

    01 02 03 ... 19 10 11 ... 99 100 101...

    A

    A B C ... Z AA AB AC...

    i

    i ii iii iv v vi vii viii ix x...

    I

    I II III IV V VI VII VIII IX X...

  • lang
    Gibt an, welches Alphabet (d. h. welche Sprache) verwendet wird. Wenn kein lang-Wert angegeben ist, wird die Sprache der Systemumgebung verwendet.
  • letter-value
    Unterscheidet zwischen Nummerierungsfolgen, in denen Buchstaben verwendet werden. Eine Nummerierungsfolge weist Buchstaben in alphabetischer Reihenfolge numerische Werte zu, die andere weist jedem Buchstaben auf eine für die Sprache übliche Weise numerische Werte zu. Im Englischen entspricht dies den von den Formattoken "a" und "i" angegebenen Nummerierungsfolgen. In einigen Sprachen ist der erste Member jeder Folge derselbe. Daher wäre das Formattoken allein mehrdeutig. Ein Wert "alphabetic" gibt die alphabetische Folge an, und ein Wert "traditional" gibt die andere Folge an. Der Standardwert ist "alphabetic".
  • grouping-separator
    Gibt das als Gruppierungstrennzeichen (z. B. Tausende) verwendete Trennzeichen in dezimalen Nummerierungsfolgen an. Beispielsweise erzeugen grouping-separator="," und grouping-size="3" Zahlen der Form 1.000.000. Wenn nur das grouping-separator-Attribut oder nur das grouping-size-Attribut angegeben ist, wird es ignoriert.
  • grouping-size
    Gibt die Größe (i. d. R. 3) der Gruppierung an. Beispielsweise erzeugen grouping-separator="," und grouping-size="3" Zahlen der Form 1.000.000. Wenn nur das grouping-separator-Attribut oder nur das grouping-size-Attribut angegeben ist, wird es ignoriert.

Elementinformationen

Anzahl der Vorkommen

Unbegrenzt

Übergeordnete Elemente

xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:template, xsl:variable, xsl:when, xsl:with-param, Ausgabeelemente

Untergeordnete Elemente

(Keine untergeordneten Elemente)

Hinweise

Die einzufügende Zahl wird durch einen im value-Attribut enthaltenen Ausdruck angegeben. Der Ausdruck wird ausgewertet, und das resultierende Objekt wird in eine Zahl konvertiert. Die Zahl wird auf eine ganze Zahl aufgerundet, anschließend in eine Zeichenfolge konvertiert und in die Ergebnisstruktur eingefügt.

Das <xsl:number>-Element erstellt zunächst mithilfe der Attribute level, count und from eine Liste der positiven ganzen Zahlen.

  • Beim Wert level="single" sucht das Element den ersten Knoten in der ancestor-or-self-Achse, der dem Zählmuster entspricht. Dann wird eine Liste der Länge 1 erstellt. Darin sind ein Knoten plus die Anzahl von vorhergehenden nebengeordneten Knoten dieses übergeordneten Knotens enthalten, die dem Zählmuster entsprechen. Wenn ein solcher übergeordneter Knoten nicht vorhanden ist, wird eine leere Liste erstellt. Wenn das from-Attribut angegeben ist, wird nur nach den übergeordneten Knoten gesucht, die wiederum untergeordnete Knoten des nächsten übergeordneten Knotens darstellen, der dem from-Muster entspricht. Vorhergehende nebengeordnete Elemente haben dieselbe Bedeutung wie bei der preceding-sibling-Achse.

  • Beim Wert level="multiple" erstellt das Element eine Liste mit allen in der Dokumentreihenfolge übergeordneten Knoten des aktuellen Knotens, die vom Element selbst gefolgt werden. Es wählt aus der Liste dann die Knoten aus, die dem Zählmuster entsprechen und ordnet dann jeden Knoten einem Knoten plus der Anzahl von vorhergehend nebengeordneten Knoten dieses Knotens zu, die dem Zählmuster entsprechen. Wenn das from-Attribut angegeben ist, wird nur nach den übergeordneten Knoten gesucht, die wiederum untergeordnete Knoten des nächsten übergeordneten Knotens darstellen, der dem from-Muster entspricht. Vorhergehende nebengeordnete Elemente haben dieselbe Bedeutung wie bei der preceding-sibling-Achse.

  • Beim Wert level="any" erstellt das Element eine Liste der Länge 1, die die Anzahl der Knoten enthält, die dem Zählmuster entsprechen und zu der Gruppe gehören, die den aktuellen Knoten und alle Knoten auf beliebigen Dokumentebenen über dem aktuellen Knoten in der Dokumentstruktur enthält. Namspace- und Attributknoten sind davon ausgeschlossen (d. h., die Union der Member der preceding-Achse und der ancestor-or-self -Achse). Wenn das from-Attribut angegeben ist, werden nur Knoten berücksichtigt, die sich nach dem ersten Knoten vor dem aktuellen Knoten befinden, der dem from-Muster entspricht.

Die folgenden Sprachen-/Nummerierungsschemata werden unterstützt. "Format Token" entspricht dem format-Attribut, "Language" entspricht dem lang-Attribut und "Letter-Value" entspricht dem letter-value-Attribut.

Beschreibung Formattoken Sprache Buchstabenwert

Westlich

0x0031 (1)

n/v

n/v

Großbuchstabe

0x0041 (A)

n/v

n/v

Kleinbuchstabe

0x0061 (a)

n/v

n/v

Großbuchstabe (lateinisch)

0x0049 (I)

n/v

n/v

Kleinbuchstabe (lateinisch)

0x0069 (i)

n/v

n/v

Russischer Großbuchstabe (kyrillisch)

0x0410

n/v

n/v

Russischer Kleinbuchstabe (kyrillisch)

0x0430

n/v

n/v

Hebräisch (Ivrith, alphabetisch)

0x05d0

n/v

Alphabetisch

Hebräisch (traditionell)

0x05d0

n/v

Traditionell

Arabisch

0x0623

n/v

n/v

Hindi-Konsonanten

0x0905

n/v

n/v

Hindi-Vokale

0x0915

n/v

n/v

Hindi-Ziffern

0x0967

n/v

n/v

Thai-Buchstaben

0x0e01

n/v

n/v

Thai-Ziffern

0x0e51

n/v

n/v

Japanisch (Aiueo, Doppelbyte)

0x30a2

n/v

n/v

Japanisch (Iroha, Doppelbyte)

0x30a4

n/v

n/v

Koreanisch (Chosung)

0x3131

n/v

n/v

Taiwanesisch (dezimal)

0x4e01

"zh-tw"

n/v

Koreanisch (dezimal)

0x4e01

"ko"

n/v

Asiatisch (dezimal)

0x4e01

alle anderen Sprachen

n/v

Asiatisch (Kanji)

0x58f1

n/v

n/v

Taiwanesisch (traditionell)

0x58f9

"zh-tw"

n/v

Chinesisch (traditionell)

0x58f9

alle anderen Sprachen

n/v

12 chinesische Tierkreiszeichen

0x5b50

n/v

n/v

10 chinesische Tierkreiszeichen

0x7532

n/v

n/v

60 chinesische Tierkreiszeichen

0x7532, 0x5b50

n/v

n/v

Koreanisch (Ganada)

0xac00

n/v

n/v

Koreanisch (dezimal)

0xc77c

n/v

n/v

Koreanisch (99)

0xd558

n/v

n/v

Westlich (Doppelbyte)

0xff11

n/v

n/v

Japanisch (Aiueo, Einzelbyte)

0xff71

n/v

n/v

Japanisch (Iroha, Einzelbyte)

0xff72

n/v

n/v

Wenn das Formattoken bereits genügt, um ein bestimmtes Nummerierungsschema eindeutig zu bestimmen, muss keine Sprache oder kein Buchstabenwert angegeben werden.

Es folgen einige Beispiele zu Konvertierungsangaben

format="&#x30A2;" gibt die Katakana-Nummerierung an.

format="&#x30A4;" gibt die Katakana-Nummerierung in der Reihenfolge "Iroha" an.

format="&#x0E51;" gibt die Nummerierung mit Thai-Ziffern an.

format="&#x05D0;" letter-value="traditional" gibt die Nummerierung in traditionellem Hebräisch an.

format="&#x10D0;" letter-value="traditional" gibt die Nummerierung in Georgisch an.

format="&#x03B1;" letter-value="traditional" gibt die Nummerierung in klassischem Griechisch an.

format="&#x0430;" letter-value="traditional" gibt die Nummerierung in Altslawisch an.

Beispiel

In diesem Beispiel wird die Verwendung des <xsl:number>-Elements durch Nummerieren von Einträgen in einer sortierten Liste mit der Nummerierung Westlich und Kleinbuchstaben (lateinisch) veranschaulicht.

XML-Datei (items.xml)

<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="numelem.xsl" ?>
<items>
   <item>Car</item>
   <item>Pen</item>
   <item>LP Record</item>
   <item>Wisdom</item>
   <item>Cell phone</item>
   <item>Film projector</item>
   <item>Hole</item>
   <item>Canopy</item>
   <item>Widget</item>
   <item>Concept</item>
   <item>Null character</item>
</items>

XSLT-Datei (numelem.xsl)

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

<xsl:template match="items">
   <xsl:for-each select="item">
      <xsl:sort select="."/>
      <xsl:number value="position()" format="1. "/>
      <xsl:value-of select="."/>, 
      <xsl:number value="position()" format="&#x0069;) "/>
      <xsl:value-of select="."/>
      <br/>
   </xsl:for-each>
</xsl:template>

</xsl:stylesheet>

Ausgabe

Dies ist die formatierte Ausgabe:

1.Canopy, i) Canopy 2. Car, ii) Car 3. Cell phone, iii) Cell phone 4. Concept, iv) Concept 5. Film projector, v) Film projector 6. Hole, vi) Hole 7. LP Record, vii) LP Record 8. Null character, viii) Null character 9. Pen, ix) Pen 10. Widget, x) Widget 11. Wisdom, xi) Wisdom

Dies ist die Prozessorausgabe:

<?xml version="1.0" encoding="UTF-16"?>1. Canopy,

i) Canopy<br />2. Car,

ii) Car<br />3. Cell phone,

...

xi) Wisdom<br />