Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

XML Schema entweder keins oder zwei Attribut

Empfohlene Antworten

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

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 :D (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 ;)

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

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

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?

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.