Freigeben über


Informationen zur InfoPath-Unterstützung für XML-Technologien

Microsoft InfoPath ist ein Hybridtool, das das Beste aus einer herkömmlichen Dokumentbearbeitungsumgebung, z. B. einer Textverarbeitungs- oder E-Mail-Anwendung, mit den strengen Datenerfassungsfunktionen eines Formularpakets kombiniert. In diesem Artikel werden die Probleme beschrieben, die InfoPath für die Lösung dieser Probleme entwickelt hat, und erläutert die Entwurfsprinzipien und XML-Industriestandards, die zur Lösung dieser Probleme verwendet werden.

Einführung

InfoPath ist ein allgemeines XML-Erstellungstool, mit dem normale Endbenutzer XML-Dokumente erstellen können, die zu einem benutzerdefinierten XML-Schema gehören. Wenn Benutzer ein XML-Dokument bearbeiten, werden die Änderungen am Dokument durch das XML-Schema gesteuert.

Die Benutzer interagieren mit dem XML-Dokument über eine umfangreiche formatierte Ansicht, die angezeigt wird, indem ein XSLT-Stylesheet auf das Dokument angewendet wird. Ein Blattknoten oder Attributwert aus dem XML-Dokument wird als Feld (beispielsweise als Textfeld oder Kontrollkästchen) angezeigt, während eine Knotenhierarchie als Gruppe von Feldern angezeigt wird.

InfoPath ermöglicht die überprüfte, strukturierte Bearbeitung von XML-Daten, indem die Bearbeitungsaktionen angezeigt werden, die für das aktuell ausgewählte Feld oder die Feldgruppe gültig sind. Diese strukturierte Bearbeitung ermöglicht es dem Benutzer, gültige XML-Elemente und Attribute hinzuzufügen und zu entfernen, indem er mit Gruppen von Feldern arbeitet, die in umfangreichen dynamischen Ansichten angezeigt werden, ohne die Elemente und Attribute anzuzeigen.

InfoPath löst ein Problem im Bereich der Datensammlung, das vor dem Aufkommen von XML nicht gelöst werden konnte: Durch die Bereitstellung von Formularen, die durch Hinzufügen von Gruppen von Feldern, die das hierarchische Datenmodell von XML verwenden, erweitert InfoPath die Flexibilität von Textverarbeitungsdokumenten zu den strengen Validierungsfeatures einer Formularanwendung. Komplexe XSLT-Transformationen sind ein integraler Bestandteil dieser Lösung, die dynamische, einfach zu verwendende Ansichten der XML-Daten bereitstellt.

Einschränkungen herkömmlicher Formulare und Dokumente beim Sammeln von Daten

Beim Sammeln von Unternehmensdaten wünschen sich die Benutzer oft mehr Flexibilität, als statische Formulare bieten und gleichzeitig eine besser strukturierte Bearbeitung und Überprüfung als bei Textverarbeitungsdokumenten.

Herkömmliche Formulare sind statisch und in der Länge begrenzt. Sie haben eine feste Anzahl wiederholter Zeilen und können nicht erweitert werden, wenn das Formular ausgefüllt wird. Herkömmliche Formulare sind schwierig zu verwenden, da sie nicht über umfangreiche Bearbeitungsfunktionen verfügen. Häufig müssen die Benutzer sämtliche Informationen in einem Durchgang eingeben.

Auf der anderen Seite ermöglichen herkömmliche Dokumente, die mit einem Textverarbeitungsprogramm erstellt wurden, dem Benutzer das freie Hinzufügen und Entfernen von Inhalten, aber wenig Anleitungen zur Eingabe vollständiger, strukturierter und gültiger Informationen; Alle Felder, die im Dokument definiert sind, weisen eine minimale oder keine Validierung von Datenwerten und Datentypen auf. Daten in den Feldern werden nicht ordnungsgemäß bezeichnet, um einfache Verweise und automatische Wiederverwendung zu ermöglichen. Die Daten sind frei und nicht strukturiert; Sie können keine Informationen gruppieren, z. B. das Anwenden einer Bezeichnung "Adresse" auf eine Gruppe von Feldern "Street", "City" und "State".

Daher ist eine solche flexible und dennoch strukturierte Bearbeitung erforderlich, aber da diese Art von Technologie vor dem Aufkommen von XML nicht verfügbar war, mussten Entwickler benutzerdefinierte Anwendungen erstellen, die eine umfangreiche Codierung erfordern. Benutzerdefinierte Anwendungen sind teuer und schwer zu ändern und erfordern für die Validierung eine benutzerdefinierte Codierung. Benutzerdefinierte Anwendungen erfordern häufig Endbenutzerschulungen, und es ist schwierig, die resultierenden Daten für andere Geschäftsprozesse wiederzuverwenden.

Ermöglichen der strukturierten Bearbeitung durch Anzeigen von XML-Daten als Feldgruppen

Ein wichtiges technisches Entwurfsproblem, das gelöst werden musste, war die Bereitstellung einer einfachen Benutzeroberfläche zum Hinzufügen und Entfernen von XML-Elementen und Attributen, ohne die Elemente und Attribute anzuzeigen, aber die DOM-Struktur gemäß dem benutzerdefinierten XML-Schema gültig zu halten. Die Benutzeroberfläche, die erforderlich ist, um eine natürliche Möglichkeit zum Bearbeiten der DOM-Struktur zu bieten, die das Einfügen optionaler Unterstrukturen, das Ersetzen von Auswahlmöglichkeiten von Unterstrukturen und das Erweitern vorhandener Unterstrukturen umfasst.

Diese einfache Benutzeroberfläche wird bereitgestellt, indem eine DOM-Unterstruktur als Feldgruppe oder Bereich angezeigt wird. Eine Feldgruppe ist eine Gruppe von UI-Steuerelementen, beispielsweise Textfelder und Dropdownlisten, und dient als einfache Benutzeroberfläche, über die Benutzer hierarchische XML-Daten visualisieren und bearbeiten können. Eine Feldgruppe kann weitere Feldgruppen enthalten und optional oder wiederholt sein, genau wie eine DOM-Unterstruktur weitere Unterstrukturen enthalten und optional oder wiederholt sein kann. Eine Unterstruktur wird der DOM-Struktur hinzugefügt, wenn der Benutzer den Mauszeiger auf einer Feldgruppe zeigt, auf das Dropdownmenü klickt, das in der Feldgruppe angezeigt wird, und dann Feldgruppennamen> einfügen <auswählt.

InfoPath stellt diese strukturierte Bearbeitung von XML-Daten mithilfe des angegebenen XML-Schemas bereit, um die Bearbeitung einzuschränken und zu leiten. Durch das Schema wird gesteuert, ob die Befehle Einfügen und Entfernen im Dropdownmenü für eine Feldgruppe angezeigt werden. Das Schema wird außerdem für die Überprüfung verwendet. Um die Bearbeitung eines XML-Dokuments zu ermöglichen, für das kein XML-Schema vorhanden ist, kann InfoPath ein Schema aus dem XML-Dokument generieren.

Ermöglichen benutzerfreundlicher Ansichten von XML-Daten mithilfe von XSLT-Transformationen

Eine weitere zu bewältigende technische Entwurfsherausforderung bestand darin, für den Inhalt der Ansichten auf der Benutzeroberfläche eine völlig von der Struktur der XML-Daten abweichende Organisation zu ermöglichen. Damit die Daten auf die für die Benutzer sinnvollste Weise angezeigt werden und die Benutzer die Daten leicht lesen und bearbeiten können, muss der Designer die Daten in einer anderen Reihenfolge als in der DOM-Datenstruktur anzeigen können, manche Daten in einer Ansicht auslassen können, angrenzende Datenstrukturknoten in separaten Ansichten neu organisieren können und Daten aus verschiedenen Teilen der Datenstruktur in einer einzigen Ansicht sammeln können.

Die Reihenfolge und Struktur des Inhalts der Ansichten muss daher unabhängig von der Reihenfolge und Struktur der DOM-Strukturknoten sein. Diese strukturelle Abhängigkeit von Darstellung und Daten erfordert eine komplexe, dynamische Bindung oder Zuordnung zwischen den gruppierten Feldern in den Ansichten und den Knoten in der DOM-Struktur.

Um diese komplexe Zuordnung zwischen Sichten und Daten bereitzustellen, verwendet InfoPath XSL-Transformationen (XSLT) umfassend. XSLT ist eine leistungsstarke Stylesheetsprache, die komplexe XSLT-Transformationen und umfassende Ansichten mit dynamischer, flexibler Darstellung der Inhalte unterstützt. Für jede Ansicht wird eine XSLT-Datei verwendet. Die Verwendung eines Stylesheets ist eine gebräuchliche und bewährte Entwurfsmethode in SGML- und XML-Erstellungstools, und XSLT ist der W3C-Standard für Stylesheets, die für derartige komplexe Transformationen verwendet werden.

Damit nicht jedes Mal, wenn ein Benutzer die Struktur einer Unterstruktur in DOM ändert, die gesamte XSLT-Transformation ausgeführt werden muss, wird mithilfe von Algorithmen ermittelt, welcher Teil der Ansicht aktualisiert werden muss. Dann wird nur der relevante Teil des XSLT-Stylesheets angewendet, und der betroffene Teil der Ansicht wird aktualisiert.

Verwendung von XML-Standards beim Bearbeiten eines Formulars

InfoPath basiert von Grund auf auf XML-Standards, die Folgendes enthalten:

  • Extensible Markup Language (XML) 1.0 Second Edition

  • Namespaces in XML

  • XML Path Language (XPath) 1.0

  • XML Schema (XSD) 1.0 Part 1: Structures, and Part 2: Datatypes

  • Extensible Stylesheet Language Transformations (XSLT) 1.0

  • Extensible Hypertext Markup Language (XHTML) 1.0

  • Cascading Style Sheets (CSS)

  • Document Object Model (DOM) 1.0

  • XML Digital Signatures (XML DSig)

  • Simple Object Access Protocol (SOAP) 1.1

  • Web Services Description Language (WSDL) 1.1

  • Universal Description, Discovery, and Integration (UDDI) 1.0

InfoPath verwendet und generiert beispielsweise XML-, XSLT- und XSD-Standarddateien, die in verschiedenen Geschäftsprozessen wiederverwendet werden können. InfoPath verwendet MSXML, das SOAP-Toolkit und den .NET System.XML-Namespace, um diese Standards zu unterstützen, und bietet vollständig integrierte Unterstützung für XML-Webdienste.

In Abbildung 1 wird das kontextbezogene Dropdownmenü für eine customer-Feldgruppe gezeigt, mit dessen Hilfe Benutzer eine weitere customer-Feldgruppe hinzufügen, diese customer-Feldgruppe entfernen, eine item-Zeile in die Tabelle der Einkaufsartikel in dieser Feldgruppe einfügen oder eine optionale actions-Feldgruppe innerhalb dieser Feldgruppe einfügen können. Der Link Klicken Sie hier stellt eine weitere Möglichkeit zum Einfügen der actions-Feldgruppe dar. In den einzelnen Einkaufsartikelzeilen wird ein kürzeres Dropdownmenü angezeigt.

  1. In InfoPath erstellt der Benutzer ein neues XML-Dokument, das auf einer InfoPath-Formularvorlage basiert, oder öffnet ein vorhandenes XML-Dokument, das auf einer Formularvorlage basiert. Bei einem XML-Dokument handelt es sich um eine XML-Datendatei, die einen Verweis auf die Formularvorlage enthält und in der XML-Namespaces verwendet werden können.

    Eine Formularvorlage ist ein Satz von Dateien, durch die die strukturierte Bearbeitung von XML-Dokumenten ermöglicht wird, die einem bestimmten benutzerdefinierten XML-Schema entsprechen. Die Dateien, aus denen die Formularvorlage besteht, können als einzelne Dateien in einem normalen Ordner oder als Dateien in einem CAB-Dateiordner gepackt sein. In beiden Fällen handelt es sich um standardmäßige XML-Dateien und optionale Hilfsdateien, beispielsweise Assemblys für verwalteten Code.

  2. Wenn das XML-Dokument mit der XML-Signatur digital signiert wird, bestätigt InfoPath, dass die XML-Datei konsistent ist, bevor sie geöffnet wird.

  3. InfoPath erstellt eine DOM-Datenstruktur des XML-Dokuments im Arbeitsspeicher.

  4. XSLT-Transformationen werden auf die DOM-Struktur angewendet, und dabei werden Ansichten erzeugt, in denen dem Benutzer eine entsprechende Darstellung des Dokuments angezeigt wird. Elemente am Anfang des XML-Dokuments können am unteren Ende der Ansicht und außerdem in einer anderen Ansicht in einer anderen Anordnung angezeigt werden. Die Ansichten bestehen aus Benutzeroberflächencontainern wie beispielsweise Bereichen, die Text und Steuerelemente enthalten (beispielsweise Textfelder, Felder für Rich-Text, Datumsauswahlfelder und Dropdownlisten. Container können auch weitere Container enthalten.

  5. Bei der XSLT-Transformation wird XHTML als Ausgabe erzeugt, und dann wird ein CSS verwendet, um die Darstellung der XHTML-Ausgabe zu steuern.

  6. Wenn das XML-Schema das Hinzufügen von Knoten zu einem Knoten der Datenstruktur zulässt, verfügt das Feld oder die Feldgruppe, das dem Knoten zugeordnet ist, über ein Dropdownmenü, in dem der Benutzer Feldgruppen hinzufügen oder entfernen kann. Der Benutzer bearbeitet das Dokument, indem er eine wiederholte oder optionale Feldgruppe hinzufügt, einen Wert eingibt, eine Option auswählt oder Rich-Text eingibt. Wenn dem Schema für XHTML ein XML-Schemaknoten zugeordnet ist, stellt InfoPath eine Benutzeroberfläche zum Erstellen von Rich-Text dar. Wenn der Benutzer Rich-Text eingibt, wird XHTML-Inhalt als Unterstruktur im DOM erstellt.

  7. Die Gültigkeit der DOM-Struktur wird immer aufrechterhalten. Wenn Benutzer das XML-Dokument bearbeiten, werden die Bearbeitungen anhand des zugeordneten XML-Schemas überprüft. Die versuchten Änderungen an der DOM-Struktur und den Blattknotenwerten werden anhand des XML-Schemas überprüft, um sicherzustellen, dass die Datentypen und Werte gültig sind. Wenn die versuchten Änderungen nicht gültig sind, wird ein Überprüfungsdialogfeld geöffnet, und die Änderungen werden nicht auf die DOM-Struktur angewendet. Wenn die Änderungen gültig sind, wird die DOM-Struktur aktualisiert.

  8. Der geänderte Teil der Ansicht wird aktualisiert, indem nur die erforderlichen Teile des XSLT-Stylesheets auf die DOM-Struktur angewendet werden.

  9. Die Benutzer können das XML-Dokument speichern oder mithilfe von einfachem HTTP oder SOAP senden. Die Benutzer können das Dokument nur senden, wenn dieses gemäß dem XML-Schema gültig ist.

Verwendung von XML-Standards beim Entwerfen eines Formulars

Sie können ein Formular entwerfen, indem Sie mit einem vorhandenen XML-Schema beginnen, eine Verbindung mit einem XML-Webdienst oder eine XML-Datenbank herstellen und dessen XML-Schema abrufen oder automatisch ein Schema aus einem neuen Formular oder aus einer XML-Datendatei generieren. Diese Szenarien werden in den folgenden Verfahren beschrieben. Abbildung 3 zeigt die grundlegende Benutzeroberfläche zum Entwerfen einer Formularvorlage.

  1. Erstellen Sie im InfoPath Designer ein neues Formular, indem Sie die Formularvorlage XML oder Schema und anschließend als Datenquelle eine vorhandene XML-Schemadatei auswählen. Das XML-Schema wird in den Aufgabenbereich geladen und als Struktursteuerelement angezeigt.

  2. Verwenden Sie die Entwurfslayouttools, um die UI-Steuerelemente wie beispielsweise Zeilen und das Hintergrunddesign in einer oder mehreren Ansichten anzuordnen. Daraufhin werden einige der XSLT-Elemente generiert. Die XSLT-Ansichten und das XML-Schema werden automatisch der Formularvorlage zugeordnet.

  3. Ordnen Sie die XML-Schemaelemente den Ui-Steuerelementen in den Ansichten mithilfe von Drag-and-Drop zu. InfoPath unterstützt Sie bei der Auswahl geeigneter Steuerelemente für die XML-Schemaelemente basierend auf der Art der Schemaelemente. Wenn der XML-Datentyp beispielsweise date ist, schlägt InfoPath ein Datumsauswahl-Steuerelement vor. Basierend auf den Optionen im XML-Schema kann InfoPath Gruppen von optionalen oder wiederholten Feldern einfügen. Wenn die XML-Schemaelemente den UI-Steuerelementen zugeordnet werden, wird die XSLT-Struktur generiert.

  4. Speichern Sie die Formularvorlage. Sie können die Dateien, aus denen die Formularvorlage besteht, als einzelne Dateien in einem normalen Ordner oder als Dateien in einem CAB-Dateiordner speichern. In beiden Fällen handelt es sich um standardmäßige XML-Dateien. Die Formularvorlage kann jetzt von Benutzern verwendet werden.

Eine Formularvorlage enthält alle semantischen Informationen, die zum Bereitstellen einer strukturierten Bearbeitung erforderlich sind, wenn ein Formular in InfoPath geöffnet wird. Eine Formularvorlage enthält eine Manifestdatei, die XSLT-Dateien, durch die die Ansichten definiert werden, die Informationen, die zum Überprüfen der Daten benötigt werden, und einen optionalen Ressourcenbezeichner für einen XML-Webdienst.

Die Manifest- oder Formulardefinitionsdatei ist der allgemeine Knoten- und Einstiegspunkt für alle Dateien, die von der Formularvorlage benötigt werden. Das Manifest enthält Verweise auf andere Dateien in der Formularvorlage sowie die Informationen, die zum Überprüfen der Daten und zum Ermöglichen der strukturierten Bearbeitung benötigt werden. Die XML-Schemaüberprüfungsinformationen werden für die sich ergebende Benutzeroberfläche angepasst und der Manifestdatei hinzugefügt. Wenn das Schema beispielsweise das Einfügen mehrerer optionaler Elemente in einer bestimmten Unterstruktur zulässt, können Sie die Benutzeroberfläche so entwerfen, dass mehrere optionale Elemente hinzugefügt werden, wenn Benutzer einen einzigen Vorgang auf der Benutzeroberfläche ausführen. Diese Anpassung ist wichtig, um gewöhnlichen Benutzern größtmöglichen Komfort zu bieten.

Außerdem können Sie ein Formular entwerfen, indem Sie einen vorhandenen XML-Webdienst verwenden, um das XML-Schema bereitzustellen. Gehen Sie dazu folgendermaßen vor:

  1. Verwenden Sie UDDI, um relevante Webdienste zu suchen.

  2. Wählen Sie den zu verwendenden Webdienst aus. InfoPath liest die WSDL-Datei, die dem Webdienst zugeordnet ist, und identifiziert das zu verwendende XML-Schema.

  3. Öffnen Sie das XML-Schema, um dieses zu laden.

  4. Ordnen Sie die UI-Steuerelemente an, und ordnen Sie XML-Schemaelemente und -Attribute zu.

  5. Definieren Sie, wie das XML-Dokument an den Webdienst gesendet werden soll, von dem SOAP verwendet wird.

Wenn Sie ein Formular von Grund auf entwerfen und das XML-Schema automatisch generieren möchten, gehen Sie folgendermaßen vor:

  1. Klicken Sie auf der Registerkarte Datei entweder auf die Formularvorlage Leeres Formular oder Leeres Formular (InfoPath Filler), und klicken Sie dann auf Formular entwerfen.

  2. Klicken Sie auf der Registerkarte Start auf den Pfeil in der unteren rechten Ecke der Gruppe Steuerelemente , um den Aufgabenbereich Steuerelemente anzuzeigen, und stellen Sie dann sicher, dass das Kontrollkästchen Datenquelle automatisch erstellen aktiviert ist. (Dieses Kontrollkästchen ist standardmäßig aktiviert.)

  3. Ordnen Sie die UI-Steuerelemente an. Beim Layout erstellt InfoPath automatisch das XML-Schema und ordnet dessen Elemente und Attribute den Ui-Steuerelementen zu.

So entwerfen Sie ein Formular, indem Sie mit einer wohlgeformten XML-Datendatei beginnen

  1. Klicken Sie auf der Registerkarte Datei auf die Formularvorlage XML oder Schema, und klicken Sie dann auf Formular entwerfen.

  2. Wählen Sie im Datenquellen-Assistent die XML-Datei aus, die Sie als Datenquelle wünschen. Anschließend wird ein auf der XML-Datendatei basierendes XML-Schema automatisch erstellt.

  3. Ordnen Sie die UI-Steuerelemente wie weiter oben in diesem Abschnitt beschrieben an.

Entworfen als idealer Client für Webdienste

Webdienste werden inzwischen branchenweit unterstützt. Viele Back-End- und Middle-Tier-Systeme können für die Kommunikation über Webdienststandards wie beispielsweise SOAP, UDDI und WSDL konfiguriert werden. Zu diesen webdienstfähigen Systemen gehören Datenbanken, Workflowsysteme, ERP-Systeme (Enterprise Resource Planning), CRM-Systeme (Customer Relationship Management) und andere Systeme. InfoPath bietet nun eine ideale Benutzeroberfläche zum Anzeigen und Bearbeiten der XML-Daten, die über Webdienste gesendet werden. In Abbildung 4 wird die integrierte Unterstützung für XML-Webdienste gezeigt.

InfoPath passt gut zum lose gekoppelten Modell von Webdiensten, bei dem Daten als vollständige XML-Dokumente zwischen Computern gesendet werden. Dieses grob abgestufte Kommunikationsmodell passt gut zur asynchronen Natur des Webs. Als allgemeines Erstellungstool für XML-Dokumente unterstützt InfoPath die DOKUMENT-/Literal-SOAP-Codierung anstelle der RPC-Codierung (Remote Procedure Call). InfoPath ist ein idealer Client für Webdienste, da er das in einer SOAP-Nachricht angegebene XML-Schema nativ lesen und dann eine Benutzeroberfläche basierend auf dem Schema erstellen kann, die Benutzern das einfache Anzeigen und Bearbeiten von XML-Dokumenten ermöglicht, die vom entsprechenden Webdienst generiert oder empfangen werden. InfoPath bietet auch Unterstützung für ADO.NET DataSets, die die Änderungsnachverfolgung umfassen.

Begrifflichkeiten

Eigenschaft Wert
Feldgruppe:
Ein Bereich, ein wiederholter Bereich, ein optionaler Bereich oder eine wiederholte Tabelle. Bereiche und wiederholte Tabellen sind Steuerelemente in einem Formular, die weitere Steuerelemente enthalten und nach Bedarf wiederholt werden. Benutzer können beim Ausfüllen des Formulars mehrere Bereiche oder Zeilen einfügen.
DOM-Struktur:
Die Struktur der Datenquelle des Formulars. Insbesondere die Auflistung von Feldern und Gruppen, die die Daten für ein InfoPath-Formular definieren und speichern.

Zusammenfassung

InfoPath verwendet offene XML-Standards, um Benutzern eine flexible, aber strukturierte XML-Bearbeitung für die Datensammlung zu ermöglichen. Um eine einfache Benutzeroberfläche zum Visualisieren und Bearbeiten hierarchischer XML-Daten bereitzustellen, werden der DOM-Struktur geschachtelte Feldgruppen mit UI-Steuerelementen zugeordnet. Mithilfe von XSLT-Transformationen kann der Inhalt der Ansichten der Benutzeroberfläche abweichend von der Struktur der XML-Daten organisiert werden.

InfoPath bietet mehr Flexibilität als statische Formulare und bietet eine strukturiertere Bearbeitung und Validierung als Textverarbeitungsdokumente. Dadurch ergibt sich ein hybrides Tool, das die Vorteile der herkömmlichen Dokumentbearbeitung mit den umfassenden Datenerfassungsfunktionen eines Formularpakets vereint und mit dem gewöhnliche Benutzer gültige XML-Dokumente erstellen können, die zu einem benutzerdefinierten XML-Schema gehören. Dank der integrierten Unterstützung für Webdienste können einfach Ansichten zum Bearbeiten von XML-Dokumenten erstellt werden, die einem Webdienstschema entsprechen.