I was very glad to see that the initial spec includes the ability to reference data externally. I am curious how extensively can this be used? It seems pretty flexible, but let just ask some dumb questions: For instance, it looks like a vert array or material can be referenced? What about an asset, or other higher level type such as a library? I'm hoping this sort of referencing is possible because it really opens the door to better asset structuring and management.
Such support for referencing could also help in another area. The speed of reading/writing xml keeps coming up throughout this forum. Speed will always be an issue, but I think there is a solution outside of the straight brute force approach. It is possible to export data more intelligently, by structuring the assets in the pipeline in a manner that makes sense. Rather than cramming everything you need into a level file and exporting it into a single massive xml file, why not break the file up into multiple sections? This could be done either within the source file, meaning the file produces multiple outputs, or by separating the contents of the source file into multiple source files, each producing their own output. Then they are sewn together using the <Asset> tag, and some references to the output.
A couple of other things that would help in structuring assets are an <include> and <substitution> tag.
orCode :< include url="file://c:/file.xml" />orCode :< include > url= <substitution name="user_path_var" /> </ include >Another note: Regarding the <extra> tag, it seems like this is a very important and useful tag that should not be limited to being attached to a node. I'd like to be able to put <extra> meta data all over the place, from <assets> to materials, etc. Is there a reason not to do this? Or is there another way to supply meta data that I have overlooked?Code :<asset> <stuff.../> <world_scale> < substitution "platform_worldscale" /> </world_scale> <up_axis> < substitution "platform_Z_UP" /> </up_axis> </asset>