Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Export to XML

Kex Godel
Master Slacker
Join date: 14 Nov 2003
Posts: 869
12-19-2003 12:35
Would it be possible in the future to consider allowing us to export an object to an XML document which fully describes all the attributes relevant to the prims that make up the object?

I'm just a bit worried about losing my work if something horrible happens to the database. I've just read some comments that some people are having odd problems which makes me a little uncomfortable.

The ability to make a simple XML export would make me feel a lot safer about putting time into complex builds in the future.

Also, if we could export our body shape attributes to XML it would be great. I'm going to be doing this manually later on today after hearing about someone who suddenly lost their AV recently.

Thanks

-- Kex
Oz Spade
ReadsNoPostLongerThanHand
Join date: 23 Sep 2003
Posts: 2,708
12-19-2003 15:55
Eeep thats scary, I wouldn't mind some feature that saves objects and avatars onto your computer then you can upload them later if something happens. Of course this leaves open the possibility of someone altering them and using illegal properties, so maybe do some sort of security check like have MD5 checksums where SL checks the checksums to make sure no one altered the files before uploading them to the server.
_____________________
"Don't anticipate outcome," the man said. "Await the unfolding of events. Remain in the moment." - Konrad
Carnildo Greenacre
Flight Engineer
Join date: 15 Nov 2003
Posts: 1,044
12-19-2003 16:14
A straight checksum wouldn't work -- you just make changes and recompute the checksum, but a checksum signed by the Linden Labs private key would.
_____________________
perl -le '$_ = 1; (1 x $_) !~ /^(11+)\1+$/ && print while $_++;'
Huns Valen
Don't PM me here.
Join date: 3 May 2003
Posts: 2,749
Bad Geometry
12-19-2003 16:31
If you have something with bad geometry, the viewer will tell you so, delete the object, and refund your money. I've seen it happen when you change the building block type on a primitive, and there's some attribute that won't translate over.

I think this is a great idea. Backing stuff up like this would enable people to save copies of important things, then if they leave the game for a while and their stuff gets nuked (like WizGamer did) they still have a "hard copy" of it for when they come back.

One caveat (aside from obvious input validation when the person re-uploads the XML) would be to check for permissions on the object... if it's no-transfer or no-copy and you didn't build it, the viewer shouldn't allow export, because then you could just e-mail the XML to all your friends.

One bonus would be that if they let us export avatar XML, we'd have the basis of allowing a user-created avatar editor. Maybe even allow us to use Poser.
Sincerity Lorentz
Junior Member
Join date: 29 Nov 2003
Posts: 11
Re: Bad Geometry
12-20-2003 16:40
From: someone
Originally posted by Huns Valen
One bonus would be that if they let us export avatar XML, we'd have the basis of allowing a user-created avatar editor. Maybe even allow us to use Poser.


This would be crazy cool, yeah. And why limit it to just avatars? Why not allow external/offline object creation? I'd love to have a local SL sandbox where I could create stuff offline and then upload it when it's done. Really handy when it comes to getting textures right.

Export files might also help to solve some copyright disputes if they ever crop up; make a hardcopy of your export file and mail it to yourself, leaving it sealed. It's a classic copyright assertion technique because the post-mark is a universally accepted proof of date (as long as the letter stays sealed).
Lordfly Digeridoo
Prim Orchestrator
Join date: 21 Jul 2003
Posts: 3,628
12-20-2003 16:48
Exporting things to the hard drive leaves exploits..

What if you made a 300x300x300 prim? Or a prim with .00000001 on an axis? It'd blow up the database on the server.

LF
_____________________
----
http://www.lordfly.com/
http://www.twitter.com/lordfly
http://www.plurk.com/lordfly
Oz Spade
ReadsNoPostLongerThanHand
Join date: 23 Sep 2003
Posts: 2,708
12-20-2003 17:20
Thats why you need precauctions to make sure it isn't that before uploading, checksums, having the server check the size as huns thought of, or something else.
_____________________
"Don't anticipate outcome," the man said. "Await the unfolding of events. Remain in the moment." - Konrad
Sincerity Lorentz
Junior Member
Join date: 29 Nov 2003
Posts: 11
12-20-2003 17:24
From: someone
Originally posted by Lordfly Digeridoo
Exporting things to the hard drive leaves exploits..

What if you made a 300x300x300 prim? Or a prim with .00000001 on an axis? It'd blow up the database on the server.


I'm sure that the SL coders can write a simple file checker, don't worry :)

After all, the first rule of accepting any user input is to check/limit it. I would think that this is already being done.
Mezzanine Peregrine
Senior Member
Join date: 14 Nov 2003
Posts: 113
12-20-2003 19:26
If you could export, but not import, it could still be useful. You could feed the result to a raytracer for making pretty pictures :)
Khamon Fate
fategardens.net
Join date: 21 Nov 2003
Posts: 4,177
12-20-2003 19:36
it would be very very very very very nice to have an offline editor that we could use to build objects and apply textures to see if the textures worked. i've spent billions, well that's a lie, i've spent trillions uploading textures that are just not quite right and have to be repaired locally then uploaded again and again and again.

maybe i'll get better at producing them and spend less over time. maybe. i'd still like a local building environment.
Sincerity Lorentz
Junior Member
Join date: 29 Nov 2003
Posts: 11
12-21-2003 05:36
From: someone
Originally posted by Khamon Fate
it would be very very very very very nice to have an offline editor that we could use to build objects and apply textures to see if the textures worked. i've spent billions, well that's a lie, i've spent trillions uploading textures that are just not quite right and have to be repaired locally then uploaded again and again and again.


And we can call it The Construct and get sued by the Wachowski Brothers. :D
Nexus Nash
Undercover Linden
Join date: 18 Dec 2002
Posts: 1,084
12-21-2003 08:17
no
_____________________
Eggy Lippmann
Wiktator
Join date: 1 May 2003
Posts: 7,939
12-21-2003 14:48
From: someone
Originally posted by Sincerity Lorentz
I'm sure that the SL coders can write a simple file checker, don't worry :)

After all, the first rule of accepting any user input is to check/limit it. I would think that this is already being done.

Dave Zeeman has bigger prims than that :)
He once made a prim that covered the whole world. It didnt blow up any server :)
Khamon Fate
fategardens.net
Join date: 21 Nov 2003
Posts: 4,177
12-21-2003 17:02
nexus are you saying no to the offline editor or no to calling it "the construct." i wouldn't call it "the construct." i would call it khamon's offline object liaison.

kool

okay maybe liaison is a bit of a stretch but i can ramble on with a justification until y'all get tired of listening and say "okay khamon we'll call it kool."
Nexus Nash
Undercover Linden
Join date: 18 Dec 2002
Posts: 1,084
12-21-2003 17:37
no to offline stuff! I understand your worries, but I remember WAY back in the day we had this discussion. From what I remember, the SL system is totaly different and can't be exported into an existing app. I might be wrong, it's been a while. If you can check the forums around last FEB.
_____________________
Oz Spade
ReadsNoPostLongerThanHand
Join date: 23 Sep 2003
Posts: 2,708
12-21-2003 19:19
It would take alot of work but maybe have stuff exportable into other Linen world software. Like have a LL Previewer or a sim that lives on your computer called "Offline", and when you load up the SL client theres an option in a menu to go into your "Offline" sim.

I'm too lazy to go back looking at other posts so you can just shoot this idea down if its already been suggested etc. :P
_____________________
"Don't anticipate outcome," the man said. "Await the unfolding of events. Remain in the moment." - Konrad
Carnildo Greenacre
Flight Engineer
Join date: 15 Nov 2003
Posts: 1,044
12-21-2003 22:28
From: someone
Originally posted by Nexus Nash
no to offline stuff! I understand your worries, but I remember WAY back in the day we had this discussion. From what I remember, the SL system is totaly different and can't be exported into an existing app.


If there was an XML export for SecondLife objects, I figure it'll take me about 15-20 minutes to write a simple converter to use POV-Ray to render them. It'll take me longer (a few days, maybe) to write an importer for the Moray modeller, but that's just because I don't know the details of the Moray file format.
_____________________
perl -le '$_ = 1; (1 x $_) !~ /^(11+)\1+$/ && print while $_++;'
Kex Godel
Master Slacker
Join date: 14 Nov 2003
Posts: 869
01-05-2004 12:51
A lot of good ideas, but I don't want the original, SIMPLE idea to be lost.

I just want a safe way to backup my objects and/or my avatar, even if I have to hand-enter all the numbers to put them back into the world, that's fine.

I just hope to see some way to easily get a copy of everything I have made. This goes along with the philosophy that we own what we create, so why not make it easy for us to save our creations locally?

I just want something simple like:

<object uuid="69c6a19d-305b-18db-b011-935e90f59ef4">
<name>Test Object</name>
<description>this is a test</description>
<creator>Kex Godel</creator>
<owner>Kex Godel</owner>
<acquired>Sat Jan 03 21:40 51 2004</acquired>
<group></group>

<permissions>
<groupShare flag="no"/>
<anyCanMove flag="no"/>
<anyCanCopy flag="no"/>
<nextMod flag="yes"/>
<nextCopy flag="yes"/>
<nextTrans flag="yes"/>
<sale flag="no" type="copy" amount="10"/>
</permissions>

<attributes>
<locked flag="no"/>
<physical flag="yes"/>
<phantom flag="no"/>
<tempOnRez flag="no"/>
</attributes>

<prim type="cube" index=1>
<name>Object</name>
<description>;(no description)</description>
<material type="wood"/>

<geometry>
<relPos x="1.25000" y="1.00000" z="0.00000"/>
<relRot x="0.00000" y="0.00000" z="-0.70711" w="0.70711"/>
<size x="0.50000" y="0.50000" z="0.50000"/>
<cut start="0.00" end="0.00">
<twist angle="0">
<top x="1.0" y="1.0">
</geometry>

<texture>
<allSides>
<name>blank white</name>
<uuid>5d6015df-5acd-8e6d-8a2a-23b44770e400</uuid>
<scaling h="1.000" v="1.000">
<offset r="0.000" t="0.000">
</allSides>
<color r="1.0" g="1.0" b="1.0"/>
<shine level="none"/>
<bump type="none"/>
</texture>

<content>
<object>e320185e-b805-6eb2-ed73-6f5afbb76a82</object>
<sound>c01d8740-5de5-2407-5323-d2a87b925a2c</sound>
<note>8bcbb3b9-984f-dba0-4309-620daa383d9e</note>
<script>8ca54045-13a0-7ce5-05a2-1576f653b15d</script>
</content>

</prim>

<prim type="sphere" index=2>
...
</prim>

<prim type="sphere" index=3>
...
</prim>

...

</object>

Now, I did nearly all this from memory and I'm no expert on XML, but this is an example of what I'd like to see =D
Kex Godel
Master Slacker
Join date: 14 Nov 2003
Posts: 869
01-05-2004 12:55
BTW, upon review I did notice some errors, but I dare not edit it as it probably won't work with all those greater-than and less-than symbols and quotes and everything (most forums don't handle it well, so I'm not abou to try it)...

Just the general idea is what I'm trying to give an example of...
Kex Godel
Master Slacker
Join date: 14 Nov 2003
Posts: 869
01-13-2004 09:08
I'm bumping this thread because this incident makes the point that we need this feature all the more vivid:

/invalid_link.html
Phoenix Linden
SL's Angel of Death
Join date: 3 Dec 2002
Posts: 168
01-13-2004 10:07
There is no secure way to implement this feature that also meets the need for asset backup under catastrophic data loss. If you have a way to export it, we have to have a way to validate it has not been changed on upload. That means we have to store some kind of validation information. In the event of data loss, the validation information could be lost, and your asset would be 'lost' even though you have it in your hard drive.

Content export has been discussed before, and may be implemented some day, but it will not be a holy grail of distributed content backup.
Jack Digeridoo
machinimaniac
Join date: 29 Jul 2003
Posts: 1,170
01-13-2004 10:12
Instead of validating it hasn't changed, just check that it meets the specs that the SL Client abides by when creating objects. Then, like someone else suggested in this thread, someone can create an offline object editor. Then we can do backups and external object creation. XML would also be great for bulk search and replace.
Kex Godel
Master Slacker
Join date: 14 Nov 2003
Posts: 869
01-13-2004 11:18
Thanks for responding Phoenix! =D

I understand that it may be difficult right now to import data back into SL. For now, I don't mind that limitation.

All I want is export.

I know, it will be a headache to re-enter all those numbers and attributes by hand, but at least I won't have to export them by hand also.

Here's a possible a timeline for implementing offline backups. This timeline starts with the most critical, but most simple and works to the more complex, less critical:

Short term:

1) Allow player to export objects that THEY are the creator of. This gives the player at least some *hope* of re-creating lost objects by either manually re-importing them by hand, or waiting for #2 to come along...

Mid term:

2) Allow player to import their exported objects from #1. No reference need be made to the old UUID - create brand new objects in the system based off the exported attributes.

Long term:

3) Implement secure system to allow players to export encrypted/hashed copies of descriptions for objects which they are not the creator of.

4) Implement import for encrypted objects in #3. Authenticate they have not been modified by using modern tamper detection methods inherent in most public-key encryption systems.
Carnildo Greenacre
Flight Engineer
Join date: 15 Nov 2003
Posts: 1,044
01-13-2004 12:34
From: someone
Originally posted by Phoenix Linden
There is no secure way to implement this feature that also meets the need for asset backup under catastrophic data loss. If you have a way to export it, we have to have a way to validate it has not been changed on upload. That means we have to store some kind of validation information. In the event of data loss, the validation information could be lost, and your asset would be 'lost' even though you have it in your hard drive.


Why is encryption of the backup (or better, encryption of a checksum of the backup) not sufficient? If you use public-key encryption, you can be certain that the backup (or checksum) was encrypted by the SecondLife server, and you can prevent (or detect) any modification. The only data that Linden Labs needs to keep in order to allow people to restore their backups are the public and private keys used to encrypt the backups.
_____________________
perl -le '$_ = 1; (1 x $_) !~ /^(11+)\1+$/ && print while $_++;'
Sincerity Lorentz
Junior Member
Join date: 29 Nov 2003
Posts: 11
01-13-2004 13:51
From: someone
Originally posted by Carnildo Greenacre
Why is encryption of the backup (or better, encryption of a checksum of the backup) not sufficient?
(...)
The only data that Linden Labs needs to keep in order to allow people to restore their backups are the public and private keys used to encrypt the backups.


I think what Phoenix means is that (to use your example), if you're in a state to have lost that kind of data, there's no guarantee you'd have a copy of the private key to decrypt/verify the backup.

I've some small experience in similar matters, so I can understand that the problem is very complex. It's not even just about checking that the data has come from the SL server or that it's reasonable data - a lot can change over time. What if you had a house in one location that you'd backed up nicely last month, and since then you'd moved away and someone else had taken that plot of land before the server lost its data? You could remove or replace the location data in the backup, but then it'd be modified and wouldn't check out any more.

And quite apart from the data aspect of things, there's the other guy. A backup is never up-to-the-minute, and there'd be social and political issues involved. SL could end up in a position where they couldn't know for sure who was the last person to own a piece of land, or a given object. If you kept backups but the person who bought the land from you didn't, you might get it all back and they'd be short-changed. This particular example may have easy solutions, it was just off the top of my head, but it's indicative of the world of pain that distributed personal backups can cause. At least a remote storage LAN (for example) has the benefit of consolidated consistency. That is, it might be old or gone altogether, but at least all the pieces fit together, and come from the same puzzle :)

Nevertheless, the ability to import and export data from SL would be really nice. You can't please everyone with the same modeller, simply because people don't all think the same. Opening up some restricted, well-checked interface for people to save and modify objects offline would make a lot of people happy. The interface could even be one to the client rather than the server, meaning that you'd be instructing the SL client to carry out instructions rather like playing back a macro. Then every action would be subject to the existing checks that the server runs. There'd still be issues such as people using the software to do "flash object-spamming", or "flashing", or occasionally dropping houses on each other's heads, but they wouldn't be able to do it any worse than they could now with a little dedication and a fast mouse pointer :)
1 2