title: convert xml catalog to html with xslt
body: <p>My goal is to convert xml catalogs to html. The xml schema and the xml file is well formed and valid.</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
      targetNamespace="http://www.w3schools.com"
      xmlns="http://www.w3schools.com"
      elementFormDefault="qualified"&gt;
  
  
  &lt;xs:element name="catalog"/&gt;
  
  &lt;xs:complexType name="textint"&gt;
      &lt;xs:sequence&gt;
          &lt;xs:element name="s" type="xs:string"/&gt;
          &lt;xs:element name="i" type="xs:int"/&gt;
          &lt;xs:element name="s" type="xs:string"/&gt;
      &lt;/xs:sequence&gt;
  &lt;/xs:complexType&gt;
  
  
  &lt;xs:complexType mixed="true" name="inttext"&gt;
      &lt;xs:sequence&gt;
          &lt;xs:element name="i" type="xs:int"/&gt;
          &lt;xs:element name="s" type="xs:string"/&gt;
          &lt;xs:element name="i" type="xs:int"/&gt;
          &lt;xs:element name="s" type="xs:string"/&gt;
      &lt;/xs:sequence&gt;
  &lt;/xs:complexType&gt;
  
  
  
  
  &lt;xs:element name="Qstr"&gt;
      &lt;xs:complexType&gt;
          &lt;xs:sequence&gt;
              &lt;xs:element name="text" type="xs:string"/&gt;
              &lt;xs:element name="a" type="xs:string"/&gt;
              &lt;xs:element name="b" type="xs:string"/&gt;
              &lt;xs:element name="c" type="xs:string"/&gt;
              &lt;xs:element name="d" type="xs:string"/&gt;
          &lt;/xs:sequence&gt;
      &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
  
  
  
  
  
  &lt;xs:element name="Qfl"&gt;
      &lt;xs:complexType mixed="true"&gt;
          &lt;xs:sequence&gt;
              &lt;xs:element name="text" type="textint"/&gt;
              &lt;xs:element name="a" type="xs:int"/&gt;
              &lt;xs:element name="b" type="xs:decimal"/&gt;
              &lt;xs:element name="c" type="xs:int"/&gt;
              &lt;xs:element name="d" type="xs:int"/&gt;
          &lt;/xs:sequence&gt;
      &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
  
  
  
  
  &lt;xs:element name="Qinttext"&gt;
      &lt;xs:complexType mixed="true"&gt;
          &lt;xs:sequence&gt;
              &lt;xs:element name="text" type="inttext"/&gt;
              &lt;xs:element name="a" type="xs:int"/&gt;
              &lt;xs:element name="b" type="xs:int"/&gt;
              &lt;xs:element name="c" type="xs:int"/&gt;
              &lt;xs:element name="d" type="xs:int"/&gt;
          &lt;/xs:sequence&gt;
      &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
  
  
  
  
  &lt;xs:element name="Qtextint"&gt;
      &lt;xs:complexType mixed="true"&gt;
          &lt;xs:sequence&gt;   
              &lt;xs:element name="text" type="xs:string"/&gt;
              &lt;xs:element name="a" type="textint"/&gt;
              &lt;xs:element name="b" type="xs:string"/&gt;
              &lt;xs:element name="c" type="xs:string"/&gt;
              &lt;xs:element name="d" type="textint"/&gt;
          &lt;/xs:sequence&gt;
      &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
  
  
  
  &lt;/xs:schema&gt;
  </code></pre>
  
  <p>.</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  
  &lt;catalog xmlns="http://www.w3schools.com"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3schools.com   file:///home/n/workspace/webprog1/WebContent/schema.xml"&gt;
  
      &lt;Qstr&gt;
          &lt;text&gt;Welcher Mechanismus kann unter Unix zur Kommunikation über das Netzwerk verwendet werden?&lt;/text&gt;
          &lt;a&gt;Sockets&lt;/a&gt;
          &lt;b&gt;Message Queues&lt;/b&gt;
          &lt;c&gt;Pipes&lt;/c&gt;
          &lt;d&gt;Semaphore&lt;/d&gt;
      &lt;/Qstr&gt;
  
      &lt;Qstr&gt;
          &lt;text&gt;Die Hauptstadt von Italien ist:&lt;/text&gt;
          &lt;a&gt;Rom&lt;/a&gt;
          &lt;b&gt;Athen&lt;/b&gt;
          &lt;c&gt;Bonn&lt;/c&gt;
          &lt;d&gt;Madrid&lt;/d&gt;
      &lt;/Qstr&gt;
  
      &lt;Qfl&gt;
          &lt;text&gt; &lt;s&gt;Die Quadratwurzel von &lt;/s&gt; &lt;i&gt;100&lt;/i&gt; &lt;s&gt; ist:&lt;/s&gt;&lt;/text&gt;
          &lt;a&gt;10&lt;/a&gt;
          &lt;b&gt;2.76&lt;/b&gt;
          &lt;c&gt;5&lt;/c&gt;
          &lt;d&gt;1&lt;/d&gt;
      &lt;/Qfl&gt;
  
      &lt;Qinttext&gt;
          &lt;text&gt; &lt;i&gt;1&lt;/i&gt; &lt;s&gt;+&lt;/s&gt; &lt;i&gt;1&lt;/i&gt; &lt;s&gt;= ?&lt;/s&gt; &lt;/text&gt;
          &lt;a&gt;2&lt;/a&gt;
          &lt;b&gt;1&lt;/b&gt;
          &lt;c&gt;3&lt;/c&gt;
          &lt;d&gt;4&lt;/d&gt;
      &lt;/Qinttext&gt;
  
      &lt;Qtextint&gt;
          &lt;text&gt;Spinnen...&lt;/text&gt;
          &lt;a&gt; &lt;s&gt;...haben &lt;/s&gt; &lt;i&gt;8&lt;/i&gt; &lt;s&gt; Beine&lt;/s&gt; &lt;/a&gt;
          &lt;b&gt;...sind Insekten&lt;/b&gt;
          &lt;c&gt;...sind Vögel&lt;/c&gt;
          &lt;d&gt; &lt;s&gt;...werden bis zu &lt;/s&gt; &lt;i&gt;100&lt;/i&gt; &lt;s&gt; Jahre alt&lt;/s&gt; &lt;/d&gt;
      &lt;/Qtextint&gt;
  
      &lt;Qstr&gt;
          &lt;text&gt;Die Hauptstadt von Spanien ist:&lt;/text&gt;
          &lt;a&gt;Madrid&lt;/a&gt;
          &lt;b&gt;Barcelona&lt;/b&gt;
          &lt;c&gt;Rom&lt;/c&gt;
          &lt;d&gt;London&lt;/d&gt;
      &lt;/Qstr&gt;
  
  &lt;/catalog&gt;
  </code></pre>
  
  <p>Next I created an xsl stylesheet:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;
  &lt;xsl:output method="html" /&gt;
  
    &lt;xsl:template match="/"&gt;
  
  &lt;html&gt;
  
    &lt;head&gt;
  
     &lt;title&gt;Simple Quiz&lt;/title&gt;
  
    &lt;/head&gt;
  
    &lt;body&gt;
  
  &lt;xsl:for-each select="catalog/Qstr"&gt;
  
  &lt;table border="1"&gt;
      &lt;tr bgcolor="orange"&gt;
        &lt;th&gt;Frage&lt;/th&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="text"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr bgcolor="orange"&gt;
        &lt;th&gt;Antwortmöglichkeiten&lt;/th&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="a"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="b"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="c"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="d"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
  
  
    &lt;/table&gt;
  &lt;/xsl:for-each&gt;
  
  
  &lt;xsl:for-each select="catalog/Qfl"&gt;
  
  &lt;table border="1"&gt;
      &lt;tr bgcolor="orange"&gt;
        &lt;th&gt;Frage&lt;/th&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="text"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr bgcolor="orange"&gt;
        &lt;th&gt;Antwortmöglichkeiten&lt;/th&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="a"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="b"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="c"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="d"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
  
  
    &lt;/table&gt;
  &lt;/xsl:for-each&gt;
  
  
  &lt;xsl:for-each select="catalog/Qinttext"&gt;
  
  &lt;table border="1"&gt;
      &lt;tr bgcolor="orange"&gt;
        &lt;th&gt;Frage&lt;/th&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="text"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr bgcolor="orange"&gt;
        &lt;th&gt;Antwortmöglichkeiten&lt;/th&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="a"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="b"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="c"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="d"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
  
  
    &lt;/table&gt;
  &lt;/xsl:for-each&gt;
  
  
  &lt;xsl:for-each select="catalog/Qtextint"&gt;
  
  &lt;table border="1"&gt;
      &lt;tr bgcolor="orange"&gt;
        &lt;th&gt;Frage&lt;/th&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="text"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr bgcolor="orange"&gt;
        &lt;th&gt;Antwortmöglichkeiten&lt;/th&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="a"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="b"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="c"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;xsl:value-of select="d"/&gt;&lt;/td&gt;
      &lt;/tr&gt;
  
  
    &lt;/table&gt;
  &lt;/xsl:for-each&gt;
  
    &lt;/body&gt;
  
   &lt;/html&gt;
  
    &lt;/xsl:template&gt;
  
  &lt;/xsl:stylesheet&gt;
  </code></pre>
  
  <p>As I am using ubuntu I chose oxygen for xml editing. The transformation was succesful, but nothing is displayed in my html. I guess that my problem has to do with the xml schema. After using the solution of Rad Lexus the problem still remains.</p>