Hallo Pauli,
Wofür braucht man "xmlns="http://www.w3.org/2001/XMLSchema" ?
Dafür, dass man in bestimmten, vorgegebenen Grenzen/Vorgaben/... bleibt. Woher weiss das Programm das diese Vorgaben umsetzen soll, was da die Grenzen/Vorgaben/... sind?
In diesem Artikel steht eigentlich das Wesentliche.
Typischerweise möchte man verschiedene XML-Standards mischen und es können ggf. gleichnamige Elemente/Attribute auftreten, z. B. ein title-Element in einer SVG-Vektorgrafik, welche wiederum direkt in HTML eingebettet sein kann und dort gibt es auch ein title-Element. (Es gibt title als Kindelement von svg, aber auch von circle, rect, path usw.)
Oder man möchte Markup via XSLT erzeugen. Dann stehen die xsl:*-Elemente für die eigentliche Programmsyntax und innerhalb stehen die Ausgaben:
<xsl:template match="/">
<html>
<!-- hier HTML-Code ausgeben … -->
</html>
</xsl:template>
Instruktiver bei der Excel-Generierung mit dem ganzen Office-Foo:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:x="urn:schemas-microsoft-com:office:excel"
exclude-result-prefixes="fn xs">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<!-- weitere Ausgaben … -->
<Row>
<Cell>
<Data ss:Type="Number">
<xsl:value-of select="…"/>
</Data>
</Cell>
<!-- weitere Ausgaben … -->
</Row>
<!-- weitere Ausgaben … -->
</xsl:template>
</xsl:stylesheet>
Grüße,
Thomas