Implementierungsspezifisches Verhalten für XSLT 2.0, XPath 2.0 und XQuery 1.0
Feature | Description | Spezifikation | Fehlercode | Dokumentiertes Verhalten |
---|---|---|---|---|
Mehrfachübereinstimmung mit preserve-space und strip-space | Die Übereinstimmung eines Elements im Quellendokument sowohl mit einer Deklaration xsl:strip-space als auch mit einer Deklaration xsl:preserve-space ist ein behebbarer dynamischer Fehler. | XSLT 2.0 | XTRE0270 | Der Prozessor gibt keinen Fehler zurück, sondern wählt die letzte Deklaration xsl:strip-space bzw. xsl:preserve-space in der Deklarationsreihenfolge aus. |
Musterauswertung | Alle dynamischen Fehler, die während der Auswertung eines Musters für eine bestimmten Knoten auftritt, wird als behebbarer Fehler angesehen. Dies trifft sogar zu, wenn der Fehler unter den gegebenen Umständen nicht behoben werden kann. Die optionale Fehlerbehebungsmaßnahme besteht darin, das Muster als nicht mit dem Knoten übereinstimmendes Muster zu betrachten. | XSLT 2.0 | Der Prozessor gibt keinen Fehler zurück, sondern behandelt das Muster wie ein nicht mit dem Knoten übereinstimmendes Muster. | |
Mehrere passende Schablonen | Das Vorliegen mehr als einer passenden Schablonenregel nach Verarbeitung des Konfliktlösungsalgorithmus für Schablonenregeln ist ein behebbarer dynamischer Fehler. Als Optionale Fehlerbehebungsmaßnahme wird von den übriggebliebenen passenden Schablonenregeln diejenige ausgewählt, die in der Deklarationsreihenfolge die letzte ist. | XSLT 2.0 | XTRE0540 | Der Prozessor gibt keinen Fehler zurück, sondern wählt die letzte Schablone in der Deklarationsreihenfolge aus. |
Ungültiger Wert für xml:space | Die Angabe eines anderen Wertes als "default" oder "preserve" für ein konstruiertes Attribut mit dem Namen xml:space ist ein behebbarer dynamischer Fehler. Die optionale Fehlerbehebungsmaßnahme besteht darin, das Attribut mit dem angeforderten Wert zu konstruieren. Dies trifft unabhängig davon zu, ob das Attribut mit einem resultierenden Literalelement oder mit einer der Anweisungen xsl:attribute, xsl:copy bzw. xsl:copy-of konstruiert wird. | XSLT 2.0 | XTRE0795 | Der Prozessor gibt keinen Fehler zurück, sondern konstruiert das Attribut mit dem angeforderten Wert. |
Ungültiges Fragment in einem Dokument-URI | Wenn eine an die Funktion document übergebene URI-Referenz eine Fragment-ID
enthält, gilt dies in jedem der folgenden Fälle als ein behebbarer dynamischer Fehler: |
XSLT 2.0 | XTRE1160 | Der Prozessor ignoriert die Fragment-ID und gibt den Dokumentknoten zurück. Es wird keine Warnung zurückgegeben. |
Nur eine Ressource bei mehreren Ergebnissen | Bei einer Transformation ist die Generierung von zwei oder mehr abschließenden Ergebnisstrukturen mit URIs, die dieselbe physische Ressource angeben, ein behebbarer dynamischer Fehler. Die optionale Fehlerbehebungsmaßnahme ist implementierungsunabhängig, weil der Prozessor möglicherweise nicht in der Lage ist, den Fehler zu erkennen. | XSLT 2.0 | XTRE1495 | Der Prozessor gibt einen Fehler zurück. |
Lese- und Schreiboperationen für dieselbe Ressource | Das Schreiben in eine externe Ressource und das Lesen derselben Ressource während einer Transformation ist ein behebbarer dynamischer Fehler. Dies gilt unabhängig davon, ob bei beiden Operationen derselbe URI für den Ressourcenzugriff verwendet wird oder nicht. Die optionale Fehlerbehebungsmaßnahme ist implementierungsunabhängig, weil die Fehlerbedingung nicht von Implementierungen erkannt werden muss. | XSLT 2.0 | XTRE1500 | Der Prozessor versucht nicht, diese Fehlerbedingung zu erkennen. |
Keine Unterstützung für die Inaktivierung von Escape-Zeichen in Ausgaben | Die Inaktivierung von Escape-Zeichen in Ausgaben mit der Anweisung xsl:value-of oder xsl:text wird von der Implementierung nicht unterstützt und ist ein behebbarer dynamischer Fehler. Die optionale Fehlerbehebungsmaßnahme besteht darin, das Attribut disable-output-escaping zu ignorieren. | XSLT 2.0 | XTRE1620 | Der Prozessor ist nicht in der Lage, Escape-Zeichen in Ausgaben zu inaktivieren, und ignoriert das Attribut disable-output-escaping ohne Warnung. |
Inaktivierung von Escape-Zeichen in Ausgaben für nicht serialisierte Ergebnisse | Die Inaktivierung von Escape-Zeichen in Ausgaben mit der Anweisung xsl:value-of oder xsl:text ist beim Schreiben in eine abschließende Ergebnisstruktur, die nicht serialisiert wird, ein behebbarer dynamischer Fehler. Die optionale Fehlerbehebungsmaßnahme besteht darin, das Attribut disable-output-escaping zu ignorieren. | XSLT 2.0 | XTRE1630 | Der Prozessor ist nicht in der Lage, Escape-Zeichen in Ausgaben zu inaktivieren, und ignoriert das Attribut disable-output-escaping ohne Warnung. |
Integer-Überlauf | Bei arithmetischen xs:integer-Operationen müssen Implementierungen, die Integer-Operationen mit begrenzter Genauigkeit
unterstützen, in Über- und Unterlaufsituationen eine der folgenden Optionen auswählen: |
XQuery 1.0 and XPath 2.0 Functions and Operators | FOAR0002 | Der Prozessor stellt einen Mechanismus bereit, der bei Integer-Operationen eine Überlauferkennung mit der Methode com.ibm.xml.xapi.XStaticContext.setIntegerMathMode(int) ermöglicht, die zur Unterscheidung zwischen den beiden Optionen mit der Konstante INTEGER_MATH_MODE_OVERFLOW_DETECTION oder INTEGER_MATH_MODE_LIMITED_PRECISION (definiert für das Interface XStaticContext) aufgerufen werden kann. Für ganze Zahlen mit beliebiger Genauigkeit wird als dritte Option INTEGER_MATH_MODE_ARBITRARY_PRECISION bereitgestellt. |
Double- und Float-Überlauf | Das Überlaufverhalten von arithmetischen xs:float-
und xs:double-Operationen muss
IEEE 754-1985 entsprechen. Folgende Optionen sind zulässig: |
XQuery 1.0 and XPath 2.0 Functions and Operators | Der Prozessor gibt INF oder -INF zurück. | |
Double- und Float-Unterlauf | Das Unterlaufverhalten von arithmetischen xs:float-
und xs:double-Operationen muss
IEEE 754-1985 entsprechen. Folgende Optionen sind zulässig: |
XQuery 1.0 and XPath 2.0 Functions and Operators | Der Prozessor gibt 0.0E0 zurück. | |
Ungültige Verwendung des Attributs doctype-system oder standalone | Die Angabe des Parameters doctype-system oder standalone mit einem anderen Wert als omit ist ein Serialisierungsfehler, wenn die Instanz des Datenmodells Textknoten oder mehrere Elementknoten als untergeordnete Knoten des Stammknotens enthält. Der Serializer muss den Fehler signalisieren oder ihn beheben, indem er die Anforderung nach Ausgabe einer Dokumenttypdeklaration oder des Parameters standalone ignoriert. | SR | SEPM0004 | Der Prozessor gibt einen Serialisierungsfehler zurück. |
Ungültige XML-Ausgabecodierung | Wenn für die Ausgabemethode XML eine andere Ausgabecodierung als UTF-8 oder UTF-16 angefordert wird und diese andere Codierung nicht vom Serializer unterstützt wird, tritt ein Serialisierungsfehler auf. Der Serializer muss den Fehler (SESU0007) zurückgeben oder den Fehler beheben, indem er UTF-8 oder UTF-16 verwendet. | SR | SESU0007 | Der Prozessor gibt einen Serialisierungsfehler zurück. |
Fehler oder Fehlerbehebung | Einige Fehler werden als behebbare Fehler klassifiziert. Wenn ein behebbarer Fehler auftritt, kann der Prozessor den Fehler signalisieren (indem er die Fehlerbedingung meldet und die Ausführung beendet) oder eine definierte Fehlerbehebungsmaßnahme ausführen und die Verarbeitung fortsetzen. | XSLT 2.0 | Der Prozessor kann viele behebbare Fehler beheben und signalisiert in einigen Fällen trotzdem einen Fehler. Anhand dieser Tabelle können Sie ermitteln, welches implementierungsdefinierte Verhalten für die einzelnen behebbaren Fehler gilt. | |
Typfehler statisch signalisieren | Ob Typfehler statisch signalisiert werden, ist in der Implementierung definiert. | XSLT 2.0 | Der Prozessor stellt Typfehler nach Möglichkeit statisch fest. Es gibt aber auch Situationen, in denen der Fehler nicht zur Kompilierzeit festgestellt werden kann. In solchen Situationen wird der Fehler während der Ausführung festgestellt. | |
Handhabung von Serialisierungsfehlern | Die Handhabung von Serialisierungsfehler ist in der Implementierung definiert. | XSLT 2.0 | Fehlernachrichten werden an eine Implementierung von com.ibm.xml.xapi.XMessageHandler gesendet, die mit der Methode setXMessageHandler des Interface com.ibm.xml.xapi.XDynamicContext registriert ist. | |
Basisausgabe-URI | Die Art der Erstellung eines Basisausgabe-URI ist in der Implementierung definiert. | XSLT 2.0 | Benutzer können den Basisausgabe-URI mit der Methode setBaseOutputURI des Interface com.ibm.xml.xapi.XDynamicContext definieren. | |
Erweiterungsattribute | Implementierungen können Erweiterungsattribute zulassen, um das Verhalten von Erweiterungsfunktionen und -anweisungen zu modifizieren oder die Serialisierungsmethode xml, xhtml, html bzw. text dahingehend zu beeinflussen, dass ihr Verhalten implementierungsdefiniert oder von der Implementierung unabhängig ist. | XSLT 2.0 | Der Prozessor erkennt das Attribut
indent-amount von xsl:output-Deklarationen und bestimmt ausgehend davon, wie viele Leerzeichen bei aktivierter Einrückung für die einzelnen Einrückungsstufen
verwendet werden. Das Attribut muss aus einem der folgenden Namespaces stammen: |
|
Benutzerdefinierte Datenelemente | Eine Implementierung kann benutzerdefinierten Datenelementen, die in bestimmten Namespaces erscheinen, eine implementierungsdefinierte Bedeutung zuordnen. Welche Namespaces für solche Datenelemente erkannt werden, ist in der Implementierung definiert. | XSLT 2.0 | Der Prozessor erkennt keine benutzerdefinierten Datenelemente. | |
Benutzerdefinierte Typen | Die Unterstützung für zusätzliche benutzer- der implementierungsdefinierte Typen ist in der Implementierung definiert. | XPath 2.0 Data Model | Ein schemafähiger Prozessor wird unterstützt. | |
Verhalten bei nicht definiertem Typ | Einige typisierte Werte des Datenmodells sind nicht definiert. Der Versuch, auf eine nicht definierte Eigenschaft zuzugreifen, ist immer ein Fehler. Das Verhalten in solchen Fällen ist in der Implementierung definiert, und das Ergebnis wird von der jeweiligen Hostsprache bestimmt. | XPath 2.0 Data Model | FOTY0012 | Der Prozessor gibt einen Fehler zurück. Fehlernachrichten werden an eine Implementierung von com.ibm.xml.xapi.XMessageHandler gesendet, die mit der Methode setXMessageHandler des Interface com.ibm.xml.xapi.XDynamicContext registriert ist. |
Darstellung von Namespaceknoten | Ob Namespaces als Knoten dargestellt werden, hängt von der Implementierung ab. | XPath 2.0 Data Model | Die Namespaceachse wird unterstützt. | |
Auffinden des Style-Sheet-Moduls | Wie die URI-Referenz aus dem Attribut href einer xsl:include- oder xsl:import-Deklaration nach Auflösung anhand des Basis-URI für die Suche nach der Darstellung eines Style-Sheet-Moduls verwendet wird und wie das Style-Sheet-Modul dann anhand dieser Darstellung konstruiert wird, ist in der Implementierung definiert. Insbesondere sind die unterstützten URI-Schemata, die Unterstützung/Nichtunterstützung von Fragment-IDs und die unterstützten Medientypen von der jeweiligen Implementierung abhängig. | XSLT 2.0 | Benutzer können über die Methode
com.ibm.xml.xapi.XStaticContext.setSourceResolver(XSourceResolver) eine Implementierung von
com.ibm.xml.xapi.XSourceResolver angeben.
Der Prozessor löst mit dem XSourceResolver URIs von
xsl:include- und xsl:import-Deklarationen auf (sodass der Benutzer entscheiden kann, welche URIs unterstützt
werden sollen). Die Methode getSource(String,
String) des Resolvers muss ein JAXP-Quellenobjekt zurückgeben. Wenn kein XSourceResolver angegeben ist, wendet der Prozessor das Schema für Datei-URIs und die von der Methode java.net.URL.openConnection() unterstützten Schemata an. Mithilfe eines URI-Fragments kann ein eingebettetes Style-Sheet-Modul in einem XML-Quellendokument ausgewählt werden. Das Fragment muss ein Element xsl:stylesheet mit einem der Attribute dieses Elements im Dokument angeben. Dabei kann es sich um ein Attribut xml:id, um ein in einer DTD definiertes Attribut vom Typ ID oder um ein in einem Schema definiertes Attribut vom Typ xs:ID handeln. Es gibt keine integrierte Unterstützung für Nicht-XML-Medientypen. Benutzer können jedoch über eine Implementierung von XSourceResolver eine XML-Darstellung von Nicht-XML-Daten für den Prozessor bereitstellen. |
|
Erweiterungsfunktionen | Erweiterungsfunktionen Die Spezifikation XSLT 2.0 definiert, wie Erweiterungsanweisungen und -funktionen aufgerufen werden. Mit welchen Mitteln solche Anweisungen und Funktionen erstellt werden, hängt jedoch von der jeweiligen Implementierung ab. |
XSLT 2.0 | Erweiterungsfunktionen werden über die Methoden XStaticContext.declareFunction und XDynamicContext.bindFunction des Prozessors unterstützt. Alternativ können Sie Erweiterungsfunktionen direkt in einem Style-Sheet oder in einer Abfrage deklarieren. Vom Parser und vom Prozessor unterstützte Erweiterungsfunktionen des alten Typs werden aus Gründen der Abwärtskompatibilität weiter unterstützt. Dies gilt jedoch nur für 1.0-Typen. Nähere Informationen hierzu finden Sie in der Dokumentation zur API. Es wird empfohlen, Erweiterungsfunktionen - sofern möglich - direkt in Ihrem Style-Sheet oder über die API für Erweiterungsfunktionen zu deklarieren und nicht im alten Stil. | |
Erweiterungsanweisungen | Erweiterungsanweisungen Die Spezifikation XSLT 2.0 definiert, wie Erweiterungsanweisungen und -funktionen aufgerufen werden. Mit welchen Mitteln solche Anweisungen und Funktionen erstellt werden, hängt jedoch von der jeweiligen Implementierung ab. |
XSLT 2.0 | XTDE1450 | Benutzerdefinierte Erweiterungsanweisungen werden nicht unterstützt. Erweiterungsanweisungen müssen mit einer Anweisung fallback geschützt werden, weil andernfalls das Style-Sheet nicht kompiliert werden kann. Aus Gründen der Abwärtskompatibilität wird die "redirect"-Erweiterung weiter unterstützt. Sie sollten jedoch die Anweisung xsl:result-document von XSLT 2.0 verwenden, da diese leichter portiert werden kann. |
Abwärtskompatibilität | Ob eine bestimmte XSLT-2.0-Implementierung abwärtskompatibles Verhalten unterstützt, ist in der Implementierung definiert. | XSLT 2.0 | Das in der Spezifikation XSLT 2.0 beschriebene Feature für Abwärtskompatibilität wird unterstützt. | |
Bereichsinterne Sortierfolgen für use-when | Bereichsinterne Sortierfolgen für "use-when"-Ausdrücke | XSLT 2.0 | Für die Auswertung eines "use-when"-Ausdrucks ist die Sortierfolge für Unicode-Codepunkte die einzige verfügbare Sortierfolge. | |
Aktuelle Datums-/Zeitangabe für use-when | Aktuelle Datums-/Zeitangabe für "use-when"-Ausdrücke | XSLT 2.0 | Die aktuelle Datums-/Zeitangabe ist die durch Aufrufen der Methode java.util.GregorianCalendar getInstance() abgerufene aktuelle Datums-/Zeitangabe des Systems. | |
Implizite Zeitzone für use-when | Implizite Zeitzone für "use-when"-Ausdrücke | XSLT 2.0 | Die implizite Zeitzone ist die durch Aufrufen der Methode java.util.TimeZone getDefault() abgerufene Zeitzone des Systems. | |
Maximale Anzahl Dezimalstellen | Die maximale Gesamtzahl der Dezimalstellen ist in der Implementierung definiert, darf aber nicht kleiner als 18 sein. | XSLT 2.0 | Die Implementierung verwendet die Klasse java.math.BigDecimal, die eine fast unbegrenzte Genauigkeit unterstützt. Lediglich die Anzahl der Dezimalstellen nach dem Komma ist auf den Wert von Integer.MAX_VALUE begrenzt. Eine Verkürzung ist nur bei Divisionen erforderlich, weil bei Divisionen potenziell unendliche Dezimalzahlen möglich sind. Die Genauigkeit der Nachkommastellen von Ergebnissen ist auf 18 Stellen begrenzt. In diesem Fall wird der Rundungsmodus ROUND_HALF_UP verwendet, bei dem nicht angegebene Nachkommazahlen ab 0,5 (von null weg) aufgerundet und kleinere Nachkommazahlen abgerundet werden. | |
Wert des Abschnitts year | Wertebereich des Abschnitts year (von +0001 bis +9999) und maximale Anzahl Stellen für den Sekundenbruchteil (mindestens 3) für die Typen Typen xs:date, xs:time, xs:dateTime, xs:gYear und xs:gYearMonth | XSLT 2.0 | Der Abschnitt year der Typen xs:date, xs:dateTime, xs:gYear und xs:gYearMonth muss im Bereich von -(10^9-1) bis (10^9)-1 liegen. Für die Typen xs:time und xs:dateTime werden maximal drei Stellen für den Sekundenbruchteil unterstützt. | |
duration | Maximale Absolutwerte der Abschnitte years, months, days, hours, minutes und seconds für den Typ xs:duration | XSLT 2.0 | Für die Abschnitte des Typs duration gelten die folgenden
maximalen Absolutwerte: |
|
"yearMonthDuration" | Maximaler Absolutwert für den Typ xdt:yearMonthDuration als ganze Zahl von Monaten | XSLT 2.0 | Der maximale Absolutwert für den Typ xs:yearMonthDuration liegt bei 2147483647 Monaten. | |
"dayTimeDuration" | Maximaler Absolutwert für den Typ xdt:dayTimeDuration als Dezimalzahl zur Angabe der Sekunden | XSLT 2.0 | Der maximale Absolutwert für den Typ xs:dayTimeDuration liegt bei 9223372036854775 Sekunden. | |
Maximale Länge des Wertes | Maximale Länge des Wertes für die Typen xs:string, xs:hexBinary, xs:base64Binary, xs:QName, xs:anyURI, xs:NOTATION und die aus ihnen abgeleiteten Typen | XSLT 2.0 | Theoretisch liegt die maximale Länge bei 2^31 - 1. Der Systemspeicher wird jedoch wahrscheinlich erschöpft sein, lange bevor diese maximale Begrenzung erricht wird. | |
Sequenzlänge | Maximale Anzahl von Elementen in einer Sequenz | XSLT 2.0 | Theoretisch liegt die maximale Anzahl von Elementen bei 2^31 - 1. Der Systemspeicher wird jedoch wahrscheinlich erschöpft sein, lange bevor diese maximale Begrenzung erricht wird. | |
Statisch bekannte Sortierfolgen | Gruppe der bereichsinternen Sortierfolgen | XSLT 2.0
XPath 2.0 XQuery 1.0 |
Für jeden URI wird angenommen, das er zur Gruppe der bereichsinternen Sortierfolgen gehört. Jedem URI, der als Sortierfolgen-URI verwendet wird, muss während der Ausführung ein Java™ Collator zugeordnet werden. | |
implicit timezone | Implizite Zeitzone | XSLT 2.0
XPath 2.0 XQuery 1.0 |
Die implizite Zeitzone kann mit der Methode XDynamicContext.setImplicitTimeZone(Duration) im Prozessor festgelegt werden. Wenn die implizite Zeitzone nicht definiert ist, wird die mit der Methode java.util.TimeZone.getDefault() abgerufene Systemzeitzone verwendet. | |
Standard-Collection | Standard-Collection Dies ist die Knotensequenz, die beim Aufruf der Funktion fn:collection ohne Argumente als Ergebnis zurückgegeben wird. Der Wert der Standard-Collection kann von der Implementierung initialisiert werden. |
XSLT 2.0 XPath 2.0 |
FODC0004 | Die Standard-Collection wird von dem in XDynamicContext registrierten XCollectionResolver bestimmt. Ist kein XCollectionResolver registriert, wird ein Fehler zurückgegeben und die leere Sequenz verwendet. Weitere Informationen zum Interface XCollectionResolver finden Sie in der Dokumentation zu API. |
Style-Sheet-Parameter | Angabe des Style-Sheet-Parameterwerts bei Ausführung einer
Transformation Ein Element xsl:param der Ausgangsebene deklariert einen Style-Sheet-Parameter. Ein Style-Sheet-Parameter ist eine globale Variable mit der zusätzlichen Eigenschaft, dass ihr Wert bei Einleitung einer Transformation vom Aufrufenden angegeben werden kann. |
XSLT 2.0 | Wenn ein Wert für einen Parameter in den
XDynamicContext eingebunden ist, wird dieser verwendet. Andernfalls wird der im Style-Sheet für den Parameter angegebene Standardwert
verwendet. Verwenden Sie die Methode XDynamicContext.bind(), um Werte an Parameter zu binden. |
|
Mechanismus zum Überschreiben von Style-Sheet-Funktionen | Überschreiben einer Style-Sheet-Funktion durch einem vom Benutzer angegebene Funktion (Element
xsl:function) Das optionale Attribut "override" definiert, was geschieht, wenn diese Funktion denselben Namen und dieselbe Stelligkeit wie eine vom Benutzer angegebene Funktion oder eine mit einem implementierungsspezifischen Mechanismus im statischen Kontext angegebene Funktion hat. Ist das Attribut "override" auf "yes" gesetzt, wird diese Funktion bevorzugt verwendet. Der Wert "no" gibt an, dass die andere Funktion bevorzugt wird. Der Standardwert ist "yes". Durch Angabe von override="yes" wird die Interoperabilität sichergestellt (alle Prozessoren führen denselben Code aus). Die Angabe von override="no" ist sinnvoll, wenn Sie für eine Funktion, die nicht nicht bei allen Prozessoren verfügbar ist, eine Rückgriffimplementierung schreiben, bei der die Anbieterimplementierung der Funktion (oder eine als Erweiterungsfunktion geschriebene Benutzerimplementierung) Vorrang vor der Style-Sheet-Implementierung haben kann. |
XSLT 2.0 | Wenn das Attribut override
den Wert yes hat, können Style-Sheet-Funktionen Folgendes überschreiben: Style-Sheet-Funktionen können keine der in der Spezifikation XSLT 2.0 definierten Kernfunktionen und keine Funktionen aus der Spezifikation "XQuery 1.0 and XPath 2.0 Functions and Operators" überschreiben. |
|
Normalisierung einer kopierten XML-ID | Wenn ein Attribut xml:id mit der Anweisung xsl:copy oder xsl:copy-of kopiert wird, ist es von der jeweiligen Implementierung abhängig, ob der Wert des Attributs einer Normalisierung unterzogen wird (d. h., ob die Funktion normalize-space aus der Spezifikation "XQuery 1.0 and XPath 2.0 Functions and Operators" angewendet wird). | XSLT 2.0 | Die Anweisungen xsl:copy und xsl:copy-of wenden die Funktion normalize-space nicht auf xml:id-Attribute an, sodass alle Leerräume erhalten bleiben. | |
Unterstützte Nummerierungsfolgen | Unterstützte Nummerierungsfolgen Welche Nummerierungsfolgen zusätzlich zu den oben aufgeführten unterstützt werden, ist in der Implementierung definiert. Wenn eine Implementierung keine Unterstützung für die vom gegebenen Token dargestellte Nummerierungsfolge bietet, muss sie das Formattoken 1 verwenden. |
XSLT 2.0 | Der Prozessor unterstützt nur die Standardnummerierungsfolgen. | |
Begrenzung von Nummernbereichen | Unter- und Obergrenze für Nummernbereiche Für die Standardnummerierungsfolgen darf eine von der Implementierung gesetzte Obergrenze nicht kleiner als 1000 (eintausend) und eine gesetzte Untergrenze nicht größer als 1 sein. Zahlen, die außerhalb dieses Bereichs liegen, müssen mit dem Formattoken 1 formatiert werden, dessen zugeordnete Nummerierungsfolge die Untergrenze 0 (null) hat. |
XSLT 2.0 | ||
Standardsprache für Nummerierung | Standardsprache für Nummerierung Das Attribut lang gibt an, welche Sprachkonventionen verwendet werden sollen. Der Wertebereich stimmt mit dem von xml:lang überein (siehe Spezifikation XML 1.0). Wenn kein Wert für "lang" angegeben ist, wird die in der Implementierung definierte Sprache verwendet. Die Sprachen mit unterstützter Nummerierung sind in der Implementierung definiert. Wird eine nicht unterstützte Sprache angefordert, verwendet der Prozessor die Sprache, die bei fehlendem Attribut "lang" verwendet werden würde. |
XSLT 2.0 | Die Standardsprache für Zahlenformate ist immer auf en-US gesetzt. | |
Sprachen für Nummerierung | Gruppe der Sprachen für Nummerierung Viele Nummerierungsfolgen sind sprachabhängig. |
XSLT 2.0 | Die unterstützten Sprachen basieren auf International Component Unicode (ICU) und sind von der JVM unterstützte Sprachen. | |
Kombinationen für Nummerierung | Kombinationen der Werte für das Formattoken, die Sprache und das Attribut "ordinal" für Nummerierung | XSLT 2.0 | Der Prozessor unterstützt für "ordinal" nur den Wert "yes". Alle anderen Werte für das Attribut "ordinal" werden ignoriert. | |
Datentyp für Sortierung | Auswirkung des Attributs
data-type auf xsl:sort Ist dieses Attribut auf den Wert "text" gesetzt, werden die atomisierten Sortierschlüsselwerte vor dem Vergleich in Zeichenfolgen konvertiert. Ist dieses Attribut auf den Wert "number" gesetzt, werden die atomisierten Sortierschlüsselwerte vor dem Vergleich in Double-Werte konvertiert. Die Konvertierung erfolgt jeweils mit der Funktion string-FO bzw. number-FO. Wenn das Attribut data-type einen anderen Wert hat, muss es sich um einen lexikalischen qualifizierten Name (QName) mit einem nicht leeren Präfix handeln. Der Effekt dieses Wertes hängt von der jeweiligen Implementierung ab. |
XSLT 2.0 | Für das Attribut data-type werden die Werte 'text' und 'number' unterstützt. Bei allen anderen Werten wird eine Warnung ausgegeben und das Attribut data-type ignoriert. | |
Sortierfolgen-URI | Art der Zuordnung des URI zu einer Sortierfolgenregel bzw. einem Sortierfolgenalgorithmus Wenn ein Attribut "collation" vorhanden ist, werden die Attribute "lang" und "case-order" ignoriert. Fehlt das Attribut "collation" jedoch, liefern die genannten Attribute Eingaben für einen implementierungsdefinierten Algorithmus zur Ermittlung einer geeigneten Sortierfolge. Mechanismen aus XSLT 2.0 und XPath 2.0, die eine Sortierung von Zeichenfolgen erfordern, basieren auf dem Konzept einer benannten Sortierfolge. Eine Sortierfolge besteht aus Regeln, die festlegen, ob sich Zeichenfolgen gleichen. Wenn Zeichenfolgen nicht gleich sind, legen die Regeln fest, welche der Zeichenfolgen bei der Sortierung vor der anderen erscheint. Eine Sortierfolge wird über einen URI identifiziert. Wie dieser URI jedoch einer konkreten Regel oder einem konkreten Algorithmus zugeordnet wird, ist in der Implementierung definiert. |
XSLT 2.0 | Sortierfolgen-URIs werden über die API mit einer der XDynamicContext.bindCollation-Methoden einem Java Collator zugeordnet. | |
Sortierfolge nach Attribut "lang" und "case-order" | Attribute "lang" und "case-order", die einen Algorithmus für die Sortierung bestimmen | XSLT 2.0 | Der Prozessor ruft ausgehend vom Wert des Attributs "lang" eine Ländereinstellung ab. Anschließend erstellt er mit der Methode java.text.Collator.getInstance(Locale) einen Java Collator. Falls das Attribut "case-order" angegeben ist, wird ggf. die Vergleichsmethode des Collators überschrieben. Wenn das Attribut "lang" nicht angegeben ist, geht der Prozessor wie oben angegeben vor und verwendet die von der Java-Methode Locale.getDefault() zurückgegebene Standardländereinstellung. | |
Standardsortierfolge für Sortierung | Standardsortierfolge
für Sortierung Falls xsl:sort keines der Attribute "collation", "lang" oder "case-order" enthält, wird die von der Implementierung definierte Sortierfolge ausgewählt. Die Standardsortierfolge muss nicht mit der für die Auswertung von XPath-Ausdrücken verwendeten Standardsortierfolge übereinstimmen. (siehe Abschnitt 5.4.1: "Initializing the Static Context" und Abschnitt 3.6.1: "The default-collation attribute") |
XSLT 2.0 | Der Prozessor verwendet die von der Java-Methode Locale.getDefault() zurückgegebene Standardländereinstellung, um dann mit der Methode java.text.Collator.getInstance(Locale) einen Java Collator zu erstellen. | |
Erkannte Medientypen | Von einem Prozessor erkannte Gruppen von Medientypen | XSLT 2.0 | Der Prozessor unterstützt nur XML-Dateien. | |
Alternative beim Datumsformat | Alternativdarstellung der Formatzeichenfolge bei den Datumsformatfunktionen
(Das Formattoken n, N oder Nn gibt an, ob der Wert des Abschnitts als Name in Kleinbuchstaben, in Großbuchstaben oder mit großem Anfangsbuchstaben
ausgegeben wird.) Zu den Abschnitten, die mit Namen ausgegebenen werden können, gehören unter anderem Monate, Wochentage, Zeitzonen und Epochen. Kann der Prozessor diese Abschnitte für den ausgewählten Kalender und die ausgewählte Sprache nicht mit dem Namen ausgeben, muss eine implementierungsdefinierte Alternativdarstellung verwendet werden. |
XSLT 2.0 | Der Prozessor greift auf die Ausgabe [Calendar: AD] zurück. | |
Von Datumsformatfunktionen unterstützte Gruppe | Von den Datumsformatfunktionen unterstützte Sprachen, Kalender und Länder | XSLT 2.0 | ||
Standardeinstellungen in Datumsformatfunktionen | Standardsprache, -kalender und -ländereinstellung in Datumsformatfunktionen bei fehlenden oder leeren Argumenten | XSLT 2.0 | ||
Standardsprache in Datumsformatfunktionen | Standardsprache in Datumsformatfunktionen Wenn das Argument "language" fehlt oder auf eine leere Sequenz, einen ungültigen Wert bzw. einen von der Implementierung nicht erkannten Wert gesetzt ist, verwendet der Prozessor eine von der Implementierung definierte Sprache. |
XSLT 2.0 | Siehe "Standardeinstellungen in Datumsformatfunktionen" | |
Namen und Abkürzungen für Sprachen in Datumsformatfunktionen | Namen und Abkürzungen in Datumsformatfunktionen | XSLT 2.0 | Auf der ICU-Website (International Components for Unicode) gibt es einen Locale Explorer mit Links zu Tabellen für jede unterstützte Ländereinstellung. Der Prozessor verwendet für die in diesen Tabellen angegebenen Namen der Wochentage und Monate Kurznamen als abgekürzte Form und die ausgeschriebenen Namen als nicht abgekürzte Form. | |
Kalenderverhalten in Datumsformatfunktionen | Kalenderverhalten in Datumsformatfunktionen | XSLT 2.0 | Der Prozessor unterstützt keine Kalender mit einem Namespace-URI ungleich null. Wenn der angegebene QName ein Präfix hat, wird der gregorianische Kalender (AD) verwendet. | |
Standardkalender in Datumsformatfunktionen | Standardkalender in Datumsformatfunktionen | XSLT 2.0 | Siehe "Standardeinstellungen in Datumsformatfunktionen" | |
Unterstützte Kalender in Datumsformatfunktionen | Von Datumsformatfunktionen unterstützte Kalender | XSLT 2.0 | Siehe "Von Datumsformatfunktionen unterstützte Gruppe" | |
Werte von Systemeigenschaften | Werte von Systemeigenschaften | XSLT 2.0 | Werte der Systemeigenschaften: |
|
Gruppe der Systemeigenschaften | Gruppe der Systemeigenschaften | XSLT 2.0 | Der Prozessor unterstützt Folgendes:
|
|
xslmessage | Senden einer Nachricht durch die Anweisung xsl:message | XSLT 2.0 | Gemäß Abschnitt
17 der Spezifikation XSLT 2.0 sendet xsl:message eine Nachricht auf implementierungsspezifische Weise an einen in der Implementierung definierten
Bestimmungsort.
Der Prozessor verwendet den Zeichenfolgewert des von der Anweisung
xsl:message erstellten Dokumentknotens als Nachricht. Wenn der Benutzer für die Transformation keine Instanz von com.ibm.xml.xapi.XMessageHandler für com.ibm.xml.xapi.XDynamicContext angegeben hat, wird die Nachricht in den Ausgabedatenstrom von System.err geschrieben. Falls das Attribut "terminate" den Wert "yes" hat, löst die Transformation eine Ausnahme aus. Wenn der Benutzer eine Instanz von com.ibm.xml.xapi.XMessageHandler angegeben hat, wird die Nachricht an die Methode report() dieses Objekts übergeben. Nähere Informationen hierzu finden Sie in der Dokumentation zur API. |
|
Bestimmungsort für xsl:message | Bestimmungsort für die Ausgabe eines mit der Anweisung xsl:message erstellten Dokuments | XSLT 2.0 | Siehe "xsl:message" | |
Fehlerbehandlung für Erweiterungsfunktionen | Folgen des Fehlers, wenn eine Erweiterungsfunktion eine Zeichenfolge mit Nicht-XML-Zeichen zurückgibt | XSLT 2.0 | Abschnitt 18.1.2 der Spezifikation XSLT 2.0 erlaubt verschiedene Verhaltensweisen, wenn eine Erweiterungsfunktion eine Zeichenfolge zurückgibt, die in XML nicht zulässige Zeichen enthält. Ein mögliches Verhalten ist, die Zeichen wie zulässige Zeichen zu behandeln. Dies ist die vom Prozessor implementierte Verhaltensweise. | |
Externe Objekte | Art der Darstellung externer Objekte im Typsystem | XSLT 2.0 | Datenobjekte, deren Werte von ihrem Typ her nicht den im Abschnitt Zuordnung von XML-Typen zu Java-Typen beschriebenen integrierten Typen zugeordnet werden kann, werden nicht unterstützt. | |
Bereitstellung der abschließenden Ergebnisstruktur | Bereitstellung der abschließenden Ergebnisstruktur für eine Anwendung | XSLT 2.0 | Gemäß Abschnitt
19.1 der Spezifikation XSLT 2.0 kann eine Implementierung eine Serialisierung der abschließenden Ergebnisstruktur
erlauben oder einen zusätzlichen Verarbeitungsmechanismus zur Verfügung stellen. Im Prozessor kann eine abschließende Ergebnisstruktur serialisiert oder in Form eines
java.xml.transform.Result -Objekts
bzw. eines com.ibm.xml.xapi.XSequenceCursor-Objekts für die Anwendung bereitgestellt werden. Die abschließende Ergebnisstruktur wird als javax.xml.transform.Result-Objekt für die Anwendung
bereitgestellt, wenn der URI der Struktur nicht mit dem Basisausgabe-URI übereinstimmt
und folgende Bedingung erfüllt ist:
|
|
URI-Beschränkung | Beschränkungen für das Format eines absoluten URI in "href" | XSLT 2.0 | Gemäß
Abschnitt 19.1 der Spezifikation XSLT 2.0 kann eine Implementierung spezifische Beschränkungen für einen absoluten URI (d. h. den Wert eines Attributs
href für eine Anweisung xsl:result-document) festlegen.
Für den Prozessor gilt: |
|
Position der abschließenden Ergebnisstruktur | Position, an der die abschließende Ergebnisstruktur serialisiert wird | XSLT 2.0 | Standardmäßig werden URIs abschließender Ergebnisstrukturen bezogen auf den Basis-URI des Hauptausgabedokuments interpretiert. Falls eine andere Position gewünscht wird, kann im dynamischen Kontext eine Implementierung von XResultResolver registriert werden, um benutzerdefiniertes Verhalten zu implementieren. Registrieren Sie die Implementierung von XResultResolver mit der Methode XDynamicContext.setResultResolver(). Der verwendete Basis-URI kann auch durch Aufrufen der Methode XDynamicContext.setBaseOutputURI() geändert werden. | |
Standardausgabecodierung | Standardwert des Attributs "encoding" in xsl:output | XSLT 2.0 | Die Standardausgabecodierung ist UTF-8. | |
"byte-order-mark" für UTF-8 | "byte-order-mark" für UTF-8 | XSLT 2.0 | Der Standardwert ist "no" und bedeutet, das am Anfang von UTF-8-Dateien keine Byteanordnungsmarkierung (BOM) erzeugt wird. | |
Zusätzliches Normalisierungsformat | Zusätzliches Normalisierungsformat für Serialisierung | XSLT 2.0 and XQuery 1.0 Serialization | Es stehen keine implementierungsdefinierten Normalisierungsformate zur Verfügung. | |
Version in xsl:output | Gültige Werte und Standardwert des Attributs "version" in xsl:output | XSLT 2.0 | Der Standardwert für XML oder XHTML ist 1.0. Benutzer können explizit 1.0 oder 1.1 angeben. Für HTML ist der Standardwert 4.0. | |
Statische Typisierung im Style-Sheet | Interaktion von XSLT-2.0-Style-Sheets mit dem XPath-2.0-Feature für statische Typisierung | XSLT 2.0 und XPath 2.0 | Dieser XSLT-Prozessor stellt derzeit keinen Mechanismus bereit, mit dem die statische Typisierung für XPaths angefordert werden kann. | |
Integrierte Typen | Verfügbare Typdefinitionen in einem Style-Sheet | XSLT 2.0 | Der Prozessor ist gemäß Abschnitt 3.13 der Spezifikation XSLT 2.0 schemafähig. | |
Namespace für zusätzliche Fehlercodes | Verwendeter Namespace, wenn in der Implementierung zusätzliche Fehler-QNames definiert sind | XSLT 2.0 | Der Prozessor nimmt ggf. die angegebenen Fehlercodes
in eckigen Klammern in den Text seiner Nachrichten auf. Zusätzliche Fehler werden im Allgemeinen ähnlich ausgedrückt, allerdings ohne Spezifikationspräfix für die Fehler-ID. Fehlerbedingungen werden nicht als QNames dargestellt. Anwendungen, die programmgesteuert auf Fehler reagieren sollen, müssen diese Fehler-IDs am Anfang der Fehlernachrichtenzeichenfolgen analysieren. |
|
Codierung für nicht analysierten Text | Mechanismus zur Bestimmung der Codierung einer externen Quelle | XSLT 2.0 | Der Prozessor implementiert keine zusätzlichen heuristischen Verfahren. Die Auflösung der Codierung beginnt gleich mit Schritt 5. Vorausgesetzt wird UTF-8. | |
Verfügbare Dokumente | Mechanismus zum Anfordern eines Dokumentknotens und eines Medientyps, wenn ein absoluter URI gegeben ist | XSLT 2.0 | Für Quellendokumente, die mit der XPath-Funktion fn:doc geladen werden, werden relative URIs standardmäßig ausgehend vom Basis-URI aus dem statischen Kontext aufgelöst. Wenn der Basis-URI nicht verfügbar ist, wird das aktuelle Arbeitsverzeichnis verwendet. Absolute URIs werden unverändert verwendet. Für Quellendokumente, die mit der XSLT-Funktion "document" geladen werden, ist die standardmäßige Auflösung in der Spezifikation XSLT 2.0 unter Multiple Source Documents beschrieben. Wenn kein Basis-URI verfügbar ist, wird das aktuelle Arbeitsverzeichnis verwendet. Falls die Anwendung dieses Verhalten beschränken oder erweitern muss, kann mit der Methode setSourceResolver() eine Implementierung von XSourceResolver in den XDynamicContext integriert werden. | |
Zusätzliche Ausgabemethoden | Unterstützung für implementierungsdefinierte Ausgabemethoden | XSLT 2.0 and XQuery 1.0 Serialization | Der Prozessor implementiert keine zusätzlichen Ausgabemethoden. | |
Zusätzliche Serialisierungsparameter | Effekt zusätzlicher Serialisierungsparameter in der Ausgabe des Serializers | XSLT 2.0 and XQuery 1.0 Serialization | Der Prozessor implementiert die folgenden zusätzlichen Serialisierungsparameter:
|
|
Zusätzliches Normalisierungsformat | Unterstützung für ein zusätzliches Unicode-Normalisierungsformat | XSLT 2.0 and XQuery 1.0 Serialization | Es stehen keine implementierungsdefinierten Normalisierungsformate zur Verfügung. | |
Option für Codierungsphase | Auswirkung einer Option, mit der die Codierungsphase übersprungen werden kann, sodass das Serialisierungsergebnis ein Datenstrom mit Unicode-Zeichen ist | XSLT 2.0 and XQuery 1.0 Serialization | Der Prozessor stellt keine solche Option bereit. | |
Mechanismus für CDATA-Abschnitte | Vom Benutzer angeforderter, alternativer Mechanismus für die Erstellung von CDATA-Abschnitten | SR | Der Prozessor stellt keinen alternativen Mechanismus für die Erstellung von CDATA-Abschnitten bereit. | |
Unicode-Version | Unterstützte Unicode-Version | XPath 2.0
XQuery 1.0 |
Der Prozessor unterstützt die von der Host-JRE unterstützte Unicode-Version, d. h. Unicode Standard Version 4.0 für Java 6 und Unicode Standard Version 6.0 für Java 7. | |
Tracefunktion | Tracefunktion Der Bestimmungsort der Traceausgabe ist in der Implementierung definiert. |
XQuery 1.0 and XPath 2.0 Functions and Operators | Wenn Sie die Funktion fn:trace() verwenden, wird das Ergebnis an den com.ibm.xml.xapi.XMessageHandler (früher com.ibm.xml.xapi.XErrorHandler)) übergeben. Der Benutzer muss für die vom Prozessor gemeldeten Traceergebnisse einen eigenen XMessageHandler angeben. Der Typ von Tracenachrichten wir von XMessageHandler.TRACE angegeben. | |
Fehlerbehebung im Falle eines Unter-/Überlaufs bei Integer-Operationen | Mechanismus, über den Benutzer auswählen können, ob bei arithmetischen Operationen im Falle eines Über-/Unterlaufs ein Fehler ausgelöst oder als Ergebnis der Modulo in Form des größten darstellbaren ganzzahligen Wertes zurückgegeben wird | XQuery 1.0 and XPath 2.0 Functions and Operators | Der Prozessor stellt einen Mechanismus bereit, der bei Integer-Operationen eine Überlauferkennung mit der Methode com.ibm.xml.xapi.XStaticContext.setIntegerMathMode(int) ermöglicht, die zur Unterscheidung zwischen den beiden Optionen mit der Konstante INTEGER_MATH_MODE_OVERFLOW_DETECTION oder INTEGER_MATH_MODE_LIMITED_PRECISION aufgerufen werden kann. Für ganze Zahlen mit beliebiger Genauigkeit wird eine dritte Option bereitgestellt. | |
Kürzen von Stellen | Überschreitet die Anzahl der Stellen des Ergebnisses einer numerischen Operation die von der Implementierung unterstützte Anzahl, wir das Ergebnis auf implementierungsspezifische Weise gekürzt oder gerundet. | XQuery 1.0
and XPath 2.0 Functions and Operators
Abschnitt 3.2.3 von "XML Schema" Teil 2, "Datatypes" (zweite Auflage |
Die Implementierung verwendet die Klasse java.math.BigDecimal, die eine fast unbegrenzte Genauigkeit unterstützt. Lediglich die Anzahl der Dezimalstellen nach dem Komma ist auf den Wert von Integer.MAX_VALUE begrenzt. Eine Verkürzung ist nur bei Divisionen erforderlich, weil bei Divisionen potenziell unendliche Dezimalzahlen möglich sind. Die Genauigkeit der Nachkommastellen von Ergebnissen ist auf 18 Stellen begrenzt. In diesem Fall wird der Rundungsmodus ROUND_HALF_UP verwendet, bei dem nicht angegebene Nachkommazahlen ab 0,5 (von null weg) aufgerundet und kleinere Nachkommazahlen abgerundet werden. | |
Funktionalität von Sortierfolgen | Fähigkeit einer angegebenen Sortierfolge, Zeichenfolgen in für den Unterzeichenfolgenabgleich geeignete Sortierfolgeneinheiten zu zerlegen, als implementierungsdefinierte Eigenschaft | XQuery 1.0 and XPath 2.0 Functions and Operators | Wenn es sich bei dem Java Collator, der in einem Aufruf der Methode bindCollation für das Interface XDynamicContext angegeben ist, um eine Instanz der Klasse RuleBasedCollator handelt, kann der zugeordnete Sortierfolgen-URI mit einer der Funktionen für den sortierfolgenbasierten Unterzeichenfolgenabgleich verwendet werden. | |
Begrenzung für Jahreswerte | Maximale Anzahl Stellen für Jahreswerte Alle Prozessoren mit Mindestkonformität müssen Jahreswerte mit mindestens 4 Stellen (YYYY) unterstützen und für Sekundenbruchteile mindestens eine Genauigkeit von einer Millisekunde bzw. von drei Stellen (s.sss). Für konforme Prozessoren können in der Implementierung auch größere Grenzwerte für diese maximalen Stellenangaben festgelegt sein. |
XQuery 1.0 and XPath 2.0 Functions and Operators | Der Abschnitt year der Typen xs:date, xs:dateTime, xs:gYear und xs:gYearMonth muss im Bereich von -(10^9-1) bis (10^9)-1 liegen. | |
Genauigkeit von Sekundenbruchteilen | Maximale Anzahl Stellen für Sekundenbruchteile | XQuery 1.0 and XPath 2.0 Functions and Operators | Für die Typen xs:time und xs:dateTime werden maximal 3 Stellen für den Sekundenbruchteil unterstützt. | |
Funktion "doc" | Verschiedene Aspekte der Verarbeitung von fn:doc sind implementierungsspezifisch. Implementierungen können externe Konfigurationsoptionen angeben, die dem Benutzer erlauben, die Verarbeitungsaspekte zu steuern. | XQuery 1.0 and XPath 2.0 Functions and Operators | Benutzer können über die Methode
com.ibm.xml.xapi.XDynamicContext.setSourceResolver(XSourceResolver) eine Implementierung von
com.ibm.xml.xapi.XSourceResolver angeben.
Die Implementierung von fn:doc löst mit dem XSourceResolver URIs auf,
(sodass der Benutzer entscheiden kann, welche URIs unterstützt
werden sollen). Die Methode getSource(String,
String) des Resolvers muss ein JAXP-Quellenobjekt zurückgeben. Wenn kein XSourceResolver angegeben ist,
wendet der Prozessor das Schema für Datei-URIs und die von der Methode
java.net.URL.openConnection() unterstützten Schemata an. URI-Fragmente werden nicht verarbeitet. Es gibt keine integrierte Unterstützung für Nicht-XML-Medientypen. Benutzer können jedoch über eine
Implementierung von XSourceResolver eine XML-Darstellung von Nicht-XML-Daten für den Prozessor bereitstellen. Auf das Quellendokument kann je nach Validierungseinstellung die DTD-Validierung oder die Schemavalidierung angewendet werden. Die Validierungseinstellung kann für Instanzen von com.ibm.xml.xapi.XFactory mit der Methode setValidating festgelegt werden. Diese Einstellung wird von Objekten geerbt, die von der XFactory erstellt werden. Wenn für die Ausführungsmethode oder die Methode executeToList einer Instanz von com.ibm.xml.xapi.XExecutable eine Instanz von com.ibm.xml.xapi.XDynamicContext angegeben ist, wird die Validierungseinstellung dieser Instanz verwendet. Andernfalls wird die Einstellung der XExecutable-Instanz verwendet. Fehler, die beim Abrufen der Ressource oder bei der Analyse bzw. Validierung des Ressourceninhalts auftreten, kann der Prozessor nicht beheben. Der Prozessor stellt keine Option bereit, die die Funktion fn:doc von der Rückgabe stabiler Ergebnisse entbindet. |
|
Genauigkeit für Dezimalzahlen von Operatoren | Bei xs:decimal-Werten ist die Genauigkeit der von numerischen Operatoren zurückgegebenen Dezimalstellen implementierungsspezifisch. | XQuery 1.0 and XPath 2.0 Functions and Operators | Die durch die Genauigkeit vorgegebene Anzahl Stellen ist das erforderliche Minimum für die Darstellung des genauen Ergebnisses ohne Rundung. Dies gilt nicht im Falle von Divisionen, wo die Anzahl der Nachkommastellen des Ergebnisses auf 18 beschränkt ist. | |
Stabilität von "fn:collection" und "fn:doc" | Benutzeroption für die Auswertung der Funktion ohne garantierte Stabilität sowie Art der Bereitstellung einer solchen Option | XQuery 1.0 and XPath 2.0 Functions and Operators | Der Prozessor stellt keine Option bereit, die die Funktionen fn:doc und fn:collection von der Rückgabe stabiler Ergebnisse entbindet. | |
Dezimalgenauigkeit | Von
xs:decimal unterstützte Anzahl von Dezimalstellen Das Ergebnis der Umsetzung einer Zeichenfolge in xs:decimal ist implementierungsdefiniert, wenn der Ergebniswert nicht zu groß oder zu klein ist, aber dennoch zu viele Dezimalstellen für eine genaue Darstellung hat. |
XQuery 1.0 and XPath 2.0 Functions and Operators | Die Implementierung verwendet die Klasse java.math.BigDecimal, die eine fast unbegrenzte Genauigkeit unterstützt. Lediglich die Anzahl der Dezimalstellen nach dem Komma ist auf den Wert von Integer.MAX_VALUE begrenzt. Der Arbeitsspeicher wäre vor Erreichung dieser Begrenzung erschöpft. | |
Warnung zurückgeben | Umstände, unter denen Warnungen zurückgegeben werden, und Handhabung von Warnungen | XQuery 1.0
and XPath 2.0 Functions and Operators
XPath 2.0 XQuery 1.0 |
Der Benutzer kann
mit der Methode
setMessageHandler()(XMessageHandler) für
com.ibm.xml.xapi.XStaticContext (statische Warnungen) oder com.ibm.xml.xapi.XDynamicContext (dynamische Warnungen) eine
Implementierung von com.ibm.xml.xapi.XMessageHandler bereitstellen. Für jede Warnung wird die Methode report(int,
String, XSourceLocation, Exception) des XMessageHandler aufgerufen, wobei das erste
Argument gleich XMessageHandler.WARNING ist. Wenn kein XMessageHandler angegeben ist, werden Warnungen an den Standardfehlerausgabedatenstrom ausgegeben. Warnungen werden zurückgegeben, wenn der Prozessor Maßnahmen zur Vermeidung einer Fehlerbedingung ergreift, wenn er beispielsweise einen ungültigen Wert (den der Benutzer später korrigieren kann) durch einen Standardwert ersetzt. |
|
Melden von Fehlern | Methoden, mit denen die externe Verarbeitungsumgebung über Fehler informiert wird | XQuery 1.0
and XPath 2.0 Functions and Operators
XPath 2.0 XQuery 1.0 |
Der Benutzer kann
mit der Methode
setMessageHandler()(XMessageHandler) für
com.ibm.xml.xapi.XStaticContext (statische Fehler) oder com.ibm.xml.xapi.XDynamicContext (dynamische Fehler) eine
Implementierung von com.ibm.xml.xapi.XMessageHandler bereitstellen. Für jeden Fehler wird die Methode report(int,
String, XSourceLocation, Exception) des XMessageHandler aufgerufen, wobei das erste
Argument gleich XMessageHandler.ERROR oder XMessageHandler.FATAL_ERROR ist. Wenn kein XMessageHandler angegeben ist, werden Fehler an den Standardfehlerausgabedatenstrom ausgegeben. |
|
Regeln von XML 1.0 oder XML 1.1 | Angabe, ob der Prozessor für Namen und unterstützte Zeichen die Regeln von XML 1.0 oder XML 1.1 verwendet | XPath 2.0 XQuery 1.0 | Der Prozessor befolgt für NDName-Definitionen und unterstützte Zeichen sowie bei der Zeilenendebehandlung und der Normalisierung von Attributwerten die Regeln von XML 1.1. | |
Standardsortierung für leere Sequenzen | Angabe, ob auf leere Sequenzen in "order by" der Wert "empty least" oder "empty greatest" angewendet wird | XQuery 1.0 | Der Prozessor verwendet den durch einen Aufruf der XStaticContext-Methode setDefaultOrderForEmptySequences gesetzten Standardwert. Andernfalls gilt die Standardeinstellung "empty greatest". | |
Unterstützte "pragmas" | Namen und Semantik von unterstützten XQuery-Erweiterungsausdrücken (pragmas) | XQuery 1.0 | XQST0079 | Der Prozessor erkennt und unterstützt keine Erweiterungsausdrücke. |
Unterstützte Optionen | Namen und Semantik von unterstützten XQuery-Optionsdeklarationen | XQuery 1.0 | Der Prozessor unterstützt momentan die Option "java-extension" für die Deklaration von Erweiterungsfunktionen in einer Abfrage. Nähere Informationen hierzu finden Sie in der Dokumentation zur API. | |
Parameterübergabe an externe Funktionen | Unterstützte Protokolle für die Parameterübergabe an externe Funktionen von XQuery und für die Rückgabe eines Ergebnisses | XQuery 1.0 | Erweiterungsfunktionen werden über die Methoden XStaticContext.declareFunction und XDynamicContext.bindFunction des Prozessors unterstützt. Weitere Informationen finden Sie in der API-Dokumentation. | |
Aufrufen der Serialisierung | Mittel zum Aufrufen der Serialisierung für das Auswertungsergebnis einer XQuery-Abfrage | XQuery 1.0 | Wenn für eine Auswertungsmethode einer XQueryExecutable-Instanz eine Instanz des Interface javax.xml.transform.stream.StreamResult angegeben ist, serialisiert der Prozessor das Ergebnis der Abfrage. Sie können auch einen XSequenceCursor serialisieren, der das Ergebnis einer Abfrageauswertung ist, indem Sie eine der exportSequence-Methoden aufrufen. | |
Standardparameter für Serialisierung | Standardwerte der Serialisierungsparameter byte-order-mark, encoding, media-type, normalization-form, omit-xml-declaration, standalone und version | XQuery 1.0 | Die Einstellungen für Serialisierungsparameter können in einer Instanz des Interface
XOutputParameters
angegeben werden. |
|
Nicht erfolgreicher Aufruf einer externen Funktion | Auswirkung eines erfolglosen Aufrufs einer externen Funktion | XQuery 1.0 | Der Prozessor meldet zuerst jeder angegebenen Instanz
des Interface XMessageHandler einen Fehler und löst dann eine Ausnahme aus, falls
ein Aufruf einer externen Funktion von XQuery aus einem der folgenden Gründe erfolglos ist (weitere Gründe sind möglich): |
|
Modulimporte suchen | Der Prozess, mit dem die jeweiligen durch einen Modulimport zu importierenden Module ermittelt werden, wenn das Modulfeature unterstützt wird (einschließlich der Verarbeitung von möglicherweise vorhandenen Positionshinweisen). | XQuery 1.0 | Wenn ein XModuleResolver bei XStaticContext registriert ist, wird dieser verwendet, um Quellenobjekte (Source) für die Module abzurufen. Ist kein XModuleResolver registriert oder gibt dieer null zurück, versucht der Prozessor, ein einziges Modul für jeden Positionshinweis zu laden. Relative URIs werden anhand des Basis-URI aus dem statischen Kontext, sofern verfügbar, aufgelöst. Wenn der Basis-URI nicht verfügbar ist, werden relative Positionshinweise als Dateipfade relativ zum aktuellen Arbeitsverzeichnis aufgelöst. Absolute Positionshinweise werden unverändert verwendet. Wenn ein Modul für einen bestimmten Positionshinweis nicht geladen werden kann, fährt der Prozessor mit der Verarbeitung des nächsten Hinweises fort. Es wird eine Fehlernachricht ausgegeben, wenn keine Module für einen Namespace geladen werden können. |