Skip to main content
Skip table of contents

XHTML Form Extractor

Der Adapter extrahiert Formularfelder aus XML-kompatiblen (X)HTML-Dokumenten, um das Mapping von Prozessdaten auf Formularfelder übersichtlicher zu gestalten.

Der Adapter erwartet als Input ein (X)HTML-Dokument (in jedem Fall ein wohlgeformtes XML-Dokument!) und gibt ein XML-Dokument mit der Struktur des extrahierten (X)HTML-Formulars aus. Zudem kann der Adapter über Operation  FillInFields die adapterspezifische XML-Struktur, die gesetzte Formularfelder und ggf. veränderte Eigenschaften für Optionsfelder enthält, in eine (X)HTML-Formularvorlage einfüllen und das fertige (X)HTML-Formulardokument ausgeben.

Dieser Adapter richtet sich an Entwickler von Human Workflow-Prozessen, die bestehende (X)HTML-Formularvorlagen zur Laufzeit mit Daten befüllen möchten. Hierzu wird in einem XSL-Mapping die Input-Datenstruktur (z. B. die Ergebnisse einer Datenbankabfrage) über den Mapping Editor mit den Feldern des (X)HTML-Formulars verknüpft.

Um (X)HTML-Dokumentstrukturen für das Mapping übersichtlicher zu gestalten, extrahiert der XHTML Form Extractor Adapter alle Formularelemente, sodass im Mapping Editor nur diese vereinfachte Formularstruktur und die Daten verknüpft werden müssen. Zur Konvertierung in die XML-Formularstruktur ist im X4 Designer die Kontextmenüfunktion Extract XHTML Form für (X)HTML-Repository-Dokumente verfügbar, die diesen Adapter nutzt.

Um die XML-Formularstruktur nach dem Mapping wieder in ein vollständiges (X)HTML-Formular umzuwandeln, den XHTML Form Extractor Adapter als nächsten Prozess-Schritt platzieren, die Operation FillInFields wählen und in Adapter-Parameter templateUrl die URL zur (X)HTML-Formularvorlage angeben. Bei der Ausführung des Prozesses werden somit die veränderten Formularelemente mit der (X)HTML-Formularvorlage zusammengeführt und zur Laufzeit ausgegeben, z. B. zur Anzeige in Web-Anwendungen. Über Attribute in der XML-Formularstruktur lassen sich Optionsfelder (de)selektieren und (de)aktivieren sowie CSS-Direktformatierungen und CSS-Klassenzuordnungen definieren.

Eigenschaften (Properties)

Operation

Bestimmt, welche Operation der Adapter durchführt

Mögliche Werte:

  • ExtractFields: Formularfelder aus einem Input-(X)HTML-Dokument (wohlgeformtes XML!), extrahieren

  • FillInFields: Formularfelder aus der adapterspezifischen XML-Struktur in ein XML-konformes (X)HTML-Dokument einfügen, das in Parameter templateUrl definiert wurde; zusätzliche Felder aus dem (X)HTML-Vorlagendokument werden unverändert übernommen

Parameter

Adapter

Hauptklasse des Adapters (nicht verändern!)

Mögliche Werte: de.softproject.integration.adapter. htmlformextractor.FormAdapter: Hauptklasse (Standard)

templateUrl

URL zum Vorlagendokument des (X)HTML-Formulars (benötigt für Operation FillInFields)

Mögliche Werte: Beliebige gültige URL (z.B. xstore://Project/Folder/Form.xhtml)

Statuswerte

1Die Operation wurde erfolgreich ausgeführt.
-1Die Operation ist aufgrund eines technischen Fehlers fehlgeschlagen.

Beispiel

In diesem Beispiel dient ein HTML5-Formular (wohlgeformtes XML) als Input:

HTML/XML
<!DOCTYPE HTML>
<html>
  <head>
    <title>My Form</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <style type="text/css">
      body { background-color:#F0F0F0; font-family:sans-serif }
    </style>
  </head>
  <body>
    <h1>Form</h1>
    <form action="ACTION" method="post" id="myID">
      <p>
      <input type="text" name="myName" value=""/>
        <select name="myDropdown" size="1">
          <option>1</option>
          <option>2</option>
          <option>3</option>
        </select>
      <input type="radio" name="myOptions" value="either" /> Either
        <input type="radio" name="myOptions" value="or" /> Or
      <input type="submit" value="submit" name="mySend"/>
     </p>
    </form>   
  </body>
</html>

Bei Operation ExtractFields wandelt der Adapter das HTML5-Formular in folgende XML-Struktur um:

HTML/XML
<HtmlFields>
  <title>My Form</title>
  <form_myID id="myID">
   <text_myName name="myName" type="text"/>
   <submit_mySend name="mySend" type="submit">submit</submit_mySend>
   <singleselect_myDropdown name="myDropdown">
     <option disabled="false" selected="false">1</option>
     <option disabled="false" selected="false">2</option>
     <option disabled="false" selected="false">3</option>
   </singleselect_myDropdown>
  </form_myID>
</HtmlFields>

Über ein XSL-Mapping wurde nun folgende XML-Struktur erzeugt, in der Feldwerte und der Seitentitel geändert sowie verschiedene Eigenschaften für Optionsfelder gesetzt sind und ein zusätzliches Optionsfeld ergänzt wurde.

HTML/XML
<HtmlFields>
  <title>X4 Experience</title>
  <form_myID id="myID">
   <text_myName type="text" name="myName">X4 Experience</text_myName>
   <submit_mySend type="submit" name="mySend">submit</submit_mySend>
   <singleselect_myDropdown name="myDropdown">
     <option>Version 4.0</option>
     <option selected="false" disabled="true">Version 4.1</option>
     <option selected="false" disabled="false" cssStyle="color:blue">Version 4.2
     </option>
     <option selected="true" disabled="false">Version 4.3</option>
   </singleselect_myDropdown>
  </form_myID>
</HtmlFields>

Mit Operation FillInFields wandelt der Adapter die oben genannte modifizierte XML-Struktur wieder in ein vollständiges, XML-konformes HTML5-Formular um:

HTML/XML
<!DOCTYPE HTML>
<html>
  <head>
   <title>X4 Experience</title>
   <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
   <style type="text/css">
     body { background-color:#F0F0F0; font-family:sans-serif }
   </style>
  </head>
  <body>
   <h1>Form</h1>
   <form action="ACTION" method="post" id="myID">
     <p>
      <input type="text" name="myName" value="X4 Experience" 
       style="color:blue"/>
      <select name="myDropdown" size="1">
        <option>Version 4.0</option>
        <option disabled="disabled">Version 4.1</option>
        <option style="color:blue">Version 4.2</option>
        <option selected="selected">Version 4.3</option>
      </select>
      <input type="radio" name="myOptions" value="either"/> Either
      <input type="radio" name="myOptions" value="or"/> Or
      <input type="submit" value="submit" name="mySend"/>
    </p>
   </form>   
  </body>
</html>


Operation: ExtractFields

Mit Operation ExtractFields lassen sich Formularfelder aus einem Input-(X)HTML-Dokument (wohlgeformtes XML!), extrahieren.

Input

Bei Operation ExtractFields erwartet der Adapter ein (X)HTML-Dokument, das eine wohlgeformte XML-Struktur aufweist (korrekte Verschachtelung, selbstschließende leere Elemente wie <br/> etc.) und dessen Formularelemente über Attribut id oder name eindeutig sind.

Output

Bei Operation ExtractFields gibt der Adapter ein XML-Dokument mit Formulardaten aus, das Sie im Mapping als Vorlage für die Zielstruktur verwenden können.

Operation: FillInFields

Mit Operation FillInFields lassen sich Formularfelder aus der adapterspezifischen XML-Struktur in ein XML-konformes (X)HTML-Dokument einfügen, das in Parameter templateUrl definiert wurde; zusätzliche Felder aus dem (X)HTML-Vorlagendokument werden unverändert übernommen.

Input

Bei Operation FillInFields erwartet der Adapter ein XML-Dokument, das eine Struktur nach folgendem Muster aufweist und für alle Formularfelder (außer Checkboxen und Radio-Buttons) ein XML-Element erzeugt, das Feldtyp und Feldname im Namen enthält.

In der XML-Struktur können <option/>-Felder über spezifische Attribute mit CSS-Direktformatierungen (cssStyle="..."), CSS-Klassenzuordnungen (cssClass="...") und Labels (label="...") versehen sowie (de)selektiert (selected="true/false"), (de)aktiviert (disabled="true/false") und auf nur lesend gesetzt (readonly="true/false") werden. Werte von <input/> und <option/> lassen sich über ein Attribut value="..." setzen.

HTML/XML
<HtmlFields>
 <title><!--Seitentitel des (X)HTML-Dokuments--></title>
 <!-- Beliebig viele Formulare (eindeutig über ID identifiziert) -->
 <form_id id="Formular-ID">
  <!-- Beliebig viele Formularfelder (identifiziert über ID oder Name) -->
  <Feldtyp_Feldname/-ID name="Feldname" type="Feldtyp"><!--Feldwert--></Feldtyp_Feldname/-ID>
 </form_id>
</HtmlFields>

Output

Bei Operation FillInFields gibt der Adapter ein XML-kompatibles (X)HTML-Dokument aus, das die Feldwerte (und bei Optionsfeldern ggf. geänderte Eigenschaften) enthält, die im Input-Dokument definiert wurden und dessen Struktur der in Parameter templateUrl definierten Vorlage entspricht. Checkboxen und Radio-Buttons aus der Vorlage werden unverändert in das Ergebnisdokument übernommen.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.