Export an Object to an XML File

23 May 2015

  • Release 8.13 - added the optional path parameter.

19 May 2015

  • Release 8.12 - range is now an optional parameter and not required to locate the item.

14 May 2016

  • Release 8.11 - added.
exportxml (Commands)
TypeCorrade progressive command
Commandexportxml
DescriptionThe exportxml command can be used to export an object (including those attached to avatars), along with all the necessary textures.
Permissionsinteract, system (if path is specified)
Parametersgroup, password, item
Last ChangesRelease 8.13 - added the optional path parameter.

The exportxml command can be used to export an object (including those attached to avatars), along with all the necessary textures.

Command Required Parameters Required Corrade Permissions Example
exportxml group, password, item interact, system (if path is specified)
llInstantMessage(CORRADE,
    wasKeyValueEncode(
        [
            // Export an object named "Mouse"
            "command", "exportxml",
            "group", wasURLEscape(GROUP),
            "password", wasURLEscape(PASSWORD),
            // NOTE: or an UUID can be passed
            // NOTE: this must be the name or
            // the UUID of an object (a root primitive).
            "item", "Mouse",
            "range", 5
            "callback", wasURLEscape(URL)
        ]
    )
);

The possible and currently supported downloadable assets are the following: Bmp Emf Exif Gif Icon Jpeg MemoryBmp Png Tiff Wmf

Optional Parameter Possible Value Description
format Bmp Downloads the textures referenced by the object in the specified format or in JPEG2000 Codestream format in case format was not specified.
Emf
Exif
Gif
Icon
Jpeg
Png
Tiff
Wmf
range A range in meters. The spherical distance from Corrade in which to locate the item.
Optional Parameter Possible Value Description
path A path-name ending in a file name (e.g.: C:\\Data\\Assets\\MyAsset.txt, or /mnt/data/Store.png) If a path is specified, then the asset will be saved to the file name indicated by the path.

In case the path optional parameter is not specified, then the asset will be downloaded, encoded as a Base64 string, then URI escaped and then placed as the value to the data key from the callback. If the path parameter is specified, then the data will be saved to the indicated path.

Remarks

  • Since an object export consists of both an XML file and the referenced textures, Corrade bundles the XML file and the textures in a ZIP file which it then Base64 encodes and sends it as the value of the data key in the command output. In order to retrieve all the files from the output, you must Base64 decode the value of the data key which will give you binary data representing a ZIP file. Depending on the language you script Corrade in, you can either save that data to a ZIP file and then decompress it using conventional tools or decompress the ZIP file in-memory if the scripting language provides memory streams.
  • Contrary to some distinguished viewers, Corrade will only return data if it has succeeded in downloading all the textures, creating the XML file and successfully created a ZIP archive. If at any point there is a failure, Corrade will break execution and return the error. To that effect, the exportxml command does not return partial-results, as in exports with missing textures but will only return completely successful exports.
  • Compared to the exportdae command, the exportxml command may only fail in case the object to export is a mesh or contains mesh components. This is simply due to the fact that the exportxml command is insufficient for exporting objects with mesh. When in doubt, you can use the exportdae command which will always succeed but will always convert all the primitives into meshes.
  • In order to import back exported items, you can use the importxml command

secondlife/scripted_agents/corrade/api/progressive/commands/exportxml.txt ยท Last modified: 2017/02/22 18:28 (external edit)

Access website using Tor


For the copyright, license, warranty and privacy terms for the usage of this website please see the license and privacy pages.