Produktbezogene Elemente aus Vertrags-Xsd entfernt, sind jetzt im Feature-Branch "Produkte".

This commit is contained in:
2025-05-14 14:59:08 +02:00
parent a407dfbb93
commit 8c900be96d
2 changed files with 16 additions and 115 deletions

View File

@@ -199,20 +199,24 @@
Hier gibt es zwei Lösungsmöglichkeiten:
\begin{itemize}
\item Der Client zeigt die Daten einem Menschen, welcher mit heterogene textliche Informationen etwaiger
Fehlermeldungen interpretieren kann und die Daten in die passende Form bringt.
Fehlermeldungen umgehen kann und die Daten in die passende Form bringt.
\item Das Objektmodell wird so erweitert, dass es statt vieler individueller und vom Client unberücksichtigter
Regeln einige wenige vom Client zu berücksichtigende Regeln gibt. Der Client wird so erstellt,
dass er der formalen Unterstützung folgt. Damit dieser Weg effizient verfolgt werden kann, muss die Unterstützung
von allen Serviceprovidern gleich geboten werden, d.h. sie muss in der Norm verbindlich vorgeschrieben werden.
Diese Unterstützung muss abrufbar sein, ohne die Änderung gleich auszulösen.
Welche Unterstützung für welches inhaltliche Thema angemessen ist, kann unterschiedlich ausfallen. Die
Unterstützung, die für das Ausfüllen von Kfz-Daten hilfreich ist, ist vermutlich anders als die
Unterstützung bei der Konfiguration eines Deckungsbaums. Es mag aber auch themenübergreifend einheitliche
Unterstützungselemente geben, z.B. die Angabe von Wertebereichen für Parameter.
\end{itemize}
Bei beiden Lösungswegen ist ein zusätzlicher Service erforderlich, um das Objektmodell zu validieren oder
auszuführen.
\end{itemize}
\subsubsection{Modell am Server stateful vs. stateless}
Wenn zwei Services stellt sich die Frage, ob diese stateless umgesetzt werden sollen oder stateful, das Modell der
Änderung also am Server verwaltet werden soll.
\subsubsection{Modell am Server?}
Bei Änderungen mit zwei Services stellt sich die Frage, ob diese beiden Services stateless umgesetzt werden sollen
oder ob das Modell der Änderung am Server verwaltet werden soll (stateful).
\paragraph{Vorteile stateful}
\begin{itemize}
\item Bei einem invaliden Request vom Client, kann das letzte gültige Modell am Server erhalten bleiben.

View File

@@ -3,9 +3,14 @@
<xsd:import namespace="urn:omds20" schemaLocation="omds217-00.xsd"/>
<xsd:import namespace="urn:omds3CommonServiceTypes-1-1-0" schemaLocation="omds3CommonServiceTypes.xsd"/>
<xsd:import namespace="urn:at.vvo.omds.types.omds3types.v1-3-0.on2antrag.common" schemaLocation="omds3_ON2_Antrag_Common.xsd"/>
<!-- =========================================================== -->
<!-- | Vertragsänderungen | -->
<!-- =========================================================== -->
<xsd:annotation>
<xsd:documentation>
===========================================================
| Vertragsänderungen |
===========================================================
</xsd:documentation>
</xsd:annotation>
<xsd:element name="ContractChangeOptionsRequest">
<xsd:annotation>
<xsd:documentation>Requests-Type zur Anfrage von Änderungsmöglichkeiten für einen Vertrag</xsd:documentation>
@@ -406,112 +411,4 @@
</xsd:annotation>
</xsd:complexType>
<xsd:complexType name="Baustein_Type" abstract="true">
<xsd:annotation>
<xsd:documentation>Ein abstrakter Deckungsbaustein, von dem die konkreten abgeleitet werden.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="ProduktId" type="cst:AttributEnum_Type" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Referenz auf das Produkt und etwaige Auswahlmöglichkeiten. Wenn es keine Wahlmöglichkeiten gibt, muss dieses Element nicht vorhanden sein.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Meldung" type="cst:ServiceFault" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Im Response: Meldungen zu Elementen in diesem Produktbaustein</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Attribut" type="cst:Attribut_Type" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Eines oder mehrere Attribute.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Deckung" type="Kindbaustein_Type" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Vorhandene oder optional einschließbare Unterbausteine.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Deckungsbaum_Type" final="#all">
<xsd:annotation>
<xsd:documentation>Deckungsbaustein der Ebene 1 "Verkaufsprodukt".</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="Baustein_Type">
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Kindbaustein_Type" final="#all">
<xsd:annotation>
<xsd:documentation>Deckungsbaustein der Ebene 2 und tiefer.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="Baustein_Type">
<xsd:sequence>
<xsd:element name="Eingeschlossen" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>Ob dieser Produktbaustein eingeschlossen ist oder nicht</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="EinschlussAenderbar" type="xsd:boolean" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Ob der im Response vorgebene Einschluss änderbar ist. Optional </xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- A Priori Produktauskunft -->
<xsd:complexType name="Produktbaustein_Type" abstract="true">
<xsd:sequence>
<xsd:element name="Klausel" type="omds:KLAUSEL_Type" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="Unterbaustein" type="Unterbaustein_Type" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="Attribut" type="cst:Attribut_Type" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="from" type="xsd:date" use="required" />
<xsd:attribute name="to" type="xsd:date" />
</xsd:complexType>
<xsd:complexType name="Unterbaustein_Type">
<xsd:complexContent>
<xsd:extension base="Produktbaustein_Type">
<xsd:attribute name="optional" type="xsd:boolean" use="required"/>
<xsd:attribute name="default" type="xsd:boolean" use="required" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Verkaufsprodukt_Type">
<xsd:complexContent>
<xsd:extension base="Produktbaustein_Type">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ProductsRequest">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="cst:CommonSimpleRequest_Type">
<xsd:sequence>
<xsd:element name="Stichtag" type="xsd:date" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ProductsResponse">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="cst:CommonSimpleResponse_Type">
<xsd:sequence>
<xsd:element name="Verkaufsprodukt" type="Verkaufsprodukt_Type" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</xsd:schema>