Veröffentlicht 19. März 200916 j 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>
19. März 200916 j aber irgendwo befindet sich ein Fehler in der Transformation.Und der äußert sich wie? ich habe wirklich schon alles probiert.Mehr als "alles" können wir auch nicht.
19. März 200916 j Und der äußert sich wie? Mehr als "alles" können wir auch nicht. 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
19. März 200916 j --> die X3D-Datei alleine (wird korrekt dargestellt)Was heißt denn "alleine"? Wie gehst du vor, dass es nicht korrekt dargestellt wird?
20. März 200916 j 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
20. März 200916 j 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"?
20. März 200916 j 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
23. März 200916 j also die X3D Datei habe ich separat erstelltUnd 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.