XProc-Steps

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

p:http-request

<p:declare-step type="p:http-request">
   <p:input port="source"/>
   <p:output port="result"/>
   <p:option name="byte-order-mark"/> <!-- boolean -->
   <p:option name="cdata-section-elements" select="''"/> <!-- ListOfQNames -->
   <p:option name="doctype-public"/> <!-- string -->
   <p:option name="doctype-system"/> <!-- anyURI -->
   <p:option name="encoding"/> <!-- string -->
   <p:option name="escape-uri-attributes" select="'false'"/> <!-- boolean -->
   <p:option name="include-content-type" select="'true'"/> <!-- boolean -->
   <p:option name="indent" select="'false'"/> <!-- boolean -->
   <p:option name="media-type"/> <!-- string -->
   <p:option name="method" select="'xml'"/> <!-- QName -->
   <p:option name="normalization-form" select="'none'"/> <!-- NormalizationForm -->
   <p:option name="omit-xml-declaration" select="'true'"/> <!-- boolean -->
   <p:option name="standalone" select="'omit'"/> <!-- "true" | "false" | "omit" -->
   <p:option name="undeclare-prefixes"/> <!-- boolean -->
   <p:option name="version" select="'1.0'"/> <!-- string -->
</p:declare-step>

Durch den <p:http-request>-Step ist es möglich, Anfragen an Webservices zu senden. Unterstützt werden hierbei sowohl REST- als auch SOAP-betriebene Webservice-Implementierungen. Die eigentliche Anfrage wird auch hier über den Input-Port (“source“) realisiert. Alle verfügbaren Optionen sind optional und dienen der individuellen Konfiguration der Anfrage. Die Service-Anfrage muss durch ein <c:request>-Element implementiert werden, andernfalls hätte dies einen dynamischen Fehler zur Folge.

<c:request
   method = NCName
   href? = anyURI
   detailed? = boolean
   status-only? = boolean
   username? = string
   password? = string
   auth-method? = string
   send-authorization? = boolean
   override-content-type? = string>
      (c:header*,
      (c:multipart |
       c:body)?)
</c:request>

Auch hier gibt es je nach Art der Anfrage diverse Optionen. Relevant ist die Angabe der zu verwendenden Übertragungsmethode (“POST“ oder “GET“) sowie “href“, hier wird die Adresse des auszulesenden Services hinterlegt. Die anderen Angaben sind je nach Fall relevant (z.B. für Webservices, die eine Anmeldung via Kennwort erfordern usw.) und werden im Rahmen dieser Arbeit nicht weiter vertieft.

Beispiel

Im folgenden Beispiel wird der RSS-Feed der Webseite "http://www.imdb.com" ausgelesen.

<?xml version="1.0" encoding="UTF-8"?>
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0">
   <p:input port="source">
      <p:inline>
         <c:request method="GET" href="http://rss.imdb.com/news/"/>
      </p:inline>
   </p:input>
   <p:output port="result"/>
   <p:http-request/>
</p:declare-step>
Tipp der data2type-Redaktion:
Zum Thema XProc bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: