Patrick: Unerwünschte XML Namensraumangaben xmlns

Hallo

Kurz zur Erklärung:
Ich habe XSL-templates in einer Datenbank. Diese werden zusammen mit XML Daten in XHTML umgewandelt. Ich habe also KEIN XSL in meinem HTML-gerüst sondern HTML Bestandteile in den XSL-Templates, damit dann zusammen mit XML-Daten eine XHTML-Website generiert werden kann.

Nun zu meinem Problem:
Folgende Fehlermeldung wird vom W3C Validator ausgegeben: there is no attribute "xmlns"

http://validator.w3.org/check?uri=http%3A%2F%2Fwww.treehousecafe.org%2Findex.php%3FpageId%3D1&charset=%28detect+automatically%29&doctype=Inline

Was bedeutet dass und warum wird es ins div tag als attribut mit eingebunden obwohl es in meinem template nicht drinnensteht.

Dass Startseitentemplate sieht an der entsprechenden Stelle folgendermaßen aus:

Code:

xml version="1.0" encoding="iso-8859-1"?>

DOCTYPE xsl:stylesheet  [
 <!ENTITY nbsp   "&#160;">
 <!ENTITY copy   "&#169;">
 <!ENTITY reg    "&#174;">
 <!ENTITY trade  "&#8482;">
 <!ENTITY mdash  "&#8212;">
 <!ENTITY ldquo  "&#8220;">
 <!ENTITY rdquo  "&#8221;">
 <!ENTITY pound  "&#163;">
 <!ENTITY yen    "&#165;">
 <!ENTITY euro   "&#8364;">
 <!ENTITY eacute "&#233;">
]>

xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" method="xml" encoding="iso-8859-1" indent="yes" omit-xml-declaration="yes"/>

xsl:variable name="var_title">
  <xsl:value-of select="/data/row/Pagetitle" />
</xsl:variable>

xsl:variable name="var_header_image">homeheader</xsl:variable>

<xsl:template match="/">
  <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
      <meta name="keywords" content="Fairtrade, Treehouse, Cafe, Nonviolence, Bradford, Library, Organic" />
      <meta name="description" content="The treehouse café and Bradford Centre for Nonviolence can be found immediately opposite the University of Bradford. The site is well known for its delicious and ethical food, being for over ten years the home of the Fair Trade Café - the first fair trade café in the UK." />
      <meta name="language" content="en" />
      <title>Treehouse café - Home</title>
      <link rel="stylesheet" type="text/css" href="css/global.css"/>
      <link rel="stylesheet" type="text/css" href="css/menu.css"/>
      <link rel="stylesheet" type="text/css" href="css/startpage.css"/>
      <link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico" />
    </head>

body>
      <div class="sitebaseframe">
        <div class="sitecomponents">
          <xsl:call-template name="fix_header"/>
          xsl:apply-templates/
        </div>

im fix_header template (Dass oben per xsl:call aufgerufen wird) steht folgender code:
Code:

xsl:template name="fix_header" >
  <div class="siteheader">
    <table class="siteheaderimage" cellspacing="0" cellpadding="0">
      <xsl:attribute name="background">
        <xsl:copy-of select="$var_header_image" />
      </xsl:attribute>
      <tr>

Wenn ich mir den Quelltext meiner Seite ansehe steht plötzlich ein xmlns Attribut im siteheader div-tag!? Warum? Wo kommt es her? Warum wird es automatisch generiert? VOR ALLEM ABER: WIE BEKOMME ICH ES WEG?

Code:

body>
    <div class="sitebaseframe">
<div class="sitecomponents"><div xmlns="" class="siteheader">

Liegt es vielleicht an der XSL-Prozessorversion des Providers?
Leere xmlns="" Attribute in divs treten auf bei <xsl:call-template name=""/> oder <xsl:template match="row"> sonst nicht!!

Danke schonmal für eure Hilfe!

####################################
serverinfo:

xml
XML Support active
XML Namespace Support active
libxml2 Version 2.6.22

xmlreader
XMLReader enabled

xmlwriter
XMLWriter enabled

xsl
XSL enabled
libxslt Version 1.1.7
libxslt compiled against libxml Version 2.6.11
EXSLT enabled
libexslt Version 0.8.5

  1. Hallo,

    Nun zu meinem Problem:
    Folgende Fehlermeldung wird vom W3C Validator ausgegeben: there is no attribute "xmlns"

    http://validator.w3.org/check?uri=http%3A%2F%2Fwww.treehousecafe.org%2Findex.php%3FpageId%3D1&charset=%28detect+automatically%29&doctype=Inline

    Offentichtlich, ist das Problem gelöst: "This Page Is Valid XHTML 1.0 Transitional!".

    Wenn doch nicht bitte hier melden.

    Grüße
    Thomas

    1. Offentichtlich, ist das Problem gelöst: "This Page Is Valid XHTML 1.0 Transitional!".

      Wenn doch nicht bitte hier melden.

      Grüße
      Thomas

      Alle Tags in denen ein leeres xmlns="" steht sind keinem namespace zugeordnet also in einem "null namespace" nicht im xhtml namespace. die lösung ist eigentlich so einfach:

      Einfach die namespace definition aus dem html tag: html xmlns="http://www.w3.org/1999/xhtml">

      ins xsl stylesheet tag zusätzlich mit reinnehmen

      ALSO:

      <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">

      und JUHU: This Page Is Valid XHTML 1.0 Transitional!

      http://validator.w3.org/check?uri=http%3A%2F%2Fwww.treehousecafe.org%2Findex.php%3FpageId%3D1