OpenSimulator:Xml Serialization

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Draft speculation)
(Opensimulator Xml Serialization Format 3)
Line 1: Line 1:
= Opensimulator Xml Serialization Format 3 =
+
== Opensimulator Xml Serialization Format 3 ==
== Goals ==
+
=== Goals ===
 
* Attributes and elements should map 1-to-1 with normalized object structure and hence protocol fields
 
* Attributes and elements should map 1-to-1 with normalized object structure and hence protocol fields
* Xml should be as terse as possible whilst maintaining intuitive results
+
* Xml should be as terse as possible whilst generating intuitive results
* The xml format should weigh human readability against the cost of parsing and calculating
+
* The xml format should weigh human readability against the cost of parsing and re-calculation
 +
* The format should never introduce unintuitive constructs or cases
  
  
 
+
===Draft speculation===
==Draft speculation==
+
 
* Since almost all fields have three distinct flavours ("SL GUI values", "LSL PrimitiveParams values" and "Protocol values") we should be able to specify values with units. The default unit should be "Protocol values".
 
* Since almost all fields have three distinct flavours ("SL GUI values", "LSL PrimitiveParams values" and "Protocol values") we should be able to specify values with units. The default unit should be "Protocol values".
 
   Example:
 
   Example:

Revision as of 13:31, 23 January 2008

Opensimulator Xml Serialization Format 3

Goals

  • Attributes and elements should map 1-to-1 with normalized object structure and hence protocol fields
  • Xml should be as terse as possible whilst generating intuitive results
  • The xml format should weigh human readability against the cost of parsing and re-calculation
  • The format should never introduce unintuitive constructs or cases


Draft speculation

  • Since almost all fields have three distinct flavours ("SL GUI values", "LSL PrimitiveParams values" and "Protocol values") we should be able to specify values with units. The default unit should be "Protocol values".
  Example:
  <... taperX="200" ...> means protocol value 200
  <... taperX="1.0" ...> could mean LSL value 1.0 (which is protocol 200)
  <... taperX="100%" ...> could mean SL gui value 1.0, although this is actually not strictly what is displayed (somebody come up with a good idea of how to mark lsl vs ui values)
  • The fields that are enumerated should be encoded as either element types, attribute strings or attribute numbers. The default should be attribute numbers.
  Example:
  <Object ...> means PCode 9 (Primitive)
  <Tree ...> means PCode x (Tree)
  <Avatar ...> means PCode z (Avatar)
  
  Example:
  <... extrusion="straight" ...> means protocol value 0 (PathCurve.Straight)
  <... extrusion="1" ...> means protocol value 1 (PathCurve.xxx)
Personal tools
General
About This Wiki