XML, XSD und CSS

XChris

Erfahrenes Mitglied
Moin,

ich schau gerade was man so mit dieser Technik anstellen kann. Nun stellt sich bei mir die Frage, wie kann man XML Attribute im Broser darstellen? Schön formatiert mit css?

Chris
 
Hallo,

danke für die schnelle Antwort. Leider beantwortet diese meine Frage nicht oder ich habe etwas überlesen. Die gelinkte Website war auch mein Ausgang beim basteln.

Ich möchte auch ATTRIBUTE sichtbar machen! Also sowas:

PHP:
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="HpHardwareDoc.css" ?>
<hardwareDoku xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="HpHardwareDoc.xsd">
	<hostraum no="1">
		<superdome>
			<superdomeNo>1</superdomeNo>
			<cabinet>
				BlaBla
			</cabinet>
		</superdome>
	</hostraum>
</HardwareDoku>

Also Ausgabe was in den Elementen Enthalten ist (z.B. BlaBla) und was im Attribute No imn Element No enthalten ist. (z.B. meine 1). Wenns nicht anders geht, muss ich halt alle Attribute auch als Element definieren.

Chris
 
Sehe ich ähnlich wie zerix. Auszug aus SELFHTML

Grenzen und Probleme bei der Darstellung mit CSS
CSS ist für Anwender, die sich mit Vorkenntnissen in HTML an XML heranwagen, zunächst sicher einfacher zu verstehen und leichter anzuwenden. Dennoch gibt es Nachteile bei CSS in Verbindung mit XML, die Sie kennen müssen:

Ältere, auch CSS-fähige Browser können mit der Kombination aus XML-Daten und CSS nichts anfangen und zeigen entweder gar nichts oder Text ohne jede Formatierung an. Die Anzeige von XML-Daten in Verbindung mit CSS ist zumindest im WWW derzeit keine empfehlenswerte Lösung, weil derzeit noch zu viele Anwender ausgegrenzt werden.
Mit CSS in Version 1.0 lassen sich nur Elemente formatieren, keine Attribute. Wenn Sie beispielsweise in einer XML-DTD ein Attribut namens ausrichtung mit den erlaubten Werten links, rechts und zentriert definieren, haben Sie erst ab CSS2 die Möglichkeit, die Verbindung zwischen einer solchen Attributangabe und einer entsprechenden Textformatierung herzustellen. Einzelheiten dazu finden Sie im Abschnitt Attributbedingte Formate definieren. Beachten Sie allerdings, dass nicht alle Browser solche CSS-Formate unterstützen.
CSS bietet erst ab Version 2.0 die Möglichkeit, automatische Nummerierungs-Schemata auf Elemente anzuwenden, etwa auf Kapitelüberschriften (Kapitel 1, 1.1, 1.2, 1.2.1, 1.2, 1.3 usw.). In XSL/XSLT ist die Möglichkeit der Nummerierung von vorneherein enthalten.
Es gibt mit CSS kaum sinnvolle Möglichkeiten, Daten bei der Anzeige zu filtern. Gerade bei feld- und datensatzorientierten Daten, wie sie in XML häufig gespeichert werden, ist nicht unbedingt immer gewünscht, dass bei einer Bildschirmausgabe jedes Feld angezeigt wird. Wenn Sie etwa eine Kontaktdatenbank in XML haben, möchten Sie bei der Ausgabe einer Telefonliste beispielsweise nur Namen, Firma und Telefonnummer ausgeben, aber keine Anschriften, Kontonummern und Geburtstage. In XSL/XSLT besteht eine solche Möglichkeit.
Auch weitere Leistungsmerkmale von XSL/XSLT, wie etwa die automatische Sortierung von Daten vor der Ausgabe, ist mit CSS derzeit nicht möglich.

Versuchs mal mit xslt. Das kannst Du wieder mit CSS kombinieren, wenn Du HTML erzeugts. Schau hier:

Code:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="HpHardwareDoc.xslt" ?>
<hardwareDoku xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="HpHardwareDoc.xsd">
    <hostraum no="1">
        <superdome>
            <superdomeNo>1</superdomeNo>
            <cabinet>
                BlaBla
            </cabinet>
        </superdome>
    </hostraum>
</hardwareDoku>

HpHardwareDoc.xslt

Code:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xslt:stylesheet xmlns:xslt="http://www.w3.org/1999/XSL/Transform" version="1.0">

	<!-- Verarbeitungsschablone für den Dokumentknoten, Einsprung in die Verarbeitung (main ;-))-->
	<xslt:template match="/">
		<html>
			<body>
				<!-- verarbeite alle Kindknoten -->
				<xslt:apply-templates />
			</body>
		</html>
	</xslt:template>
	
	<xslt:template match="hardwareDoku">
		<h3>Hardware Dokumentation</h3>
		<!-- verarbeite alle Kindknoten -->
		<xslt:apply-templates />
	</xslt:template>
	
	<xslt:template match="hostraum">
		<!-- wert des Attributes ausgeben -->
		Hostraumnummer <xslt:value-of select="@no" /><br />
		<!-- verarbeite alle Kindknoten -->
		<xslt:apply-templates />
	</xslt:template>
	
	<xslt:template match="superdome">
		<!-- verarbeite alle Kindknoten -->
		<xslt:apply-templates />
	</xslt:template>
	
	<xslt:template match="superdomeNo">
		<!-- wert des Elements ausgeben -->
		Superdome Nummer <xslt:value-of select="." /><br />
	</xslt:template>
	
	<xslt:template match="cabinet">
		<!-- wert des Elements ausgeben -->
		Cabinet <xslt:value-of select="." /><br />
	</xslt:template>
	

	
	
</xslt:stylesheet>

Link zu einem XSLT Tutorium:

http://www.w3schools.com/xsl/default.asp
 

Neue Beiträge

Zurück