Announcement

Collapse
No announcement yet.

Entweder oder Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Entweder oder Problem

    Hallo,

    Wiederholt sthe ich vor folgenden problem:

    Ich brauche ein shema welches mir ein xml definiert welches

    entweder so ....

    Code:
    <root>
        <element1>value1</element1>
        <element2>value2</element2>
    </root>
    ... oder so ...

    Code:
    <root>
        <element1>value1</element1>
        <element3>value3</element3>
    </root>
    ... aber niemals so

    Code:
    <root>
        <element1>value1</element1>
        <element2>value2</element2>
        <element3>value3</element3>
    </root>
    ...aussieht.

    Jemand eine Idee?
    Grüße
    Kai

  • #2
    Hi

    du hast das gleiche Problem wie ich ...

    nur dass ich eben anstatt 2 pflichteingaben nur eines brauche...

    freue mich schon auf antworten..

    Comment


    • #3
      Muss das <element1> immer vorhanden sein, also <element1> immer, plus <element2> oder <element3>? Oder sollen sowas wie "genau 2 aus 3" sein?

      Ausgehend von Fall 1:
      mach dir zunächst ein complexType welcher eine enumeration beinhaltet, und zwar aus aus einem <element1> und einer choice aus den beiden anderen Elementen. Das sieht dann so aus:
      [highlight=xml]
      <xsi:complexType name="myType">
      <xsi:sequence>
      <xsi:element name="element1" maxOccurs="1" minOccurs="1"/>
      <xsi:choice maxOccurs="1" minOccurs="1">
      <xsi:element name="element2"/>
      <xsi:element name="element3"/>
      </xsi:choice>
      </xsi:sequence>
      </xsi:complexType>
      [/highlight]

      In letzterem Fall würde ich folgendes benutzen:
      [highlight=xml]
      <xsi:complexType name="myType">
      <xsi:choice maxOccurs="2" minOccurs="2">
      <xsi:element name="element2"/>
      <xsi:element name="element3"/>
      <xsi:element name="element1"/>
      </xsi:choice>
      </xsi:complexType>
      [/highlight]

      Wobei xsi der Namensraumqualifier der Schemainstanz ist, und bei dir auch anderst sein kann. Allerdings wäre es dann Möglich, dass ein Element auch 2mal vorkommen darf. Was besseres fällt mir gerade nicht dazu ein..
      Just be DRY and KISS your customers.

      Comment

      Working...
      X