prev up next

Previous: XML-Kurzeinfüehrung Up: Anwendung der DTD in XML-Beispielen Next: Arbeitsgruppe Szenengraph/API

Reflexion der DTD-Entwicklung

In diesem Abschnitt soll kurz die Entwicklung zu der vorliegenden DTD zusammengefasst werden.

Ausgehend von VRML wurde von uns zunächst überlegt, welche Knoten auf jeden Fall in der DTD verwendet werden sollten. Dabei war von Beginn an klar, dass Interaktion und Animation in diesem ersten Schritt unberücksichtigt bleiben sollen. Letztendlich kam als Kompromiss die vorliegende Version heraus, in der beispielsweise die VRML-Knoten Group und Transform durch das einzige Element Group ersetzt worden sind. Ebenfalls wurde der Knoten Geometry zunächst in unsere X3D-Spezification übernommen, am Ende dann allerdings doch wieder entfernt, da unserer Meinung nach die Elemente Sphere, PointSet, IndexedLineSet und IndexedFaceSet direkt in Shape aufgerufen werden können. Shape soll immer nur ein geometrisches Objekt beinhalten. Dadurch lässt sich die Anzahl verwendeter Tags reduzieren, ohne dass die Gliederung unübersichtlicher wird. Zur Verdeutlichung folgen zwei Beispieldateien, eine nach alter, eine nach neuer Version. Dabei sind die Tags , die in der neuen Version wegfallen bzw. geändert wurden durch Unterstreichungen kenntlich gemacht.

Beispiel

Ausschnitt aus Pyramidealt.x3d
<?xml version=''1.0'' encoding=''UTF-8''?>
<!DOCTYPE X3DScene SYSTEM ''X3D.dtd''>


     hspace0.5  <X3DScene>

<Group>
<Shape DEF=''pyramide''>
<Geometry>
<IndexedFaceSet>
.
.
.
</IndexedFaceSet>
</Geometry>
</Shape>
<TransformGroup>
<Rotation x=''2'' y=''3'' z=''0'' rad=''23''/>
<Group>
<Shape USE=''pyramide''/>
</Group>
</TransformGroup>
<Group>
</X3DScene>


Ausschnitt aus Pyramide.x3d
<X3DScene>
<Group>
<Shape DEF=''pyramide''>
<IndexedFaceSet>
.
.
.
</IndexedFaceSet>
</Shape>
<Group>
<Rotation x=''2'' y=''3'' z=''0'' rad=''23''/>
<Shape USE=''pyramide''/>
</Group>
</Group>
</X3DScene>

Anhand dieses einfachen Beispiels wird deutlich, dass zunächst überflüssige Elemente in die DTD eingebaut worden waren, die zur besseren Gliederung gedacht waren. In der alten Version hätte Geometry immer direkt von Shape umschlossen werden müssen, weshalb man sich gleich auf Shape beschränken kann.
Ein weiterer Punkt, der bis zum Schluss diskutiert wurde, war die Frage, was als Attribut und was als Element verwendet wird. Zunächst wurden die Koordinaten und die RGB-Werte, die immer als Tripel eingegeben werden müssen, als Attribut eingeführt, da so die Datei übersichtlicher wird.
DEF und USE mussten als Attribut eingegeben werden, da diese die Attributtypen ID und IDREF verwenden müssen. Ansonsten wurden die Felder, bei denen nur ein Wert eingegeben werden muss, als Attribut verwendet. Ganz zum Schluss wurden die Elemente Title und Info in Attribute von WorldInfo umgewandelt, um die Anzahl von Elementen zu reduzieren. Die DTD ist in dieser Version noch ausbaufähig, da noch auf alle Knoten, die sich mit Animation, Interaktion oder Textur beschäftigen, weggelassen wurden.


prev up next
Previous: XML-Kurzeinfüehrung Up: Anwendung der DTD in XML-Beispielen Next: Arbeitsgruppe Szenengraph/API