IAR Format 0.2

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
m (Robot: Cosmetic changes)
m (Robot: Replacing 'OpenSim' to 'OpenSimulator', which is the precise name)
 
Line 31: Line 31:
 
  OpenSim/Framework/Serialization/ArchiveConstants.cs
 
  OpenSim/Framework/Serialization/ArchiveConstants.cs
  
in the OpenSim distribution.
+
in the OpenSimulator distribution.
  
 
=== inventory/ ===
 
=== inventory/ ===
Line 53: Line 53:
 
For example
 
For example
  
  OpenSim ball__b9608a97-6766-43fc-ad69-d9fecbc7d560.xml
+
  OpenSimulator ball__b9608a97-6766-43fc-ad69-d9fecbc7d560.xml
  
 
Again, the IDs serve only to distinguish identically named items. They are not used when the archive is loaded.
 
Again, the IDs serve only to distinguish identically named items. They are not used when the archive is loaded.
Line 83: Line 83:
 
  </InventoryItem>
 
  </InventoryItem>
  
The CreatorUUID is in [[OpenSim Profile Anchors|OpenSim Profile Anchor (OSPA)]] format. At the moment, this is simply
+
The CreatorUUID is in [[OpenSim Profile Anchors|OpenSimulator Profile Anchor (OSPA)]] format. At the moment, this is simply
  
 
  n:=<name>
 
  n:=<name>

Latest revision as of 23:38, 3 March 2012


*** IMPORTANT!!! The information on this page was superseded by IAR Format 0.3 ***


Contents

[edit] Changes

The only change from 0.1 is that a 0.2 IAR must start with the control file (archive.xml).

[edit] Detail

An inventory archive is a gzipped tar file (tar.gz) with the extension .iar. This can be extracted and created with standard tools (7-zip on Windows). The structure of the archive is as follows

archive.xml
assets/
inventory/

[edit] archive.xml

This is the archive control file. At the moment it contains only a major and minor version number, to allow compatibility with future format changes.

[edit] assets/

This directory contains all the assets in the archive. Each filename has the following format

<uuid>_<asset type>.<asset extension>

The uuid section must always be present and form a valid uuid - it is used directly as the uuid for that asset. The asset type and asset extension are used to identify the type of asset and the asset extension allows the asset to be associated with different editors on platforms such as Windows. For instance, a script will always have the asset type and extension script.lsl. A full list of asset types and extensions can be found in the file

OpenSim/Framework/Serialization/ArchiveConstants.cs

in the OpenSimulator distribution.

[edit] inventory/

This folder contains the inventory structure for the archive.

Each folder has the format

<folder name>__<folder id>

For example

folder A__52bfa79f-d7fd-4140-9a54-e33c0e235b87

This is to allow the archiving of folders with identical names. The actual IDs are not important, they exist here only to distinguish identically named folders contained in the same parent folder. The IDs are not used when the archive is loaded.

Items in inventory folders have the format

<item name>__<item id>.xml

For example

OpenSimulator ball__b9608a97-6766-43fc-ad69-d9fecbc7d560.xml

Again, the IDs serve only to distinguish identically named items. They are not used when the archive is loaded.

[edit] Item XML format

Here's an example of the format used to save items.

<?xml version="1.0" encoding="utf-16"?>
<InventoryItem>
  <Name>boxee</Name>
  <ID>1bc27214-bd75-4151-ae9c-c9ca79c1a016</ID>
  <InvType>6</InvType>
  <CreatorUUID>ospa:n=Justin Clark-Casey</CreatorUUID>
  <CreationDate>1253888489</CreationDate>
  <Owner>517d9f5d-2ef2-49ba-a47c-c1658ffe715f</Owner>
  <Description />
  <AssetType>6</AssetType>
  <AssetID>a66bfff2-4190-4e08-a2df-106317d4a6dd</AssetID>
  <SaleType>0</SaleType>
  <SalePrice>0</SalePrice>
  <BasePermissions>581639</BasePermissions>
  <CurrentPermissions>581647</CurrentPermissions>
  <EveryOnePermissions>0</EveryOnePermissions>
  <NextPermissions>2147483647</NextPermissions>
  <Flags>0</Flags>
  <GroupID>00000000-0000-0000-0000-000000000000</GroupID>
  <GroupOwned>False</GroupOwned>
</InventoryItem>

The CreatorUUID is in OpenSimulator Profile Anchor (OSPA) format. At the moment, this is simply

n:=<name>

When the archive is loaded, if an existing user name matches that contained in the CreatorUUID OSPA, then the item creator will be assigned to that user. If no name matches then the registered creator will revert to the user that loaded the item.

TODO: explain other elements, ideally accompanied by an XML Schema

Personal tools
General
About This Wiki