Komplexe Webtypen

Das hier beschriebene Werkzeug ist noch in Entwicklung, und die Informationen auf dieser Seite sind nicht verbindlich!

Ein komplexer Typ gruppiert andere Webdatentypen. Diese können einfache Typen sein, aber auch andere komplexe Typen oder Listentypen.

Eine Sonderform eines komplexen Typs ist ein Listentyp.

Neuanlage

Anzeige und Bearbeitung

Die Bearbeitung eines komplexen Typs erfolgt in dem Reiter „Definition“.

Im oberen Teil werden Eigenschaften des Typs festgelegt.

publedge_c_def.jpg

  • Verbund: Gibt an, in welcher Reihenfolge die Elemente übergeben werden müssen:
    • „All“bedeutet, dass die Element in beliebiger Reihenfolge auftreten können, wobei jedes Element 0 oder 1 mal vorhanden sein kann. Wenn trotzdem Elemente mit einem Vorkommen > 1 verwendet werden sollen, können diese in einen Listentyp gekapselt werden.
    • „Sequence“ ist der Default und bedeutet, die Elemente werden in der Reihenfolge wie definiert angegeben, jedes Element kann null mal bis beliebig oft vorhanden sein.
    • „Choice“ bedeutet, dass nur eines der angegebenen Elemente vorhanden sein darf, und das null mal bis beliebig oft.
  • Qualifiziert: Wenn angekreuzt, muss das Element im Schema mit dem Namespace-Prefix präfixiert werden1).
  • Abstrakt: Wenn der Typ als Abstrakt gekennzeichnet ist, kann er nicht direkt verwendet werden, sondern nur als Basistyp für andere komplexe Typen2).
  • Basistyp : Wenn der aktuelle Typ auf einen anderen Typ basieren soll, kann dieser über den Auswahl-Knopf (…) oder den Befehl „Basistyp auswählen“ am Kontextmenu über im Menü „Bearbeiten“ gesetzt werden. Über den Befehl „Basistyp entfernen“ kann er entfernt werden. Der Basistyp kann ein abstrakter oder nicht-abstrakter Typ sein. Auch abstrakte Typen können auf einem anderen Typ basieren, der allerdings ebenfalls abstrakt sein muss. Wenn ein Basistyp angegeben ist, werden die an dem Basistyp definierten Elemente und Attribute in den aktuellen Typ übernommen; diese können hier nicht angepasst werden, sondern nur durch Bearbeitung des Basistyps.3)

    Elemente

    In dem Reiter „Elemente“ werden die Elemente angezeigt, die Bestandteile des komplexen Typs sind:

    publedge_c_elemente.jpg

    Wenn der Typ auf einem anderen Typ basiert, werden die aus diesem Typ vererbten Elemente grau dargestellt. Diese Elements sind in dem aktuell angezeigten Typ nicht anpassbar.

    • Name ist der Name des Elements (frei wählbar, muss nur innerhalb des komplexen Typs eindeutig sein). Um den Namen nachträglich anzupassen, selektieren Sie die Zeile und aktivieren Sie die Bearbeitung des Felds mit F2
    • Inline kann angekreuzt werden, um zu dem gewählten Typ Ergänzungen zu definieren, die nur für diese Verwendung gelten.
    • Verbund (nur für inline-Gruppen): gibt an, welcher Verbund-Typ für dieses Element gelten soll.
    • Typ ist der Typ des Elements. Dies kann ein Standard-Typ sein (z.B. „string“) oder ein einfacher, komplexer oder Listen-WebDatentyp .
    • Optional ist angehakt, wenn das Mindestvorkommen des Elements 0 ist. Wird auch bei Änderung des Mindestvorkommens ggf. angepasst.
    • Nillable erlaubt, wenn angehakt, dass das Element im xml der Nachricht die Angabe nil=„true“ enthalten darf4). Wenn das Mindestvorkommen > 0 ist, kann so dennoch ein leeres Element übergeben werden.
    • Mindestvorkommen gibt an, wie oft das Element mindestens vorhanden sein muss (Default: 1)5); wenn der Wert 0 ist, wird auch „Optional“ angekreuzt.
    • Maximalvorkommen gibt an, wie oft das Element maximal vorhanden sein darf (Default: 1); der Wert 0 bedeutet: unbegrenzt.6).
    • Als zusätzliche Spalte kann die Namespace des Tys eingeblendet werden. Der Wert wird aus der Typdefinition bestückt und kann nicht geändert werden.


    Wenn als Verbund „All“ angegeben ist, sind Mindestvorkommen und Maximalvorkommen nicht editierbar; die Anzahl für Mindestvorkommen kann über die „Optional“-Angabe auf 0 oder 1 geändert werden.

    Über das Kontextmenü können Elemente hinzugefügt oder entfernt werden. Auch die Reihenfolge kann hier angepasst werden:

    • Element hinzufügen: Fügt ein Element hinzu. Für die Auswahl des Typs wird eine Combobox angezeigt; wenn Sie hier „Webdatentyp“ auswählen, wird für die Auswahl des Datentypes der Suchdialog aufgeblendet.
      publedge_c_adde.jpg

      • Um ein Gruppenelement hinzuzufügen, wählen Sie in der Typ-Combobox den Wert „Inline-Gruppe“. Sie müssen für die Gruppenstufe einen Namen vergeben. Die Typangabe in der Liste bleibt für Gruppenelemente leer, und die spalte Inline ist angekreuzt.
      • Um unterhalb eines Gruppenelements Elemente hinzuzufügen, selektieren Sie das Gruppenelement und wählen Sie im Kontextmenü „Element hinzufügen“. Es können so auch weitere Gruppenelemente hinzugefügt werden.
    • Element entfernen: Entfernt das selektierte Element. Wenn ein Gruppenelement selektiert ist, wird das selektierte Element sowie alle untergeordneten Elemente entfernt.
    • Element nach unten/oben verschieben: Verschiebt das Element in die angegebene Richtung.


    Um Angaben zu einem Element zu ändern, können diese direkt in der Liste editiert werden. Um den Namen nachträglich anzupassen, selektieren Sie die Zeile und aktivieren Sie die Bearbeitung des Felds mit F2 oder über das Kontextmenü. Wenn Sie den Typ anpassen, erscheint dieselbe Combobox wie beim Hinzufügen von Elementen, sowie für Webdatentypen derselbe Auswahldialog.

    Wenn ein Element als inline markiert ist, ist der Typ dieses Elements nicht mehr änderbar.

    Ergänzungen zu Typen

    Wenn in der Elementliste zu einem Eintrag die Spalte „Inline“ angekreuzt ist, können zu dem Element Ergänzungen definiert werden, die nur für diese Verwendung gelten. Welche Ergänzungen möglich sind, hängt von der Art des Typs ab:

    Für Inline-Gruppen

    • können Sie auswählen, welche Verbundart für diese Gruppe gelten soll.
    • Außerdem können Sie Elemente hinzufügen (Befehl „Element hinzufügen/entfernen“ ausführen, während der Inline-Typ in der Elementliste selektiert ist),
    • oder Elemente entfernen.


    Bei komplexen Typen

    • können Sie zusätzliche Elemente hinzufügen (Befehl „Element hinzufügen“ ausführen, während die Instanz des komplexen Typs in der Elementliste selektiert ist)
    • und auch wieder entfernen.


    Im nachfolgenden Beispiel wurde einem komplexen Typ die Inline-Gruppe „Zusatzinfos“ und zwei weitere Elemente hinzugefügt, und in dieser Gruppe der Typ „Anschrift“ als Element „Zweitanschrift“ inline um das Element „Anmerkung“ ergänzt:

    publedge_c_inlinetree.jpg

    Bei Standardtypen und einfachen Webdatentypen



    Bei Listentypen sind keine verwendungsspezifischen Ergänzungen möglich.

    Bei hinzugefügten Elementen, die selbst auch als „inline“ gekennzeichnet sind, haben Sie dieselben Möglichkeiten, diese weiter zu ergänzen.

    Hinweis: In Zukunft wird es auch möglich sein, komplexen Typen inline ergänzende Attribute hinzuzufügen. Diese Funktionalität ist aktuell noch nicht implementiert.

    Attribute

    Als Attribut kann jeder einfache Typ verwendet werden, also entweder ein einfacher Webdatentyp oder ein Basistyp (z.B. „string“)..

    Hinzufügen und Entfernen von Attributen ist über das Kontextmenü an der Liste möglich.
    Um Namen oder Typ eines Attributs zu ändern, können diese Angaben direkt in der Liste editiert werden.
    publedge_c_adda.jpg

    Hinweis: In Zukunft wird es auch möglich sein, zu Attributen Beschränkungen anzugeben. Diese Funktionalität ist aktuell noch nicht implementiert.

    Hier ein Beispiel, wie Attribute im Schema erscheinen:

    - <complexType name="PgPerson">
    + <all>
    - <attribute name="Bemerkung">
      - <simpleType>
         <restriction base="bo:InterneBemerkung" /> 
        </simpleType>
      </attribute>
    </complexType>

    Verknüpfung mit TAA-Datenstruktur oder Parameterobjekt

    Verknüpfungen zwischen den Bestandteilen des komplexen Typs und Daten aus TAA-Datenstrukturen.

    Schema

    In diesem Reiter wird dargestellt, wie die XSD für diesen Typ aussieht. Die Definition kann hier nicht angepasst werden, sondern ausschließlich in dem Reiter „Definition“. Hier ein Beispiel für die Definition und das dazugehörige Schema eines Typs:

    publedge_c_schema.jpg

      <?xml version="1.0" encoding="utf-8" ?>
    - <schema xmlns:q8="http://www.bipro.net/namespace/allgemein" targetNamespace="http://www.bipro.net/namespace/allgemein" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema">
      <import namespace="http://www.bipro.net/namespace/datentypen" schemaLocation="examplePath/ST_Unternehmensnummernart.xsd" />
      - <complexType name="CT_Unternehmen">
        - <complexContent>
          - <extension base="CT_Objekt:CT_Objekt" xmlns:CT_Objekt="http://www.bipro.net/namespace/basis">
            - <sequence>
              <xsd:element name="Nummer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" type="xsd:string" minOccurs="1" maxOccurs="1" />
              <xsd:element name="Name" xmlns:xsd="http://www.w3.org/2001/XMLSchema" type="xsd:string" minOccurs="1" maxOccurs="1" />
              <xsd:element name="Ort" xmlns:xsd="http://www.w3.org/2001/XMLSchema" type="xsd:string" minOccurs="1" maxOccurs="1" />
              <xsd:element name="Geschaeftsstelle" xmlns:xsd="http://www.w3.org/2001/XMLSchema" type="xsd:string" minOccurs="1" maxOccurs="1" />
              <element name="Nummernart" xmlns:q12="http://www.bipro.net/namespace/datentypen" type="q12:ST_Unternehmensnummernart" minOccurs="0" maxOccurs="1" />
              <xsd:element name="PartnerID" xmlns:xsd="http://www.w3.org/2001/XMLSchema" type="xsd:string" minOccurs="1" maxOccurs="1" />
            </sequence>
          </extension>
        </complexContent>
      </complexType>
    </schema>

    In den hier angezeigten Schemas wird für den Verweis auf Elemente als schemaLocation examplePath angezeigt. Dies wird nur für die hier angezeigte Preview des Schemas so erzeugt. Es ersetzt die „echten“ Pfadangaben auf XSD-Dokumente, die beim Verweis auf andere WebDatentypen zum Zeitpunkt der Preview-Erzeugung nicht zur Verfügung stehen.</inline>

1)
Schema: elementFormDefault=„qualified“
2)
Schema: abstract=„true“
3)
Schema: complexcontent, extension base
4)
Schema: nillable=„true“
5)
Schema: minOccurs
6)
Schema: maxOccurs
publedge:data_complex · Zuletzt geändert: 09.08.2024 13:25

Copyright © 1992-2024 TeamWiSE Gesellschaft für Softwaretechnik mbH         Adressen |  Kontakt |  AGB |  Datenschutzerklärung |  Impressum