XML-Schema: Element-Gruppen in abgeleiteten Typen

Gar nicht so einfach, hierfür 'nen passenden Titel zu finden. Problemstellung: In einer XML-Schema-Datei sei ein abstrakter complexType definiert:
<xsd:complexType name="abstractSearch" abstract="true">
  <xsd:sequence>
    <xsd:element name="date" ... />
    <xsd:element name="operator"  .. />
  </xsd:sequence>
  ...
</xsd:complexType>

Weiterhin existiert ein konkreter Typ, der davon abgeleitet ist:
<xsd:complexType name="search">
  <xsd:complexContent>
    <xsd:extension base="abstractSearch">
      <xsd:all>
        <xsd:element name="combi" ... />
      </xsd:all>
      <xsd:attribute name="itc" ... />
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

Beim Erzeugen der zugehörigen JAXB-Klassen mittels xjc-Compiler wird diese unverständliche Fehlermeldung entstehen:
cos-all-limited.1.2: An all model group must appear in a particle with
{min occurs} = {max occurs} = 1, and that particle must be part 
of a pair which constitutes the {content type} of a complex type 
definition.

Aja. Nachdem ich stundenlang vergeblich an den "minOccurs"- und "maxOccurs"-Attributen rumgedreht hab, kam mir spontan die Erleuchtung. Im Basis-Typ "abstractSearch" ist eine "sequence" definiert, im abgeleiteten Typ "search" jedoch eine "all"-Gruppe. Der Compiler versucht nun offensichtlich, beide Element-Gruppen zu mergen. Pro Element darf nur eine existieren. Und da es sich um zwei verschiedene Arten handelt, kriegt er genau das nicht auf die Reihe.

Die einfache Lösung lautet daher: Sowohl in "abstractSearch" als auch in "search" die gleiche Art von Gruppe verwenden. Also entweder nur "sequence" oder nur "all". Aber nicht beides.

Trackbacks

Trackback-URL für diesen Eintrag

Dieser Link ist nicht aktiv. Er enthält die Trackback-URI zu diesem Eintrag. Sie können diese URI benutzen, um Ping- und Trackbacks von Ihrem eigenen Blog zu diesem Eintrag zu schicken. Um den Link zu kopieren, klicken Sie ihn mit der rechten Maustaste an und wählen "Verknüpfung kopieren" im Internet Explorer oder "Linkadresse kopieren" in Mozilla/Firefox.

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Die Kommentarfunktion wurde vom Besitzer dieses Blogs in diesem Eintrag deaktiviert.