Sephyr Geschrieben 21. Juli 2008 Teilen Geschrieben 21. Juli 2008 Hallo, Ich habe eine herrausforderung ein XML-Schema betreffend. Ich will zwei Attribute in einem Element haben, welche entweder zusammen oder gar nicht angegeben werden sollen: <subparam name="art" nullable="false" type="[…].business.transfer.UrlaubArt" /> <subparam name="zeitraumStart" nullable="false" [COLOR="Red"]relation="le" relationAttr="zeitraumEnde"[/COLOR] type="java.util.Date" /> Mein Schema sieht bis jetzt so aus: <xsd:complexType name="subparamType"> <xsd:sequence> <xsd:element name="subparam" type="subparamType" maxOccurs="unbounded" minOccurs="0"></xsd:element> </xsd:sequence> <xsd:attributeGroup ref="nameAttr"></xsd:attributeGroup> <xsd:attributeGroup ref="paramAttr"></xsd:attributeGroup> <xsd:attributeGroup ref="subparamAttr"></xsd:attributeGroup> </xsd:complexType> […] <xsd:attributeGroup name="subparamAttr"> <xsd:attribute name="relationAttr" use="required" type="xsd:string"></xsd:attribute> <xsd:attribute name="relation" use="required" type="vergleich"></xsd:attribute> </xsd:attributeGroup> <xsd:simpleType name="vergleich"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="e"/> <xsd:enumeration value="g"/> <xsd:enumeration value="l"/> <xsd:enumeration value="ge"/> <xsd:enumeration value="le"/> </xsd:restriction> </xsd:simpleType> 1. Gibt es eine Möglichkeit dieses Problem zu lösen? 2. Gibt es eine Möglichkeit zu definieren, dass der Wert des relationAttr-Attributs eine gültige ID innerhalb des Dokuments ist? Danke und Gruss Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tweetymax Geschrieben 21. Juli 2008 Teilen Geschrieben 21. Juli 2008 Mal zum Ansatz: zu 1. Jede Probgrammiersprache hat doch Funktionen, mit denen du XML-Knoten und Attribute parsen kannst. Warum zählst du die Attribute nicht, bzw. prüfst diese, ob sie (also die Attribute) gültig sind, und zählst dementsprechend hoch bevor du eine Ausgabe machst. zu 2. Sicher gibt es die (nein ich poste nun keine code, um nicht wieder was auf den Deckel zu bekommen... wobei ich eh noch nicht ganz verstanden habe, was wie wo welche ID da gültig sein soll :floet: ) aber möglich ist es immer Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sephyr Geschrieben 21. Juli 2008 Autor Teilen Geschrieben 21. Juli 2008 Hallo, vielen Dank für deine Antwort, aber könntest du mir bittebitte ein Beispiel zum vergeben von Fremdschlüssel posten, wäre dir da sehr dankbar! Viele Grüße Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tweetymax Geschrieben 21. Juli 2008 Teilen Geschrieben 21. Juli 2008 Also das simpelste Modell. um eine Spalte an Framdschlüssel zu binden, wird wahrscheinlich eine Liste sein, die in der Primärschlüsselspalte hinterlegt ist. z.B. <fkeys table="a1" cell="b5" /> <fkeys table="aa7" cell="xD2" /> ... um vom Fremdschlüssel auf den Primär oder andere Fremdschlüssel zu kommen gibst du der Fremdschlüsselspalte die lage der Primärschlüsselspalte mit, und hast von dem Punkt aus ja wieder alle Fremdschlüssel im Zugriff Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sephyr Geschrieben 21. Juli 2008 Autor Teilen Geschrieben 21. Juli 2008 Könnte mir wirklich weiterhelfen... Und wo wir schonmal dabei sind: Ist es möglich Schlüssel nur innerhalb eines Elements bzw. einer Stufe innerhalb eines Elementes zu verteilen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tweetymax Geschrieben 23. Juli 2008 Teilen Geschrieben 23. Juli 2008 Könnte mir wirklich weiterhelfen... Und wo wir schonmal dabei sind: Ist es möglich Schlüssel nur innerhalb eines Elements bzw. einer Stufe innerhalb eines Elementes zu verteilen? meinst du damit dass der Primär und fremdschlüssel innerhalb einer art Tabelle ist, in der Primärschlüssel die eine Spalte, und Fremdschlüssel eine andere Spalte ist? wenn ja sollte es auf die selbe art und weise funktionieren, da du den spalten ja die keys zuweist, und nicht der "Tabelle" an sich... wenn du z.B. noch einen weiteren Wert vorranstellst (z.B. cat_1 statt nur 1), müsstest du bei der beziehungsdefinition eventuell noch einen prevalue="cat_" hinzufügen oder Wert dahinter (z.B. statt 1 -> 1_cat) einen postvalue="_cat". Möglichkeiten gibt es viele, Beziehungen auch innerhalb von XML zu definieren. Bist da ja vollkommen frei, da du die Logik dafür selbst definierst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.