I'm no XML expert, but shouldn't we be able to also eXtend the schema (or dtd),
and do stuff like:

<site xmlns="http://interreality.org/xml/xod/base"; 
    xmlns:vosapp="http://interreality.org/xml/xod/vosapp/base";
    xmlns:codplugin="http://interreality.org/xml/xod/vosapp/cod_plugin";
    xmlns:AF="http://interreality.org/xml/xod/vosapp/avatar_factory_plugin";
>
    <vosapp:logfile>3dworld-blocks.log</vosapp:logfile>
    
<vosapp:default-site-policy>core:accept-all,property:accept-all,site:accept-all,log-level-control:accept-all</vosapp:default-site-policy>
    <vosapp:plugin vosapp:path="plugins/libomniplg_search.so" />
    <vosapp:plugin vosapp:path="plugins/libomniplg_logctrl.so" />
    <vosapp:plugin vosapp:path="plugins/libomniplg_cod.so">
        <codplugin:file>worlds/blocks.cod</codplugin:file>
    </vosapp:plugin>
    <vosapp:plugin vosapp:path="plugins/libomniplg_avatar_factory.so">
        <AF:vobject>/world</AF:vobject>
        <AF:model>default_avatar.md2</AF:model>
        <AF:skin>default_avatar.png</AF:skin>
        <AF:starting_pos datatype="list: float">-4.0 1 -4.0</AF:starting_pos>
    </vosapp:plugin>
    ...
</site>

Then, in the loader, treat elements as child objects (or triggers for special 
non-vobject contexts like plugin loading), and map elements with cdata and 
attributes 
to properties.



> <site>
>  <vobject name="configuration">
> 
>   <!-- Set the output logfile  -->
>   <property name="logfile" sws="1">
>     3dword-blocks.log
>   </property>
> 
>   <!-- Set a permissive default access control policy -->
>   <property name="default-site-policy" sws="1">
> 
> core:accept-all,property:accept-all,site:accept-all,log-level-control:accept-all
>   </property>
> 
>   <!-- Enable search -->
>   <child name="search" type="vosapp:plugin">
>     <property name="vosapp:plugin-path" sws="1">
>       plugins/.libs/libomniplg_search.so
>     </property>
>   </child>

> 
>   <!-- Enable remote log control -->
>   <child name="logcontrol" type="vosapp:plugin">
>     <property name="vosapp:plugin-path" sws="1">
>       plugins/.libs/libomniplg_logctrl.so
>     </property>
>   </child>
> 
>   <!-- Load the (trivially simple) 3D world from a COD file. -->
>   <child name="cod" type="vosapp:plugin">
>     <property 
> name="vosapp:plugin-path">plugins/.libs/libomniplg_cod.so</property>
>     <property name="file">worlds/blocks</property>
>   </child>
> 
>   <!-- The avatar factory creates an avatar object on the server
>   when a new visitor joins the world.  This allows people behind
>   firewalls/NAT gateways to interact with other users since messages to 
> their
>   avatar go to the server, not to their own local host (those would
>   be blocked by the firewall).
>   -->
>   <child name="avatar-factory" type="vosapp:plugin">
>     <property name="vosapp:plugin-path" sws="1">
>       plugins/.libs/libomniplg_avatar_factory.so
>     </property>
>     <property name="vobject">/world</property>
>     <property name="model">default_avatar.md2</property>
>     <property name="skin">default_avatar.png</property>
>     <property name="hardrotation">0 1 0 90</property>
>     <property name="policy">factory.compound:accept-all</property>
>     <property name="starting pos">-4 1 -4</property>
>     <property name="starting rot">0 1 0 25</property>
>   </child>
> 
>   <!-- This turns the root 'world' object into a talkative object which
>   relays talk messages to other avatars in the world.
>   -->
>   <child name="talkative" type="vosapp:plugin">
>     <property name="vosapp:plugin-path" sws="1">
>       plugins/.libs/libomniplg_talkative.so
>     </property>
>     <property name="vobject">/world</property>
>     <property name="sendpolicy">talkative:send-only</property>
>     <property name="core:accept-all">talkative:send-only</property>
>   </child>
>  </vobject>
> </site>
> 
> 
> [   Peter Amstutz   ][ [EMAIL PROTECTED] ][ [EMAIL PROTECTED]  ]
> [Lead Programmer][Interreality Project][Virtual Reality for the Internet]
> [ VOS: Next Generation Internet Communication][ http://interreality.org ]
> [ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.1 (GNU/Linux)
> 
> iD8DBQFDW8jaaeHUyhjCHfcRAithAJ0YaNiBcDzxe49b+eRBsRCm3n+ilgCgr3n3
> jsXTfCMvF/w48AhYYtBr6kk=
> =cTx7
> -----END PGP SIGNATURE-----
> 
> 
> _______________________________________________
> vos-d mailing list
> vos-d@interreality.org
> http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d


_______________________________________________
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d

Reply via email to