Nachrichtenmodellobjekte: Wertvorgaben für einfachen Typ

Wertvorgaben grenzen einen einfachen Typ ein, indem Grenzwerte für die Werte, die der Typ annehmen kann, definiert werden.

Oft ist es nützlich, Vorgaben für Werte, die ein Element annehmen kann, festzulegen, um beispielsweise sicherzustellen, dass Nachrichten bestimmten Geschäftsregeln entsprechen. Dieser Abschnitt beschreibt, wie Wertvorgaben zu einem einfachen Typ hinzugefügt werden, um die Werte aller auf dem Typ basierenden Elemente zu begrenzen.

Die meisten der hier beschriebenen Wertvorgaben werden durch XML-Schema-Facetten modelliert und einem einfachen Typ zugeordnet. Es können jedoch auch Standardwerte und feste Werte für ein Element definiert werden, die dann dem Element selbst zugeordnet werden.

Tipp: Wenn die Nachrichtengruppe in WebSphere Message Broker eingesetzt wird, können alle Wertvorgaben überprüft werden, so dass Verstöße gegen die Vorgaben als Fehler oder Warnungen gemeldet werden.

Wertvorgabetypen

Standardwert
Wenn in einer Eingabenachricht ein leeres Element enthalten ist, wird diesem der Standardwert zugewiesen. Ist ein Element in einer Eingabenachricht gar nicht angegeben, kann auch kein Wert zugewiesen werden.

Wenn in einer Eingabenachricht ein Attribut fehlt, wird diesem der Standardwert zugewiesen.

Beachten Sie, dass Standardwertvorgaben dem Element selbst zugeordnet sind und deshalb nicht übernommen werden können.

Anmerkung: Wenn Sie eine Nachrichtengruppe in WebSphere Message Broker einsetzen, gilt nicht immer das oben beschriebene Verhalten. Eine ausführliche Erläuterung der Unterschiede finden Sie im Abschnitt Relationship to the logical model (Beziehung zum logischen Modell) für das jeweilige physische Format.
Fester Wert
Wenn ein Element in einer Eingabenachricht vorhanden ist, muss sein Wert dem festgelegten festen Wert entsprechen. Ist in einer Eingabenachricht ein leeres Element enthalten, wird diesem der feste Wert zugewiesen. Ist ein Element in einer Eingabenachricht gar nicht angegeben, wird ihm der feste Wert zugewiesen.

Wenn ein Attribut in einer Eingabenachricht enthalten ist, muss es den festen Wert haben. Ist ein Attribut in einer Eingabenachricht nicht angegeben, wird ihm der feste Wert zugewiesen.

Feste Werte als Vorgaben sind dem Element selbst zugeordnet und können deshalb nicht übernommen werden.

Anmerkung: Wenn Sie eine Nachrichtengruppe in WebSphere Message Broker einsetzen, gilt nicht immer das oben beschriebene Verhalten. Eine ausführliche Erläuterung der Unterschiede finden Sie im Abschnitt Relationship to the logical model (Beziehung zum logischen Modell) für das jeweilige physische Format.
Längenvorgaben: length (Länge), minLength (Mindestlänge), maxLength (Maximale Länge)
Mit Hilfe von Längenvorgaben kann die Länge aller Elemente, die auf dem einfachen Typ basieren, begrenzt oder sogar auf einen einzelnen Wert festgelegt werden.

Längenvorgaben können auf einfache Typen angewendet werden, die vom Schematyp xsd:hexBinary, xsd:base64Binary oder xsd:string (einschließlich integrierter Schematypen wie xsd:normalisedString) abgeleitet sind.

Längenvorgaben werden von übergeordneten Typen übernommen, wobei Längenvorgaben, die für einen einfachen Typ definiert werden, nicht von den Vorgaben, die von einem der übergeordneten Typen vorgegeben werden, abweichen dürfen. Beispielsweise ist es unzulässig, einen Typ 'langeZeichenfolge' (maxLength=100) von einem Typ 'kurzeZeichenfolge' (maxLength=10) abzuleiten.

Anmerkung: In WebSphere Message Broker werden Wertvorgaben für length standardmäßig in Vorgaben für maxLength konvertiert, wenn eine Nachrichtengruppe zu einer BAR-Datei hinzugefügt wird. Dadurch wird verhindert, dass WebSphere Message Broker Pseudo-Gültigkeitsfehler für Datenstrukturen mit fester Länge verursacht, bei denen Zeichenfolgen häufig aufgefüllt werden, damit sie in ein Feld mit feststehender Breite passen. Wenn eine strikte Längenvalidierung erforderlich ist, kann dieser Standardwert durch Ändern der Option Broker behandelt Längenfacette als maximale Länge geändert werden.
Bereichsvorgaben: minInclusive (Eingeschlossener Mindestwert), maxInclusive (Eingeschlossener Maximalwert), minExclusive (Ausgeschlossener Mindestwert), maxExclusive (Ausgeschlossener Maximalwert)
Bereichsvorgaben geben den zulässigen Wertebereich für alle Elemente an, die auf dem einfachen Typ basieren. Bei inklusiven Vorgaben ist der angegebene Endpunkt in den zulässigen Bereich eingeschlossen, bei exklusiven Vorgaben ist er es nicht. Bereichsvorgaben können auf einfache Typen angewendet werden, die numerisch sind oder sich auf Kalender- und Zeitwerte beziehen. Sie können nicht auf Zeichenfolgen angewendet werden, weil die Aufeinanderfolge von Zeichenfolgewerten vom verwendeten Zeichensatz abhängig ist.

Bereichsvorgaben werden von übergeordneten Typen übernommen, wobei Bereichsvorgaben, die für einen einfachen Typ definiert werden, nicht von den Vorgaben, die von einem der übergeordneten Typen vorgegeben werden, abweichen dürfen. Beispielsweise ist es unzulässig, einen Typ 'großeZahl' (maxInclusive=100) von einem Typ 'kleineZahl' (maxInclusive=10) abzuleiten.

Das Nachrichtenmodell lässt nicht zu, dass exklusive Vorgaben auf Typen angewendet werden, bei denen es sich nicht um Integraltypen (Gleitkomma, Dezimalzahl, Doppelzeichen, Uhrzeit/Datum usw.) handelt.

Aufzählungsvorgaben (enumeration)
Eine Aufzählungsvorgabe gibt einen einzelnen zulässigen Wert für alle Elemente an, die auf dem einfachen Typ basieren. Eine Liste von zulässigen Werten kann angegeben werden, indem mehrere Aufzählungsvorgaben für denselben einfachen Typ festgelegt werden. Aufzählungsvorgaben können auf alle einfachen Typen angewendet werden.

Aufzählungsvorgaben werden von übergeordneten Typen übernommen, wobei der Bereich der zulässigen Werte durch keine der Gruppen von Aufzählungsvorgaben, die für einen einfachen Typ definiert werden, erweitert werden darf. Beispielsweise ist es unzulässig, einen Typ 'AlleFarben' (mit Aufzählungen für alle Farben des Regenbogens) aus einem Typ 'MonoFarben' (mit Aufzählungen nur für 'schwarz' und 'weiß') abzuleiten.

Genauigkeitsvorgaben: Gesamtstellen (totalDigits) und Nachkommastellen (fractionDigits)
Genauigkeitsvorgaben beziehen sich nur auf Dezimalwerte. Sie begrenzen die Anzahl der signifikanten Stellen (Gesamtstellen) und die Anzahl der Dezimalstellen (Nachkommastellen) für alle Elemente, die auf dem einfachen Typ basieren. Genauigkeitsvorgaben können nur auf einfache Typen angewendet werden, die vom Datentyp xsd:decimal abgeleitet sind.

Genauigkeitsvorgaben werden von übergeordneten Typen übernommen, wobei Genauigkeitsvorgaben, die für einen einfachen Typ definiert werden, nicht von den Vorgaben, die von einem der übergeordneten Typen vorgegeben werden, abweichen dürfen. Beispielsweise ist es unzulässig, einen Typ 'sehrGenau' (fractionDigits=10) von einem Typ 'nichtSehrGenau' (fractionDigits=1) abzuleiten.

Mustervorgaben (pattern)
Eine Mustervorgabe ist ein regulärer Ausdruck, der eine Gruppe zulässiger Werte für alle Elemente angibt, die auf dem einfachen Typ basieren. Für denselben einfachen Typ können mehrere Muster definiert werden. Dadurch ist es möglich, komplexe Prüfregeln in Form von logisch getrennten Abschnitten auszudrücken. Jede Mustervorgabe für einen einfachen Typ leistet einen Beitrag zu der Gruppe zulässiger Werte für Elemente, die auf dem einfachen Typ basieren. Mit anderen Worten: Alle Muster werden durch den Booleschen Wert ODER miteinander kombiniert.

Wie bei allen Wertvorgaben gilt auch hier, dass ein einfacher Typ Mustervorgaben von dem einfachen Typ, auf dem er basiert, übernehmen kann. In diesem Fall muss sowohl die Gruppe von Mustervorgaben, die von jedem übergeordneten Typ beigetragen wird, als auch die Gruppe, die von dem einfachen Typ selbst beigetragen wird, den Anforderungen entsprechen. Mit anderen Worten: Die Gruppen von Mustervorgaben aus den einzelnen Ebenen der Typhierarchie werden durch den Booleschen Wert UND miteinander kombiniert.

Mustervorgaben können nur auf einfache Typen angewendet werden, die vom Datentyp xsd:string abgeleitet sind.

Leerzeichenvorgaben (whiteSpace)
Eine Leerzeichenvorgabe gibt an, wie ein Parser Leerzeichen für alle Elemente, die auf dem einfachen Typ basieren, behandeln soll.
Anmerkung: Bei WebSphere Message Broker ist es so, dass physische MRM-Formate zulassen, dass Leerzeichen für jedes für die Nachricht definierte physische Format sehr genau kontrolliert werden. Diese physischen Eigenschaften sind jedoch von den Leerzeichenvorgaben im logischen Modell getrennt.
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ad10470_