Firefox Wicket + Nitobi XHTML命名空间解析错误

时间:2010-10-19 21:16:30

标签: xml firefox wicket xml-namespaces

我在XHTML文档中使用多个XML命名空间时遇到问题。具体来说,我试图在同一份文件中使用Wicket和Nitobi。

代码看起来像这样:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
      xmlns:ntb="http://www.nitobi.com">

... blah blah blah ...

<wicket:extend>
  <div wicket:id="gridContainer">
    <wicket:panel>
      <ntb:grid wicket:id="grid" id="grid14" width="660" height="600" mode="livescrolling"> 
      </ntb:grid>
    </wicket:panel>
  </div>
</wicket:extend>

... blah blah blah ...

标题中还有代码调用Nitobi的网格初始化代码,它基本上试图获取ntb:grid XML。但是,当我使用Firebug进行初始化时,我看到Firefox在解析XML时遇到了这个错误:

Parsing Error: prefix not bound to a namespace 
Location: http://localhost:8080/foo/bar 
Line Number 1, Column 1:
<ntb:grid xmlns:ntb="http://www.nitobi.com" mode="livescrolling" height="600" width="660" id="grid14" wicket:id="grid">
</ntb:grid>

我做错了什么?我觉得这个问题与<ntb>标记嵌套在<wicket>标记中的方式有​​关。

1 个答案:

答案 0 :(得分:1)

我发现问题是由wicket:id元素上的ntb:grid引起的。解决方法是从页面中删除wicket:命名空间标记,如下所示:

https://cwiki.apache.org/WICKET/how-to-remove-wicket-markup-from-output.html

以下是相关部分:

private boolean stripTags;

public TestPage() {
    stripTags =  getApplication().getMarkupSettings().getStripWicketTags();
}

@Override
protected void onBeforeRender() {
    getApplication().getMarkupSettings().setStripWicketTags(true);
}

@Override
protected void onAfterRender() {
    getApplication().getMarkupSettings().setStripWicketTags(stripTags);
}