xsdTransformer

Generiert Code basierend auf XML Schema

Die Beschreibung ist einsetzbar. Sie wird laufend ergänzt. Die Übersetzung ist in Arbeit. Noch nicht übersetzte Texte werden in englischer Sprache ausgegeben.

Software und Dokumentation werden unter den Regeln der GNU LGPL LIzenz unter Ausschluss jeglicher Garantien und Gewährleistungen veröffentlicht.

2006-11-22

Revision History

Table of Contents

xsdTransformer

CRUD ist die Abkürzung für Create(=Anlegen), Read(=Lesen), Update(=Modifizieren), Delete(=Löschen)

For easy standalone usage xsd2fx comes with an ant script named xsdTransform.xml. If you want to use this script, ant must be installed. For details concerning ant see http://ant.apache.org/.

proceed the following steps:

  • change to <installation directory>.

  • run 'ant -f xsdTransform.xml xsd2xf1' on os prompt.

There process should terminate with the message 'BUILD SUCCESSFUL' and you should find two files - test1.xhtml and costVoucher.xhtml - in the output directory.

Anmerkung

Running the transformation in this manner includes a well formed check but not a valid check. So make sure to use only valid schemata. (For details how to parse the input schema see 'Usage' -> 'Start with ant script'.)

Da es sich bei xsd2xf.xml um ein einzelnes xslt Script handelt, können Sie es einfach in jeder Umgebung einsetzten, die über einen xsl Prozessor verfügt.

Für den standalone Betrieb steht das ant script xsdtrans.xml zur Verfügung. Das Script enthält drei targets, von denen die ersten beiden Transformationsprozesse starten. Das dritte target können Sie bei Bedarf zum parsen Ihres XML Schemas verwenden.

In xsdtrans.xml können Sie sich außerdem über die Verwendung der Programmparamter informieren, die im Folgenden detailiert erklärt werden.

Table 5.  Benutzung

Parameter

Beschreibung

Pflicht

in

Speicherort der XML-Schema-Datei, die transformiert werden soll.

(Ist Parameter sowohl für ant's style als auch für das Script. Für das Script hat er die Funktion, Meldungen zu erzeugen und kann weggelassen werden.)

Wertebereich: gültiger Speicherort relativ zum aktuellen Verzeichnis (Pfad/Dateiname) oder eine vollständiger Speicherort (/Pfad/Dateiname)

Vorgabewert: keiner

yes

out

Speicherort der Ausgabedatei (hier eine xhtml Datei, die XForms enthält).

(Ist Parameter sowohl für ant's style als auch für das Script. Für das Script hat er die Funktion, Meldungen zu erzeugen und kann weggelassen werden.)

Wertebereich: gültiger Speicherort relativ zum aktuellen Verzeichnis (Pfad/Dateiname) oder eine vollständiger Speicherort (/Pfad/Dateiname)

Vorgabewert: keiner

yes

style

location of name of the transformer script (including path relative to project directory).

(This parameter is used as input for ant's style and as input for the script. The script related parameter is only used for generating messages and can be omitted.)

valid values: existent file location including path relative to current directory (path/filename) or absolute location (/path/filename)

default: none

yes

force

Recreate target files, even if they are newer than their corresponding source files or the stylesheet. [ant manual]

valid values: yes/no

default: no

no

inElement

element which is used as root element. The root element is starting point of the transformation.

valid values: any string

default: none

no

outForm

desired name of the xforms form which is to generate.

valid values: any string

default: form1

no

language

language in which labels and messages will be transfered to the new form.

valid values: en (for english, de (for german)

default: en

no

bindPrefix

The id of bind elements is composed of a prefix and a current number. Sample:

<xforms:bind id="B00300" xforms:nodeset="vchr:title" xforms:required="true()" xforms:type="string"/>

With this parameter you can determine the value of this prefix.

valid values: any string

default: B

no

minRestrictionsForFull

This parameter determines the appearance of select1 and select controls. Is the amount of restrictions concerning a certain select* control is less than minRestrictionsForFull, the appearance of this control is set to 'minimal' otherwise it is set to 'full'.

valid values: any integer

default value: 4

generateAbsentAlert

If this parameter is set to 'yes' and no alert value is determined within the appinfo's (see configuration) the value of the alert element is derived by default from 'minOccurs' and 'type' attributes of the source element. Sample:

<xs:element name="title" type="xs:string" default="titleDefaultValue">

(when 'minOccurs' is omitted it means 'minOccurs=1', so input is required)

becomes

<xforms:input id="title" xforms:bind="B00300">

<xforms:label>title</xforms:label>

<xforms:alert>Input is obligative. Only input of type 'string' allowed.</xforms:alert>

<xforms:hint>hint for title</xforms:hint>

<xforms:help>help for title</xforms:help>

</xforms:input>

valid values: yes/no

default value: yes

no

generateAbsentHint

If this parameter is set to 'yes' and no hint value is determined within the appinfo's (see configuration) a hint element with a place holder value will be created. This value must be manually changed later. Sample:

<xs:element name="title"...>

becomes

<xforms:input id="title" xforms:bind="B00300">

.

<xforms:hint>hint for title</xforms:hint>

.

</xforms:input>

To avoid unnecessary manual work this parameter is set by default to 'no'.

valid values: yes/no

default value: no

no

generateAbsentHelp

If this parameter is set to 'yes' and no help value is determined within the appinfo's (see configuration) a help element with a place holder value will be created. This value must be manually changed later. Sample:

<xs:element name="title"...>

becomes

<xforms:input id="title" xforms:bind="B00300">

.

<xforms:help>help for title</xforms:help>

.

</xforms:input>

To avoid unnecessary manual work this parameter is set by default to 'no'.

valid values: yes/no

default value: no

no


In einem XML schema können Sie Datenschema neutrale Information in einem Element namens annotation. annotation kann zwei Elemente enthalten. Das erste heißt documentation und das zweite appinfo. Wie die Namen bereits sind diese Elemente für die Dokumentation und die Applikationssteuerung vorgesehen.

Sie können die Transformation beeinflussen, indem Sie bestimmte Elemente im Element annotation/appinfo plazierten. Im Einzelnen:

Table 6.  Konfiguratioin mit zusätlichen annotation/appinfo Elementen

Element

Beschreibung

Einsatz in/für Elementen

label

xsd2xf fügt basierend auf dem Wert dieses Elements dem control Element ein Kindelement namens label zu. Ist dieses Element nicht vorhanden aber der Prozessparamter generate absent labels gesetzt, fügt xsd2xf das label Kindelement ebenfalls hinzu und setzt dann als Wert den Namen des control Elements ein. Da es sich bei label um einen sprachsensitiven Ausdruck handelt, wird für jede Sprache ein Kindelement erzeugt.

alle

alert

xsd2xf fügt basierend auf dem Wert dieses Elements dem control Element ein Kindelement namens alert zu. Ist dieses Element nicht vorhanden aber der Prozessparamter generate absent alerts gesetzt, fügt xsd2xf das alert Kindelement ebenfalls hinzu und setzt seinen Wert dann auf eine geeignete Meldung, die von den Feldspezifikationen (Feldtyp, Mindestanzahl in einer Instanz) abgeleitet ist. Da es sich bei label um einen sprachsensitiven Ausdruck handelt, wird für jede Sprache ein Kindelement erzeugt.

alle editierbaren/änderbaren

hint

xsd2xf fügt basierend auf dem Wert dieses Elements dem control Element ein Kindelement namens hint zu. Ist dieses Element nicht vorhanden aber der Prozessparamter generate absent hints gesetzt, fügt xsd2xf das hint Kindelement ebenfalls als Platzhatler für die weitere Bearbeitung hinzu und setzt seinen Wert dann auf einen Platzhaltertext.

alle

help

xsd2xf fügt basierend auf dem Wert dieses Elements dem control Element ein Kindelement namens help zu. Ist dieses Element nicht vorhanden aber der Prozessparamter generate absent helps gesetzt, fügt xsd2xf das help Kindelement ebenfalls als Platzhatler für die weitere Bearbeitung hinzu und setzt seinen Wert dann auf einen Platzhaltertext.

alle

appearance

Normale Elemente werden standardmäßig zu input control Elementen in XForms. Um diesen Standard zu beeinflussen, können Sie dieses Element folgende Werte verwenden:

  • textarea

  • secret

  • output

Weiters gibt es Elemente, die selectx control Elementen transformiert werden. Für diese Fälle können Sie die Standardwert für das appearance attribute ändern, indem Sie dieses Element auf den von Ihnen gewünschten Wert setzen (minimal oder full).

  • Elemente, die zu input control Elementen werden.

  • Elemente, die zu selectx control Elementen werden.


If you are working with these supplementary elements and parse you parse your schema or a toll do, you might get error messages concerning these elements. You can avoid the appearance of such messages placinig an internal DTD subset into your XML Schema: Wenn Sie mit diesen zusätzlichen Elementen arbeiten und Sie (oder ein Werkzeug) parsen Ihr Schema, ist es möglich, dass Fehlermeldungen betreffend der Zusatzelemente ausgegeben werden. Das können Sie vermeiden, indem Sie ein DTD subset in Ihr Schema einfügen:

<?xml version="1.0"?>
<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSchema 2001//EN" 
  "http://www.w3.org/2001/XMLSchema.dtd" [
  <!ELEMENT label (#PCDATA)>
  <!ELEMENT alert (#PCDATA)>
  <!ELEMENT hint (#PCDATA)>
  <!ELEMENT help (#PCDATA)>
  <!ATTLIST label xml:lang (en | de) "en">
  <!ATTLIST alert xml:lang (en | de) "en">
  <!ATTLIST hint xml:lang (en | de) "en">
  <!ATTLIST help xml:lang (en | de) "en">
]>
<xs:schema targetNamespace="http://xsdtrans.sourceforge.net/costVoucher" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  elementFormDefault="qualified" 
  attributeFormDefault="unqualified" 
  version="1.0">
  <xs:element name="voucher">
  .
  .
  </xs:element>
</xs:schema>