Hash: SHA1

Thanks for the pedenatry, Len :-)

I've used XSD, however only via Visual Studio's support for creating schemas graphically. I'll look into it.

With regard to colons, their use is already established for denoting VOS namespaces, so that's not going to change. Not a problem until someone starts trying to do XSLT transforms I suppose :-)

The hyphen in the comment you mention seems to have been added by your (or my) email client.

I'm thinking of using TinyXML for an XML parser, since it would be very easy to integrate the source code into the VOS codebase (avoiding a dependency on a more heavyweight library like Xerces).

Revised sample, per Len's suggestions:

<?xml version="1.0" encoding="UTF-8" ?>

 <!-- Site consists of one or more root vobjects -->
 <vos:vobject name="world" type="a3dl:sector">

  <!-- (optional) defines access control policy for this vobject and
  all children that don't define their own access control policy -->
  <vos:acl policy="core:accept-all,property:deny-all">
   <vos:member href="/phred" />
   <vos:member href="/barney" />

  <!-- Shorthand for defining a child vobject property -->
<vos:property name="example" datatype="text/plain">Data goes here.</vos:property>

  <!-- Link to a vobject on a remote site -->
  <vos:link name="bloxx" href="vip://interreality.org/world/bloxx" />

  <!-- Link to a vobject on the local site -->
  <vos:link name="that-guy" href="/phred" />

  <!-- Can also specify a child object and supply datablocks (so it is
  loaded via the persistance interface) -->
  <vos:child name="another-example" type="property:property">
   <vos:block name="property:data">Hello there</vos:block>
   <vos:block name="property:datatype">text/plain</vos:block>

<!-- Child nodes are processed recursively the same way as vobject nodes - -->
  <vos:child name="an-object" type="a3dl:object3d.cube">
    <vos:property name="a3dl:position">1 2 3</vos:property>
    <vos:property name="a3dl:orientation">0 1 0 90</vos:property>
    <vos:child name="a3dl:material" type="a3dl:material">
      <vos:property name="a3dl:color">.3 .5 .7</vos:property>

 <!-- Can define additional vobjects which are not connected to the
 first vobject  -->
 <vos:vobject name="phred" type="core:identity,misc:avatar" />
 <vos:vobject name="barney" type="core:identity,misc:avatar" />

On Sun, 23 Oct 2005, Bullard, Claude L (Len) wrote:

Looks good, Peter. Close phred.

<link name="that-guy" href="/phred">

<link name="that-guy" href="/phred" />

Also, best look into namespaces and pick one.  You don't
strictly need it for these standalone, but there have
been several attempts at building object-property
languages using XML, and somewhere you may run into
one and name collisions will happen.  And a namespace
declaration might in the future prove useful as a
means in conjuction with a schema to document and
protect the intellectual property.  IP protection
is a paper-chase and open source is not immunce.

Hopefully you will also write a schema for this.
RelaxNG is good enough even if the tool support
isn't there.  XSD is supported but overbuilt.
DTDs work but a) no XML syntax and b) no namespace
support.  XSD is fine.  Just clunky.

Not necessary, but polite to include the encoding in
the XML declaration:

<?xml version="1.0" encoding="UTF-8" ?>

In fact the declaration itself is optional but a good idea.
At the very least, it is a sign that this is not yetAnotherPointyFormat.

Be careful with the colons.  Ok as shown.  Under transforms,
it is possible to get into trouble with these because of their
use in namespace declarations.  Caveat vendor.

Don't use hyphens in comments.  Sooner or later,that will byte.

  <!-- Child nodes are processed recursively the same way as vobject nodes
- -->

[   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 ]
Version: GnuPG v1.4.1 (GNU/Linux)


vos-d mailing list

Reply via email to