Sabrina21: XSLT Roter Faden gesucht

Beitrag lesen

Hallo Thomas,
Danke für Deine großartige Hilfe, ich kann das Problem langsam besser erkennen, wegen einer zwei dimensionalen SVG - Grafik, die ich ein 3 D Format umwandeln wollte.
Ich bin inzwischen bei einem Code dieser Art angelangt:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output media-type="model/x3d+xml" doctype-system="http://www.web3d.org/specifications/x3d-3.2.dtd" method="xml" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
</xsl:stylesheet>
<xsl:template match="/">

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--<!DOCTYPE X3D SYSTEM "x3d-3.0.dtd">-->
<X3D profile="Immersive" version="3.0">
    <Scene>
        <Transform center="-0.913745 0.142591 0.420655" rotation="-0.832917 0.501173 0.23468 1.724975" translation="-0.728961 0.171638 -1.006337">
            <Shape>
                <Appearance>
                    <Material emissiveColor="1.0 0.882353 0.168627" specularColor="1.0 0.109804 0.207843"/>
                </Appearance>
                <Sphere/>
            </Shape>
        </Transform>
        <Transform center="-0.212942 0.388116 0.04933354" rotation="-0.629448 0.307066 -0.713797 1.615957" translation="0.05186084 -0.30135 -3.053438">

...............

<Transform rotation="-0.598908 0.79399 0.104353 2.84766" scale="0.007418046 1.0 1.0" translation="-2.290511 1.126671 0.210507">
            <Shape>
                <Appearance>
                    <Material/>
                </Appearance>
                <Cone/>
            </Shape>
        </Transform>
    </Scene>
</X3D>

</xsl:template>

</xsl:stylesheet>

Eigentlich sollte dieses XSL-Stylsheet nun die Umwandlung des XML-Dokumentes in ein X3D Dokument vornehmen, dennoch schlägt die Validierung Fehl. hast Du evtl. noch einen Tipp, wo der syntaktische Fehler zu suchen ist?
Ich selber arbeite übrigens mit diversen Onlinetutorials und 2 Büchern und habe doch arbe Probleme damit Kapitel zu finden, die sich mit dieser Art der Umformung beschäftigen, hast Du evtl. noch einen Verweis zu einem Tutorial in das sich ein Blick lohnt?

Hallo Sabrina,

Was muss ich von der Logik her im Templatebereich, bzw. zwischen:

<xsl:template match="/">
???
xsl:template

einfügen,

Formal etwas in dieser Art:

<xsl:template match="/">

<X3D profile="..." version="...">
    <head>...</head>
    <Scene>
      xsl:apply-templates/
    </Scene>
  </X3D>
</xsl:template>

<!-- weitere Templates für die konkreten Umformungen: -->
<xsl:template match="...">
  <!-- ... -->
</xsl:template>


>   
> > bzw. was habe ich evtl. komplett übersehen?  
>   
> Dass SVG ein 2D-Format und X3D ein 3D-Format ist? Perspektivische Darstellungen sind natürlich auch in SVG durchaus möglich, z. B. dieses Balkenkonstrukt:  
>   
> ~~~xml

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" baseProfile="full">  

>   <g fill="#36F">  
>     <polygon points="10,245 10,30 50, 30 50,245" opacity="0.6"/>  
>     <polygon points="50, 30 70,10 70,225 50,245" opacity="0.4"/>  
>     <polygon points="10, 30 30,10 70, 10 50, 30" opacity="0.8"/>  
>   </g>  
> </svg>

Du kannst ja mal die Umformung in ein 3D-Modell angehen ...

BTW: Die DOCTYPE-Deklaration der X3D-Ausgabe sollte noch um den Public-Identifier ergänzt werden, bei xsl:output also auch doctype-public="ISO//Web3D//DTD X3D 3.2//EN" angeben.

Grüße,
Thomas