This page (revision-87) was last changed on 16-Aug-2019 12:51 by Dieter Käppel

This page was created on 18-Aug-2009 22:25 by Dieter Käppel

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
87 16-Aug-2019 12:51 53 KB Dieter Käppel to previous Technologie ==> Technologien
86 16-Aug-2019 12:51 53 KB Dieter Käppel to previous | to last
85 28-Nov-2015 11:16 53 KB Dieter Käppel to previous | to last
84 28-Nov-2015 11:16 53 KB Dieter Käppel to previous | to last
83 18-Feb-2015 09:14 52 KB Dieter Käppel to previous | to last
82 18-Feb-2015 08:51 52 KB Dieter Käppel to previous | to last
81 25-Jul-2014 11:27 52 KB Dieter Käppel to previous | to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 176 changed 3 lines
|minStrategy|LAX|Legt fest, mit welcher Strategie die minimale Anzahl von Child-XML-Elementen induziert wird (Schema-Attribut minOccurs). Default ist die LAX-Strategy, die ein Mindestauftreten eines Elements von 1 verlangt, wenn das Element in allen fällen mindestens einmal vorkam und mindestens zwei Fälle vorliegen.
|maxStrategy|LAX|Legt fest, mit welcher Strategie die maximale Anzahl von Child-XML-Elementen induziert wird (Schema-Attribut maxOccurs). Default ist die LAX-Strategie, die das Maximalauftreten eines Elements von UNBOUNDED erlaubt, sobald das Element in mindestens zwei Fällen mindestens zwei mal auftritt.
|useStragegy|LAX|Legt die Strategie fest, mit der das use-Attribut "required" bei Attributen induziert wird. Default ist die LAX-Strategie, die required setzt, wenn in das attribut in allen fällen vorhanden war und mindestens zwei fälle vorliegen.
|minStrategy|LAX|Legt fest, mit welcher Strategie die minimale Anzahl von Child-XML-Elementen induziert wird (Schema-Attribut minOccurs). Default ist die LAX-Strategy, die ein Mindestauftreten eines Elements von 1 verlangt, wenn das Element in allen Fällen mindestens einmal vorkam und mindestens zwei Fälle vorliegen.
|maxStrategy|LAX|Legt fest, mit welcher Strategie die maximale Anzahl von Child-XML-Elementen induziert wird (Schema-Attribut maxOccurs). Default ist die MEDIUM-Strategie, die das Maximalauftreten eines Elements von UNBOUNDED erlaubt, sobald in einem Fall mindestens zwei Elemente aufgetreten sind. Hier ist keine LAX-Strategie sinnvoll, da maxOccurs per default als 1 angenommen wird, somit das Fehlen des Attributs zu einem Fehler beim Parsen der zuständigen XML führen würde.
|useStragegy|LAX|Legt die Strategie fest, mit der das use-Attribut "required" bei Attributen induziert wird. Default ist die LAX-Strategie, die required setzt, wenn in das attribut in allen Fällen vorhanden war und mindestens zwei fälle vorliegen.
At line 339 changed one line
!!Maven Beispiel
!!Arten von Induktion
Aus einem übergebenen XML-Dokument werden die Datentypen und die Häufigkeit des Auftretens der Elemente induziert. Induktion bedeutet, dass Annahmen getroffen werden, die nicht zwingend richtig sind.
!Häufigkeit von Elementen und Attributen
Die Häufigkeit von Elementen und Attributen werden durch Strategien induziert, die in der XmlConfig angepasst werden können. Induzieren bedeutet, die im gegebenen XML-Dokument aufgetretenen Fälle werden gezählt und dann mit Hilfe einer Strategie entschieden, wie das Attribut gesetzt werden soll.
Die Induktionsstrategien sind generell so ausgelegt, dass das Parsen des zur Induktion verwendeten XML-Dokuments positiv verläuft. Anders ausgedrückt, erzeugt die Induktion ein XML-Schema, innerhalb dessen das zur Induktion verwendete XML-Dokument gültig ist. Dies gilt für alle mitgelieferten Strategien.
* __MinStrategie:__ Evaluiert das Attribut minOccurs eines Schema-Elements und legt damit fest, wie oft ein XML-Element als Child-Element in einem Typ mindestens vorkommen muss. Default-Strategie ist LAX.
** __NONE:__ Es wird nie ein Auftreten von Elementen erzwungen.
** __LAX:__ Das Auftreten des Child-Elements wird erst dann erzwungen, wenn alle Parent-Elemente das Child-Element enthalten und mindestens zwei Fälle existieren. Die Strategie ist etwas entspannter als MEDIUM, da das Auftreten eines Falls nicht gewertet wird.
** __MEDIUM:__ Das Auftreten des Child-Elements wird erzwungen, sobald alle Parent-Elemente das Child-Element enthalten.
** __STRICT:__ Es wird die Mindestzahl von Child-Elementen verlangt, die im geringsten Fall festgestellt wurde.
* __MaxStrategie:__ Evaluiert das Attribut maxOccurs, ähnlich wie bei minOccurs. Hier ist zu beachten, dass die Schema-Validierung des XML-Parsers umgekehrt arbeitet. Die Default-Zahl von maxOccurs beträgt 1, das heißt es ist maximal 1 Child-Element erlaubt. Wird diese nicht ausdrücklich auf einen höheren Wert gesetzt, führt das Parsen des XML-Dokuments zu einem Fehler.
** __MEDIUM:__ Sobald ein Element mehrfach auftritt, wird maxOccurs auf "unbounded" gesetzt.
** __STRICT:__ Das Attribut maxOccurs wird auf genau den Integer-Wert gesetzt, wie das Child-Element maximal aufgetreten ist.
** __UNBOUNDED:__ Das maxOccurs wird immer auf "unbounded" gesetzt.
* __UseStrategy:__ Evaluiert das Attribut use beim Schema-Attribut "attribute". Es legt damit fest, ob ein Attribut optional ist oder erzwungen wird.
** __OPTIONAL:__ Alle Attribute sind optional.
** __LAX:__ Ein Attribut wird mit "required" markiert, wenn alle betreffenden Elemente das Attribut enthalten und mindestens zwei Elemente vorhanden sind.
** __STRICT:__ Ein Attribut wird mit "required" markiert, wenn alle betreffenden Elemente das Attribut enthalten, selbst dann wenn das Element nur einmal vorkommt.
!Eigene Strategien
Bei den Strategien handelt es sich um abstrakte Basisklassen, für die eine Reihe von Implementierungen mitgeliefert werden. Jeweils eine wurde in der XmlConfig als Default-Strategie ausgewählt, die verwendet wird, falls der Benutzer diese nicht selbst anpasst.
Da die Strategien vom Nutzer abgeleitet werden können, können damit Schemata erzeugt werden, innerhalb derer das gegebene XML-Dokument ungültig wird. Das Ableiten der Strategien ist daher mit der entsprechenden Vorsicht zu verwenden.
!!Beispiele
!Maven
At line 370 changed one line
!!Java Beispiel
!Java