Napisz arkusz styli XSL, który przetransformuje dowolny wejściowy dokument XML zgodnie z następującymi regułami:
a) wszystkie elementy złożone zostaną przekopiowane,
cool.gif wszystkie elementy proste zostaną zamienione w atrybuty,
c) wszystkie atrybuty zostaną zamienione na elementy proste.


Mam takie o to zadanie do wykonania i nie bardzo wiem jak je rozwiązać. Żeby nie było, że czekam na gotowe rozwiązania to zagłębilem temat i wiem, że na pewno trzeba użyć do tego konstruktorów:

Elementu:
  1. <xsl:element name = nazwa_elementu namespace = przestrzeń_nazw>
  2. zawarto ść _elementu
  3. </xsl:element>


Atrybutu:
  1. <xsl:attribute name = nazwa_atrybutu namespace = przestrzeń_nazw>
  2. zawarto ść _atrybutu
  3. </xsl:attribute>


Na pewno jakiś
  1. <xsl:copy> </xsl:copy>


Jak ja sobie to wyobrażam:

Jeśli element jest złożony, czyli posiada albo pod-elementy, albo atrybuty to
  1. <xsl:copy> </xsl:copy>
. Jeśli element jest prosty to znaczy nie posiada ani atrybutu ani pod-elementu to wywołujemy dla niego konstruktor atrybutu. a dla wszystkich atrybutów wywołujemy konstruktor obiektów. Pytanie jak to wszystko ładnie scalić, żeby grało jak należy. Ktoś potrafi?