Zum Inhalt springen

XSLT Problem. Mein Code funktioniert nicht :-( bin total verzeifelt. Hilfeee


San11

Empfohlene Beiträge

Hallo zusammen,

ich habe ein riesiges Problem, an dem ich verzweifle. Ich arbeite an einer XSLT-Transformation, die in X3D ausgeben soll,

aber irgendwo befindet sich ein Fehler in der Transformation. Kann ggf. jemand den Fehler erkennen? Für Eure Hilfe bin ich

sehr dankbar, ich habe wirklich schon alles probiert. Hier der XSLT-CODE:

<?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:template match="/">

  <X3D profile="Immersive" version="3.0">

    <Scene>

    <Transform>

    <PointLight on="true"  location="-0.228412 0.514089 0" />

    	<xsl:apply-templates />

  </Transform>

</Scene>

</X3D>

</xsl:template>


<xsl:template match="kopf">

<xsl:for-each select="kopf">

<Shape>

<Appearance>

 <Material

  ambientIntensity="0.2"

  diffuseColor='0 0 0'

  emissiveColor='0 0 0'

  shininess="1.000000"

  specularColor='0.2 0.2 0.2'

  transparency="0.000000"

/>

</Appearance>

<IndexedFaceSet

  solid="true"

  creaseAngle="1.57"

coordIndex="

0 12 1 -1

 0 1 2 -1

 0 2 3 -1

 0 3 4 -1

 0 4 5 -1

 0 5 6 -1

 0 6 7 -1

 0 7 8 -1

 0 8 9 -1

 0 9 10 -1

 0 10 11 -1

 0 11 12 -1

.....

</IndexedFaceSet>

</Shape>

</xsl:for-each>

</xsl:template>

<xsl:template match="beinrechts">

<xsl:for-each select="beinrechts">

<Shape>

<Appearance>

 <Material

  ambientIntensity="0.2"

  diffuseColor='1 1 1'

  emissiveColor='0 0 0'

  shininess="1.000000"

  specularColor='0.2 0.2 0.2'

  transparency="0.000000"

/>

</Appearance>

<IndexedFaceSet

  solid="true"

  creaseAngle="1.57"

coordIndex="

0 2 13 -1

 0 3 2 -1

 0 4 3 -1

 0 5 4 -1

 0 6 5 -1

 0 7 6 -1

 0 8 7 -1

 0 9 8 -1

 0 10 9 -1

 0 11 10 -1

 0 12 11 -1

 0 13 12 -1

 1 25 14 -1

 1 14 15 -1

 1 15 16 -1

 1 16 17 -1

 1 17 18 -1

 1 18 19 -1

 1 19 20 -1

 1 20 21 -1

 1 21 22 -1

 1 22 23 -1

 1 23 24 -1

 1 24 25 -1

 25 13 2 14 -1

 14 2 3 15 -1

 15 3 4 16 -1

 16 4 5 17 -1

 17 5 6 18 -1

 18 6 7 19 -1

 19 7 8 20 -1

 20 8 9 21 -1

 21 9 10 22 -1

 22 10 11 23 -1

 23 11 12 24 -1

 24 12 13 25 -1

"

>

<Coordinate

  point="

0.169497 -1.49766 0.398629

0.0869187 -0.237779 0.619769

0.191635 -1.88129 0.541576

0.300922 -1.79619 0.538768

0.374993 -1.6311 0.49841

0.394001 -1.43025 0.431315

0.352854 -1.24746 0.355462

0.262577 -1.13171 0.291176

0.147358 -1.11401 0.255682

0.0380721 -1.19912 0.25849

-0.035999 -1.36421 0.298848

-0.0550078 -1.56506 0.365943

-0.0138606 -1.74785 0.441796

0.0764171 -1.8636 0.506082

0.109057 -0.621419 0.762716

0.218344 -0.536318 0.759908

0.292415 -0.371223 0.71955

0.311423 -0.170373 0.652455

0.270276 0.0124173 0.576603

0.179999 0.128166 0.512317

0.0647803 0.145862 0.476822

-0.0445059 0.0607598 0.47963

-0.118577 -0.104334 0.519989

-0.137586 -0.305185 0.587083

-0.0964386 -0.487974 0.662936

-0.00616094 -0.603724 0.727222

" />

</IndexedFaceSet>

</Shape>

</xsl:for-each>

</xsl:template>

<xsl:template match="schwanzfeder">

<xsl:for-each select="schwanzfeder">

<Shape>

<Appearance>

 <Material

  ambientIntensity="0.2"

  diffuseColor='1 1 1'

  emissiveColor='0 0 0'

  shininess="1.000000"

  specularColor='0.2 0.2 0.2'

  transparency="0.000000"

/>

</Appearance>

<IndexedFaceSet

  solid="false"

  creaseAngle="1.57"

coordIndex="

0 1 2 3 4 5 6 7 8 9 10 11 -1

"

>

<Coordinate

  point="

-1.22287 0 0.869439

-2.44296 0 -0.898803

-2.37223 0 -0.279918

-2.72588 0 0.14446

-2.35454 0 0.58652

-2.74356 0 0.922486

-2.40759 0 1.34686

-3.00879 0 1.73588

-2.53137 0 2.10721

-2.6021 0 2.67305

-2.12467 0 2.72609

-1.22287 0 1.85965

" />

</IndexedFaceSet>

</Shape>

</xsl:for-each>

</xsl:template>

</xsl:stylesheet>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Und der äußert sich wie?

Mehr als "alles" können wir auch nicht. :rolleyes:

Hallo Klotzkopp, danke für Deine schnelle Reaktion auf mein Problem. Ja ich hätte wirklich schreiben sollen, wie sich der Fehler genau darstellt, sorry deswegen.

Also das Problem ist, dass die Transformation das Objekt eigentlich in X3D ausgeben soll, genau das passiert aber nicht, der Browser bleibt schwarz.

--> die X3D-Datei alleine (wird korrekt dargestellt)

die xml scheint

--> valide

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> 

<?xml-stylesheet href="rabe.xsl" type="text/xsl" ?>

<!DOCTYPE rabe SYSTEM "rabe.dtd">


<rabe>

<kopf>

	<auge1 />

		<auge2 />

	</kopf>


	<koerper>

  <fluegel1 />

  <fluegel2 />


  <beinlinks/>

  <beinrechts/>

  <schwanzfeder />

</koerper>

</rabe>
Die DTD ist auch ok:
<!ELEMENT kopf (auge1, auge2)>

	<!ELEMENT auge1 (#PCDATA)>

	<!ELEMENT auge2 (#PCDATA)>


<!ELEMENT koerper (fluegel1, fluegel2, beinlinks, beinrechts, schwanzfeder)>

<!ELEMENT fluegel1 (#PCDATA)>

<!ELEMENT fluegel2 (#PCDATA)>

<!ELEMENT beinlinks (#PCDATA)>

<!ELEMENT beinrechts (#PCDATA)>

<!ELEMENT schwanzfeder (#PCDATA)>

Demnach muss sich der Fehler voraussichtlich in der XSLT Datei befinden.

Lieben Gruß

Sandy ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Klotzkopp,

sorry das ich mich jetzt erst wieder melde. Also Zu Deiner Nachfrage wegen dem Vorgehen, ich habe die X3D Datei separat gestartet, um zu sehen, ob sich ein Fehler im X3Dcode befindet, sie wird alklerdings korrekt dargestellt, ansonsten habe ich die XSLT Datei gestartet, die ja eigentlich dann dasselbe Ergebnis ausgeben sollte, sofern alle beteiligten Ressourcen valide sind, also die DTD,XML und die XSLT, aber leider führt die XSLT Datei nicht zur Ausgabe der X3D-Datei und da die XML und die DTD valide zu sein scheinen, gehe ich stark von einem Fehler im XSLT Code aus.

Danke nochmal für Deine Mühe

Lieben Gruß

:)

Sandy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Klotzkopp,

sorry das ich mich jetzt erst wieder melde. Also Zu Deiner Nachfrage wegen dem Vorgehen, ich habe die X3D Datei separat gestartet, um zu sehen, ob sich ein Fehler im X3Dcode befindet, sie wird alklerdings korrekt dargestellt,

Die X3D-Datei, die du mit dieser XSLT erzeugt hast? Oder woher kommt diese Datei? Und "gestartet" heißt was?

ansonsten habe ich die XSLT Datei gestartet,
Auch hier: Was meinst du mit "gestartet"?
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Klotzkopp,

also die X3D Datei habe ich separat erstellt und für sich gestartet, bzw. in meinem Browser mit dem entsprechenden X3D-Plugin betrachtet, um zu prüfen ob sie soweit in Ordnung ist, danach habe ich mithilfe von XSLT eine Transformation kodiert, in der ich die X3D-Datei stückweise 1:1 auf der Basis der XML-Datei erzeuge, also Kopf,Auge1 und 2 usw. und eigentlich sollte ja dann am Schluß dieselbe X3D-Datei erscheinen und sich betrachten lassen, aber genau das passiert nicht.

Ich habe zum "starten" der XSLT DATEI einfach alle Dateien, also XML,DTD,XSLT hochgeladen im selben Verzeichnis und dann die XSL - Datei aufgerufen, leider ohne Ergebnis.

Sorry das ich mich teilweise etwas ungeschickt ausdrücke, diese Materie macht mir echt zu schaffen :upps

Lieben Gruß

Sandy

Link zu diesem Kommentar
Auf anderen Seiten teilen

also die X3D Datei habe ich separat erstellt
Und wie hast du sie erstellt?

Ich habe zum "starten" der XSLT DATEI einfach alle Dateien, also XML,DTD,XSLT hochgeladen im selben Verzeichnis und dann die XSL - Datei aufgerufen, leider ohne Ergebnis.

Du scheinst zu erwarten, dass beim Aufruf der XSLT-Datei entweder der Webserver oder der Browser "weiß", dass er genau diese XML-Datei als Input benutzen soll, die gerade zufällig im selben Verzeichnis liegt. Ich glaube nicht, dass das klappt.

Aber ich verschiebe den Thread besser zu den Webdesignern. Ich habe sowieso nicht verstanden, was das bei C++ soll ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...