![]() |
Re: XML-Datei mit dtd Datei darstellen
Und schon wieder was gelernt. Jetzt müsste ich auch in der Lage sein da etwas ranrumzuschrauben. ;)
|
Re: XML-Datei mit dtd Datei darstellen
Liste der Anhänge anzeigen (Anzahl: 1)
*hi hi* Du kannst ja bei Gelegenheit mal einen Blick in das Archiv im Anhang werfen. Das war harte Arbeit *schwitz* ... ;)
Aber um auf dein Thema zurückzukommen: Ich habe bisher keine Möglichkeit gefunden, eine externe DTD nachträglich in ein XML-Dokument einzufügen. Mit Delphi, meine ich. (s. ![]() |
Re: XML-Datei mit dtd Datei darstellen
Liste der Anhänge anzeigen (Anzahl: 1)
@Luckie: Es gibt noch eine Möglichkeit der Validierung mit einem XSD-Schema. Das ist auch eine XML-Datei, die die gleiche Aufgabe wie die DTD hat, aber wohl (laut PSDK und W3C) flexibler sein soll.
Der Vorteil: Die Datei muss nicht in der XML-Adressdatenbank angegeben werden, sondern das Programm könnte die Validierung mit dem so genannten "schema cache" durchführen. Das heißt, die XSD-Datei wird wie eine XML-Datei geladen und dann an das XML-Objekt der Adressendatei übergeben. Wenn du die dann lädtst, findet der Parser ebenfalls Fehler. Ganz so wie bei der DTD. Man könnte also das XSD-Schema mit dem Programm ausliefern, oder meinetwegen auch auf dem Server ablegen. Und du kannst sogar die Typen angeben, bspw.:
Code:
Würde in der XML-Datei jetzt stehen:
<xsd:element name="HighestID" type="xsd:decimal"/>
Code:
dann schimpft der Parser:
<HighestID>abc</HighestID>
Zitat:
Code:
(Die Angaben kann man IMHO frei wählen, aber dennoch: ) Mal gucken ob´s nicht noch einfacher geht. Vielleicht ist ja auch wer hier, der sich mit XSD auskennt?
<[b]x[/b]:adressdb xmlns:[b]x[/b]="urn:adressdb">
</[b]x[/b]:adressdb> Edit: Ich glaube ich hab´s (s. Anhang). ;) |
Re: XML-Datei mit dtd Datei darstellen
So. Ich habe es jetzt geschaft die "Direktwahl" der XML-Datei mit xsl:sort zu sortieren:
XML-Code:
Nur leider klappen dann nicht mehr alle Links. Mathias, weißt du was da los ist und wie man das beheben kann? Eine alternative Möglichkeit zum sortieren, würde ich auch akzeptieren.[b]Direktwahl[/b]: <xsl:for-each select="Kontakt"> <xsl:sort select="concat(Name, Vorname)"> </xsl:sort> <!-- für den Fall, dass es mehrere identische Namen gibt wird noch die aktuelle Position in die Sprungmarke eingefügt --> <a href="#{Vorname}_{Name}:{position()}"> <xsl:value-of select="Name"/> <xsl:value-of select="Vorname"/> <xsl:value-of select="Firma"/> </a> </xsl:for-each> |
Re: XML-Datei mit dtd Datei darstellen
Na ja, der Anker auf der Seite setzt sich doch zusammen aus dem Vornamen, dem Namen und der Position, also bspw.
Code:
Durch die Sortierung
#Mathias_Simmack:666
Code:
ändert sich aber die Reihenfolge der Knoten und damit natürlich auch deren Position. Du musst also beim Aufruf des Templates "Kontakt" auch noch mal für die gleiche Sortierung sorgen
<xsl:if test="count(child::Kontakt)>0">
[b]Direktwahl[/b]: <xsl:for-each select="Kontakt"> <xsl:sort select="concat(Name, Vorname)"/> <a href="#{Vorname}_{Name}:{position()}"> <xsl:value-of select="Name"/> <xsl:value-of select="Vorname"/> <xsl:value-of select="Firma"/> </a> </xsl:for-each> </p><hr size="1"/> </xsl:if>
Code:
<xsl:apply-templates select="Kontakt">
<xsl:sort select="concat(Name, Vorname)"/> </xsl:apply-templates> |
Re: XML-Datei mit dtd Datei darstellen
Ok. Ich verstecke mich dann für den Rest des Vormittages únter dem Schreibtisch. Falls mich jemand sucht, ich bin in der Ecke hinten links. :roll:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz