2012-04-09 39 views
0

此示例代碼不會通過w3c驗證程序。XHTML5和自定義名稱空間未通過驗證

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foo="http://foo.com/fooxml"> 
<head> 
    <title>Foo</title> 
</head> 
<body> 
    <foo:TabControl> 

    </foo:TabControl> 
</body> 
</html> 

我在想什麼?我需要做些什麼來使命名空間工作並通過驗證?

回答

2

您的DTD(http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd)是「XHTML 1.0 Strict」而不是「XHTML 1.0 Strict + Foo」。

如果您想驗證您需要查找或創建一個包含您正在使用的所有元素和屬性的DTD,並將Doctype更改爲指向該點。

W3C的recommended Doctypes列表包含許多可用作創建自己的示例的多個名稱空間文檔(如XHTML + MathML + SVG)。

+0

我可以創建一個基於現有HTML DTD(html,head,body,div,ul等)的XHTML文檔,然後添加這個名稱空間並使用它'foo:TabControl'?我不想重新創建整個HTML及其所有元素。你能製作混合文檔嗎? – Tower 2012-04-09 15:34:27

+0

XHTML以模塊表示,以便於創建混合命名空間文檔。請參閱我在答案中作爲示例所建議的DTD。 – Quentin 2012-04-09 15:35:47

+0

啊我明白了。所以我只是用我自己選擇的元素(比如「TabControl」)創建自己的DTD,然後創建一個名爲XHTML + Foo的聯合DTD? – Tower 2012-04-09 15:38:12

相關問題