Hallo,
wenn ich ein Element im XML-File auf sich selbst referenzieren möchte, wie kann ich das im XML-Schema umsetzen?
Ich möchte gern so etwas machen können:
XML:
<Kapitel> XPath
<Kapitel> XPath Navigation </Kapitel>
<Kapitel> XPath Funktionen </Kapitel>
</Kapitel>
<Kapitel>XSLT</Kapitel>
Zusätzlich was Thomas gesagt hat - wobei ich seine Meinung was "solche Strukturen" angeht insofern nicht teile, dass man in diesem Fall gar nicht von Struktur sprechen kann - kannst du dein Vorhaben so verwirklichen:
(kapitel muss dabei als globales Elemente deklariert werden)
<xsd:element name="kapitel">
<xsd:complexType mixed="true">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="kapitel" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Damit sind dann Sachen wie:
<kapitel>XPath
<kapitel>XPath Navigation</kapitel>
<kapitel>XPath Funktionen
<kapitel>XPath Patterns</kapitel>
</kapitel>
</kapitel>
<kapitel>XSLT</kapitel>
möglich.
so dass dann folgendes in HTML ausgegeben werden kann:
- XPath
1.1 XPath Navigation
1.2 XPath Funktionen- XSLT
Da wirst du dann paar Probleme haben und den Entwickler des XMLs zum Teufel wünschen. Sowas wie ein:
<xsl:template match="kapitel">
<xsl:number level="multiple" format="1.1.1."/> <xsl:value-of select="current()/text()"/>
<br />
<xsl:apply-templates select="kapitel" />
</xsl:template>
ist leicht, aber wenn du dann mehrere Texte hat und nicht alles nur der Titel ist hast du schon das erste Problem.
Grüße
Thomas