As has been discussed a while ago, there was no way to import
multiple xml files to one node, because an attribute like "include"
could only be used once (XML spec requirement). People worked
around this limitation by including one file, and from that file
another file, and from that one ... This gave ugly and hard to
maintain include chains.

Other systems reportedly solve this with an extra attribute like
"omit-node". This is now also possible in our XML files:


When a file foo.xml has these contents: <outer><inner>123</inner></outer>,
and you load it like so:

  <foo>
    <bar include="foo.xml"/>
  </foo>

then you get this:

  /foo/bar/outer/inner=123


But with the new modifier:

  <foo>
    <bar include="foo.xml" omit-node="y"/>
  </foo>

you get

  /foo/outer/inner=123

That is, the including node gets dropped and replaced by the file
contents. That way one can, for example import XML modules, like in

  <keyboard>
      <carrier-keys include="Input/Keyboard/carrier-bindings.xml" 
omit-node="y"/>
      <other-keys   include="Input/Keyboard/some-other-keys.xml"  
omit-node="y"/>
      ...
  </keyboard>

where each of the files has <key> entries on the top level, and all of
them are dropped right into the <keyboard> group. 

m.



PS: I didn't really want to commit that yet, but it got in the way when I
    committed the writeProperties() bugfix, so there it is!  ;-)

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to