Request-Element

Bei Anfrage-Payloads folgen auf das cm-header-Element im cm-payload Wurzelelement ein oder mehrere cm-request-Elemente. Diese Elemente spezifizieren die Operationen, die vom NPS-Server ausgeführt werden sollen.

<!ELEMENT cm-request (%cm.cm-request;)>
<!ATTLIST cm-request
  request-id CDATA #REQUIRED
  preclusive (true | false) "false">

Die Unterelemente des cm-request-Elements sind in CRUL definiert. Die entsprechende DTD wird in der XML-Referenz erläutert. Ein cm-request-Element hat folgende Attribute:

  • request-id
    Identifikator des Requests. Dieser Identifikator wird vom Erzeuger des Anfrage-Payloads vergeben. Er muss innerhalb aller Payloads, die in einem bestimmten Kommunikationskontext ausgetauscht werden, eindeutig sein. Es reicht nicht aus, dass die ID innerhalb des aktuellen Payloads eindeutig ist.
  • preclusive
    Wahrheitswert (true oder false). Das preclusive-Attribut erlaubt dem NPS-Client, die Requests zu markieren, die für die weitere Bearbeitung des Payloads kritisch sind. Wenn die Bearbeitung eines als preclusive markierten Requests fehlschlägt, werden alle weiteren Requests im Payload nicht bearbeitet, sondern mit einer Fehlermeldung beantwortet.

Alle Anfragen in einem Payload werden sequenziell, beginnend bei der ersten Anfrage, bearbeitet. Dadurch ist es einem Client möglich, auch voneinander abhängende Requests in einem einzigen Anfrage-Payload unterzubringen. So kann beispielsweise ein Client mit einem Payload zunächst eine Dateivorlage anlegen, um anschließend Dateien zu erzeugen, die auf dieser Vorlage beruhen. Mit dem preclusive-Attribut kann der Client ferner sicherstellen, dass die abhängige Anfrage nur dann bearbeitet wird, wenn die vorausgehende keinen Fehler erzeugt hat.