<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[XML &#x2F; XSL Expertenfrage]]></title><description><![CDATA[<p>Ich möchte mittels XSL ein XML-Format in ein anderes transformieren. Normalerweise ist das auch kein Problem, jedoch gibt es in diesem Fall eine Art &quot;Referenz&quot; von einem Element auf ein anderes. Nun würde ich gerne wissen ob es mit XSL überhaupt möglich ist, &quot;Referenzen&quot; mit zu transofmieren.</p>
<p>Ich habe folgendes XML Format:</p>
<pre><code>&lt;database&gt;
&lt;table&gt;
  &lt;name&gt;Person&lt;/name&gt;
  &lt;fields&gt;
    &lt;field&gt;id&lt;/field&gt;
    &lt;field&gt;vorname&lt;/field&gt;
    &lt;field&gt;name&lt;/field&gt;
  &lt;/fields&gt;
&lt;/table&gt;

&lt;table&gt;
  &lt;name&gt;Mitarbeiter&lt;/name&gt;
  &lt;base-table&gt;Person&lt;/base-table&gt;
  &lt;fields&gt;
    &lt;field&gt;personalnr&lt;/field&gt;
    &lt;field&gt;gehalt&lt;/field&gt;
  &lt;/fields&gt;
&lt;/table&gt;
&lt;/database&gt;
</code></pre>
<p>und möchte daraus folgendes denormalisiertes Schema generieren(Sinn und Zweck sei mal dahin gestellt), man könnte es auch auf Klassen und ähnliches anwenden. Es geht vielmehr um das Problem mit Refernzen von einem Element auf ein anderes.</p>
<pre><code>&lt;database&gt;
&lt;table&gt;
  &lt;name&gt;Mitarbeiter&lt;/name&gt;
  &lt;fields&gt;
    &lt;field&gt;id&lt;/field&gt;
    &lt;field&gt;vorname&lt;/field&gt;
    &lt;field&gt;name&lt;/field&gt;
    &lt;field&gt;personalnr&lt;/field&gt;
    &lt;field&gt;gehalt&lt;/field&gt;
  &lt;/fields&gt;
&lt;/table&gt;
&lt;/database&gt;
</code></pre>
<p>:xmas2: Danke und frohes Fest! :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/168561/xml-xsl-expertenfrage</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 17:18:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/168561.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 24 Dec 2006 12:20:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to XML &#x2F; XSL Expertenfrage on Sun, 24 Dec 2006 12:20:26 GMT]]></title><description><![CDATA[<p>Ich möchte mittels XSL ein XML-Format in ein anderes transformieren. Normalerweise ist das auch kein Problem, jedoch gibt es in diesem Fall eine Art &quot;Referenz&quot; von einem Element auf ein anderes. Nun würde ich gerne wissen ob es mit XSL überhaupt möglich ist, &quot;Referenzen&quot; mit zu transofmieren.</p>
<p>Ich habe folgendes XML Format:</p>
<pre><code>&lt;database&gt;
&lt;table&gt;
  &lt;name&gt;Person&lt;/name&gt;
  &lt;fields&gt;
    &lt;field&gt;id&lt;/field&gt;
    &lt;field&gt;vorname&lt;/field&gt;
    &lt;field&gt;name&lt;/field&gt;
  &lt;/fields&gt;
&lt;/table&gt;

&lt;table&gt;
  &lt;name&gt;Mitarbeiter&lt;/name&gt;
  &lt;base-table&gt;Person&lt;/base-table&gt;
  &lt;fields&gt;
    &lt;field&gt;personalnr&lt;/field&gt;
    &lt;field&gt;gehalt&lt;/field&gt;
  &lt;/fields&gt;
&lt;/table&gt;
&lt;/database&gt;
</code></pre>
<p>und möchte daraus folgendes denormalisiertes Schema generieren(Sinn und Zweck sei mal dahin gestellt), man könnte es auch auf Klassen und ähnliches anwenden. Es geht vielmehr um das Problem mit Refernzen von einem Element auf ein anderes.</p>
<pre><code>&lt;database&gt;
&lt;table&gt;
  &lt;name&gt;Mitarbeiter&lt;/name&gt;
  &lt;fields&gt;
    &lt;field&gt;id&lt;/field&gt;
    &lt;field&gt;vorname&lt;/field&gt;
    &lt;field&gt;name&lt;/field&gt;
    &lt;field&gt;personalnr&lt;/field&gt;
    &lt;field&gt;gehalt&lt;/field&gt;
  &lt;/fields&gt;
&lt;/table&gt;
&lt;/database&gt;
</code></pre>
<p>:xmas2: Danke und frohes Fest! :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1197345</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1197345</guid><dc:creator><![CDATA[XSLT]]></dc:creator><pubDate>Sun, 24 Dec 2006 12:20:26 GMT</pubDate></item><item><title><![CDATA[Reply to XML &#x2F; XSL Expertenfrage on Sun, 24 Dec 2006 15:32:20 GMT]]></title><description><![CDATA[<p>Was ist die Referenz?<br />
database/table[2]/base-table -&gt; database/table[1]/name?<br />
database/table[2]/fields/field[1] -&gt; database/table[1]/fields/field[1]<br />
So oder so, wahrscheinlich interessiert dich das hier:<br />
<a href="http://de.selfhtml.org/xml/darstellung/xpathsyntax.htm#position_bedingungen" rel="nofollow">http://de.selfhtml.org/xml/darstellung/xpathsyntax.htm#position_bedingungen</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1197424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1197424</guid><dc:creator><![CDATA[minhen]]></dc:creator><pubDate>Sun, 24 Dec 2006 15:32:20 GMT</pubDate></item><item><title><![CDATA[Reply to XML &#x2F; XSL Expertenfrage on Sun, 24 Dec 2006 16:35:01 GMT]]></title><description><![CDATA[<p>Danke!</p>
<p>minhen schrieb:</p>
<blockquote>
<p>Was ist die Referenz?<br />
database/table[2]/base-table -&gt; database/table[1]/name?</p>
</blockquote>
<p>Genau! Mein Problem ist aber, dass ich die Position der Elemente vorher nicht kenne bzw. die Reihenfolge immer mal anders sein kann. Sprich der Transformer muss zur Laufzeit gucken, ob es ein Element ein Base base-table Element hat und falls ja, dann alle Attribut aus dem referenzierten table Element holen, wo table/name = table/base-table/.</p>
<p>BTW: Danke für den Link. Auf anhieb zwar nicht das gewüschte gefunden, aber ich werde nochmal genauer schauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1197442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1197442</guid><dc:creator><![CDATA[XSLT]]></dc:creator><pubDate>Sun, 24 Dec 2006 16:35:01 GMT</pubDate></item><item><title><![CDATA[Reply to XML &#x2F; XSL Expertenfrage on Sun, 24 Dec 2006 17:03:43 GMT]]></title><description><![CDATA[<p>musst deinen kleinen finger so hoch wie möglich in die luft strecken, denn je höher, desto mehr experte biste <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1197450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1197450</guid><dc:creator><![CDATA[Nachrichtentext:]]></dc:creator><pubDate>Sun, 24 Dec 2006 17:03:43 GMT</pubDate></item><item><title><![CDATA[Reply to XML &#x2F; XSL Expertenfrage on Mon, 25 Dec 2006 01:09:02 GMT]]></title><description><![CDATA[<p>XSLT schrieb:</p>
<blockquote>
<p>Genau! Mein Problem ist aber, dass ich die Position der Elemente vorher nicht kenne bzw. die Reihenfolge immer mal anders sein kann. Sprich der Transformer muss zur Laufzeit gucken, ob es ein Element ein Base base-table Element hat und falls ja, dann alle Attribut aus dem referenzierten table Element holen, wo table/name = table/base-table/.</p>
</blockquote>
<p>Na dann schreib doch genau das einfach hin <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<pre><code class="language-html">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;
&lt;xsl:output method=&quot;html&quot; version=&quot;1.0&quot; encoding=&quot;utf-8&quot;/&gt;

&lt;xsl:template match=&quot;database&quot;&gt;
	&lt;database&gt;
		&lt;xsl:for-each select=&quot;table/base-table&quot;&gt;
			&lt;table&gt;
				&lt;name&gt;&lt;xsl:value-of select=&quot;../name&quot;/&gt;&lt;/name&gt;
				&lt;fields&gt;
					&lt;xsl:variable name=&quot;ref&quot;&gt;&lt;xsl:value-of select=&quot;.&quot;/&gt;&lt;/xsl:variable&gt;
					&lt;xsl:for-each select=&quot;/database/table/fields[preceding-sibling::name = $ref]/field&quot;&gt;
						&lt;field&gt;&lt;xsl:value-of select=&quot;.&quot;/&gt;&lt;/field&gt;
					&lt;/xsl:for-each&gt;
					&lt;xsl:for-each select=&quot;../fields/field&quot;&gt;
						&lt;field&gt;&lt;xsl:value-of select=&quot;.&quot;/&gt;&lt;/field&gt;
					&lt;/xsl:for-each&gt;
				&lt;/fields&gt;
			&lt;/table&gt;
		&lt;/xsl:for-each&gt;
	&lt;/database&gt;
&lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;
</code></pre>
<p>Alles halb so schlimm :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1197549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1197549</guid><dc:creator><![CDATA[minhen]]></dc:creator><pubDate>Mon, 25 Dec 2006 01:09:02 GMT</pubDate></item></channel></rss>