These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
 

CCP XML API structure

Author
Cristian Ambaek
Lab 23
#1 - 2016-11-16 17:12:10 UTC  |  Edited by: Cristian Ambaek
Hi all

I have been putting together a Java library to recursively parse the different XML's made available by CCP for data extraction
and plotting them into different graphs.

XML call overview
http://eveonline-third-party-documentation.readthedocs.io/en/latest/xmlapi/index.html

And have been wondering about the XML structure, example
http://eveonline-third-party-documentation.readthedocs.io/en/latest/xmlapi/character/char_killmails.html

What is the higher meaning in how CCP structure these XML files?
All XML files return the
return
rowset
row
structure, with small changes for specific calls such as killmails that contains victim

Also a good example where all meaning (for me) goes out the window is rowset name="attackers"
'attackers' is an XML element called rowset with an attribute of name="attackers" instead of something like.
attacker
character
characterID-characterID
name-name
and so on.

What is the overall benefit for this extensive use of meta data in the way its done.

Are we saving 5 CPU cycles pr call?
Saving 2GB's pr user because they pre build these files and store them somewhere?
Is it just because this was the simpler solution?

Also attributes can't contain multiple values so CCP creates a "single" value as a continuesly string
Example: columns="value1,value2,value3,value4"

But if you created an XML element you would be able to assign that multiple values instead of creating a continuesly string.

If anyone has some knowledge about why this is done the way it currently is, please share your knowledge!

Thanks in advance.

Edit: Sorry for the formatting, but apparently you cant put anything that starts with < and is self closing even in code blocks. And a single character can break the forum with (input must not contain HTML)
Hel O'Ween
Men On A Mission
#2 - 2016-11-16 17:51:43 UTC
Cristian Ambaek wrote:

What is the higher meaning in how CCP structure these XML files?
All XML files return the
return
rowset
row
structure, with small changes for specific calls such as killmails that contains victim


That's basically MS SQL's built-in "Persist recordset as XML" - format.

EVEWalletAware - an offline wallet manager.

Cristian Ambaek
Lab 23
#3 - 2016-11-16 19:04:11 UTC  |  Edited by: Cristian Ambaek
Hel O'Ween wrote:
Cristian Ambaek wrote:

What is the higher meaning in how CCP structure these XML files?
All XML files return the
return
rowset
row
structure, with small changes for specific calls such as killmails that contains victim


That's basically MS SQL's built-in "Persist recordset as XML" - format.


Thanks Hel O'Ween!

Very helpful info. Though i think the output CCP delivers could be vastly improved.

I played around with my own MySQL server for generating XML and parsed it through XMLStarlet. Which was quite nice with little effort.
Jack Tronic
borkedLabs
#4 - 2016-11-17 07:57:33 UTC
Cristian Ambaek wrote:
Hel O'Ween wrote:
Cristian Ambaek wrote:

What is the higher meaning in how CCP structure these XML files?
All XML files return the
return
rowset
row
structure, with small changes for specific calls such as killmails that contains victim


That's basically MS SQL's built-in "Persist recordset as XML" - format.


Thanks Hel O'Ween!

Very helpful info. Though i think the output CCP delivers could be vastly improved.

I played around with my own MySQL server for generating XML and parsed it through XMLStarlet. Which was quite nice with little effort.


XML API is going away, it's not going to be improved.
Cristian Ambaek
Lab 23
#5 - 2016-11-17 21:22:36 UTC
Jack Tronic wrote:
Cristian Ambaek wrote:
Hel O'Ween wrote:
Cristian Ambaek wrote:

What is the higher meaning in how CCP structure these XML files?
All XML files return the
return
rowset
row
structure, with small changes for specific calls such as killmails that contains victim


That's basically MS SQL's built-in "Persist recordset as XML" - format.


Thanks Hel O'Ween!

Very helpful info. Though i think the output CCP delivers could be vastly improved.

I played around with my own MySQL server for generating XML and parsed it through XMLStarlet. Which was quite nice with little effort.


XML API is going away, it's not going to be improved.


Is it going out in favor of Crest?
Do you by any chance know when?
Tonto Auri
Vhero' Multipurpose Corp
#6 - 2016-11-19 19:27:06 UTC
If you plan to be an EVE tools developer, you should REALLY subscribe to EVE blogs. Both main and dev ones.
https://community.eveonline.com/news/dev-blogs/introducing-esi/

Two most common elements in the universe are hydrogen and stupidity. -- Harlan Ellison

Cristian Ambaek
Lab 23
#7 - 2016-11-21 13:00:32 UTC
Tonto Auri wrote:
If you plan to be an EVE tools developer, you should REALLY subscribe to EVE blogs. Both main and dev ones.
https://community.eveonline.com/news/dev-blogs/introducing-esi/


Thank you for the links! Will check them all out.

So far i dont plan on making anything available as a 3'rd party dev. Im just using the XML API for my own personal needs in terms of market and PI related information.
Golden Gnu
Garoun Investment Bank
Gallente Federation
#8 - 2016-11-21 22:33:42 UTC
I'm not sure it's relevant, but, there have been issues in the past (not sure about now) with the column attribute in the rowset elements missing data. So, do not rely on it, for anything...

Also, I want to point you to: https://github.com/ZyorTaelon/eveapi (just is case you don't want to reinvent the wheel)

Creator of jEveAssets - the asset manager

"Download is the meaning of life, upload is the meaning of intelligent life"