Hallo Leute,
mein Problem stellt sich so dar:
Ich soll im Rahmen meiner Diplomarbeit unter anderem ein webbasierten Editor schreiben, welcher ein XSD-File einliest und mittels XSLT dieses XSD-File in ein Editor umformt. Nachdem alle Textfelder etc. ausgefüllt sind, soll aus den Formulardaten ein XML-Datenfile (XML-File) entstehen. Um nun die Textfelder eindeutig einem Schemaelement zuzuordenen, möchte ich gerne bei der Transformation jedem Element (Textfeld, Radiobutton, Selectboxen, etc.) einen eindeutigen Namen verpassen. Ich stelle mir das folgender Maßen vor. Der Name soll einfach den XPath vom rootelement bis zum aktuellen Contextknoten enthalten.
Beispiel: Pseudocode:
<xs:schema ...>
<xs:element name="Profileditor">
<xs:complexType>
<xs:sequence>
....
<xs:element name="Informations">
<xs:complexType>
<xs:choice>
...
-- Hier befinde ich mich bei der Transformation --
...
<xs:choice>
</xs:complexType>
</xs:element>
<xs:attribute name="label" type="xs:string">
....
-- Oder ich befinde mich bei der Transformation --
....
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>
So in dem XSLT-File habe ich innerhalb der Templates eine Variable deffiniert, zB.: xpath
Jeden Knoten möchte ich mit einem Punktz trennen. Bei diesem Beispiel kann ich mir dann folgenden Namen für die Webkomponenten vorstellen:
Profileditor.Informations
Profileditor.Informations.label_attr
Funktioniert das irgenwie mit ancestor-or-self und einer for-each Schleife? Schön wäre es, bei jedem Durchlauf das Ergebnis an die Varibale $xPath anzusetzen.
Vielleicht habt ihr ja auch ein Funktion auf Lager mit dem man sich den ganzen Kram sparen kann.
cu
Christian
mein Problem stellt sich so dar:
Ich soll im Rahmen meiner Diplomarbeit unter anderem ein webbasierten Editor schreiben, welcher ein XSD-File einliest und mittels XSLT dieses XSD-File in ein Editor umformt. Nachdem alle Textfelder etc. ausgefüllt sind, soll aus den Formulardaten ein XML-Datenfile (XML-File) entstehen. Um nun die Textfelder eindeutig einem Schemaelement zuzuordenen, möchte ich gerne bei der Transformation jedem Element (Textfeld, Radiobutton, Selectboxen, etc.) einen eindeutigen Namen verpassen. Ich stelle mir das folgender Maßen vor. Der Name soll einfach den XPath vom rootelement bis zum aktuellen Contextknoten enthalten.
Beispiel: Pseudocode:
<xs:schema ...>
<xs:element name="Profileditor">
<xs:complexType>
<xs:sequence>
....
<xs:element name="Informations">
<xs:complexType>
<xs:choice>
...
-- Hier befinde ich mich bei der Transformation --
...
<xs:choice>
</xs:complexType>
</xs:element>
<xs:attribute name="label" type="xs:string">
....
-- Oder ich befinde mich bei der Transformation --
....
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>
So in dem XSLT-File habe ich innerhalb der Templates eine Variable deffiniert, zB.: xpath
Jeden Knoten möchte ich mit einem Punktz trennen. Bei diesem Beispiel kann ich mir dann folgenden Namen für die Webkomponenten vorstellen:
Profileditor.Informations
Profileditor.Informations.label_attr
Funktioniert das irgenwie mit ancestor-or-self und einer for-each Schleife? Schön wäre es, bei jedem Durchlauf das Ergebnis an die Varibale $xPath anzusetzen.
Vielleicht habt ihr ja auch ein Funktion auf Lager mit dem man sich den ganzen Kram sparen kann.
cu
Christian
Comment