Я работаю над приложением, в которое встроено средство визуализации Orbeon XForms. Я использую это для создания XHTML, а не HTML. У нас есть форма, в которой используются 2 пользовательских компонента XBL.
XHTML, который мы передаем в orbeon, кажется правильным. Но полученный XHTML от Orbeon дважды содержит определение пространства имен xbl в элементе <body>
. Это предотвращает его анализ как действительный XML.
На самом деле это очень сложная форма, которую я не могу опубликовать здесь, но важные моменты для этого вопроса:
<xhtml:html
xmlns:exf="http://www.exforms.org/exf/1-0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
xmlns:ev="http://www.w3.org/2001/xml-events"
xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:f="http://orbeon.org/oxf/xml/formatting"
xmlns:fw="http://orionhealth.com/forms/widgets" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:head>
<!-- Lots of stuff -->
<xbl:xbl xmlns:xbl="http://www.w3.org/ns/xbl">
<xbl:script src="...."/>
<xbl:binding id="fw-autocomplete" element="fw|autocomplete">
<xbl:template>
<!-- Lots of stuff -->
</xbl:template>
</xbl:binding>
</xbl:xbl>
<xbl:xbl xmlns:xbl="http://www.w3.org/ns/xbl">
<xbl:script src="...."/>
<xbl:binding id="fw-datetime" element="fw|datetime">
<xbl:template>
<!-- Lots of stuff -->
</xbl:template>
</xbl:binding>
<xbl:binding id="fw-date" element="fw|date">
<xbl:template>
<!-- Lots of stuff -->
</xbl:template>
</xbl:binding>
<xbl:binding id="fw-partial-date" element="fw|partial-date">
<xbl:template>
<!-- Lots of stuff -->
</xbl:template>
</xbl:binding>
</xbl:xbl>
</xhtml:head>
<xhtml:body id="body">
<!-- Lots of stuff -->
</xhtml:body>
</xhtml:html>
Следует отметить, что хотя оба компонента XBL определены, ни один из них фактически не используется в теле документа. Результирующий XHTML от Orbon (снова упрощенный):
<?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:exf="http://www.exforms.org/exf/1-0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
xmlns:ev="http://www.w3.org/2001/xml-events"
xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:f="http://orbeon.org/oxf/xml/formatting"
xmlns:fw="http://orionhealth.com/forms/widgets"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xxforms:noscript="true">
<head>
<!-- Lots of Stuff -->
</head>
<body xmlns:xbl="http://www.w3.org/ns/xbl" xmlns:xbl="http://www.w3.org/ns/xbl"
id="body"
class="yui-skin-sam">
<!-- Lots of Stuff -->
</body>
</html>
Обратите внимание на дублированный xmlns:xbl="http://www.w3.org/ns/xbl"
на теге тела.
Поиск в Google. Я ничего не нашел об этой проблеме. Кто-нибудь знает, что может вызвать это и что я могу исправить?
Я заметил, что если я определяю префикс xbl в элементе <xhtml:html>
вместо каждого элемента <xbl:xbl>
, это не кажется проблемой, и в результирующем XHTML из Orbeon этот префикс определен только один раз в элементе <xhtml:html>
.
<span>
). Затем заставьте также разместить здесь комментарий, чтобы мы получили уведомление от Stack Overflow. - person avernet   schedule 17.08.2011