Xpoint
   [напомнить пароль]

Дочерние элементы в binding

Метки: [без меток]
2008-03-19 15:41:54 [обр] Денис Ибаев aka Dionys(15/57)[досье]

Есть такой документ:

<ns:tag>
    <ns:subtag/>
    <ns:subtag2/>
    <ns2:subtag/>
</ns:tag>

и такой binding к нему:

<binding id="tag">
    <content>
       <xul:vbox>
           <children includes="subtag"/>
       </xul:vbox>
       <children/>
    </content>
</binding>

Вопросы следующие:

  1. Если я убираю из binding последний <children>, то наличие внутри <ns:tag> элемента <ns:subtag2> приводит к ошибке и binding не срабатывает. Похоже, требуется, чтобы все дочерние элементы не прошедшие через фильтры <children includes="..."> в итоге всё равно были куда-то пристроены. А нельзя ли их просто отбросить?
  2. Фильтр <children includes="subtag"> пропускает все элементы с именем тега subtag, не взирая на пространства имён. Можно ли как-то указать требуемое пространство имён, чтобы проходил, к примеру, <ns:subtag>, и не проходил <ns2:subtag>?
спустя 2 часа 21 минуту [обр] Владимир Палант(434/4445)[досье]
  1. Думаю, нельзя — в DOM документа эти элементы есть, соответственно где-то в реальной иерархии они должны существовать. Можно загнать их в <box hidden="true">.
  2. Атрибут includes принимает XPath-выражение. Теоретически, если вы объявите xmlns:ns="" в XBL и напишете includes="ns:subtag", то тогда будет признаваться только один namespace. Но на самом деле я XPath не знаю и на практике это не пробовал.
спустя 3 часа 32 минуты [обр] Денис Ибаев aka Dionys(15/57)[досье]
  1. В общем-то я так и сделал от безысходности, придётся оставить это рабочим вариантом.
  2. Я это пробовал, не помогло.
Powered by POEM™ Engine Copyright © 2002-2005