Just to showcase how much time I have, I've created a XML version of the AppInfo.ini including a Document Type Definition. Please note that although Firefox says the document is not valid XML, it lies. It's because it doesn't parse external DTDs.
Technical details follow.
Portable Application Information Description (PAID)
Each PAID document must conatin "appinfo" as the root element. The children of this element must be "name", "description", "guid", "version", "icons" and "launchers". It may also contain the optional "copyright" element.
"appinfo" must have a 'version' attribute. This identifies the version of PAID used within the document.
"name" must consist of only Unicode text, hereby known as PCDATA. This will be used as the display name for the application and may contain numbered entities.
"description" must consist of only PCDATA. This will be used as the description for the application.
"guid" must be a Globally Unique Identifier. This will be used internally to identify each application package. This should not change between versions.
"version" must be a version number for the application, in the format 0.0.0.0, the same used by the Microsoft Windows operation system.
"icons" must be a list of "icon" elements. It must contain at least one (1) "icon" element.
"icon" is the description of a single icon. It must contain the 'location' attribute, which specifies the location of the icon, relative to the current document. It may contain the 'type' attribute, which is the IANA registered MIME type. If no 'type' attribute is specified, it will default to "image/vnd.microsoft.icon", the type for .ico files.
"launchers" must be a list of "launcher" elements. It must contain at least one (1) "launcher" element.
"launcher" is the description of a single launcher. It must contain the 'location' attribute, which specifies the location of the launcher, relative to the current document. It may contain the 'name' attribute, which is the name of that specific launcher. It may also contain the 'parameters' attribute, which specifies any command line parameters to pass to the launcher.
"copyright" is an optional element which should contain a copyright statement for the application package. It may contain the "formatcopyright" entity which credits the format's authors.
An example of a conforming XML file is available from
http://cubegames.net/appinfo.xml
The DTD for PAID is available from
http://cubegames.net/appinfo.dtd
The DTD may be included in your document by using the following Document Type Declaration:
<!DOCTYPE appinfo PUBLIC "-//portableapps.com//DTD PAID 1.0//EN" "http://cubegames.net/appinfo.dtd">
----
Ryan McCue
How much does this cost to use? First thing I think of when I hear PAID.
Looks good though.
-----
In a perfect world Wiis would be free.
In an imperfect world only wheees are free.
cowsay Moo
cowthink 'Dude, why are you staring at me.'
Heh. I came up with the name and then when I went to make the acronym it turned out to be a word.
And an addition to your signature:
In our world, only wees are free.
----
Ryan McCue.
Blog.
So all that Airbus-delay trouble over here in Europe is because of YOU!
Simeon.
"If you're not part of the solution, you're part of the precipitate."
Whats the practical use of this?
“I can live with doubt and uncertainty and not knowing. I think it is much more interesting to live not knowing than to have answers that might be wrong.” - Richard P. Feynman
"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate
Extensible, open format, cooler than INI files, more ways to read them and I have too much spare time
----
Ryan McCue.
Blog.
So all that Airbus-delay trouble over here in Europe is because of YOU!
Simeon.
"If you're not part of the solution, you're part of the precipitate."
why don't you write a proggy that reads all the info from the appinfo folders and displays them nicely (with icons!)as a html file???
Or you could do DMFFP for Thunderbird (but I admit that doing something like this is more fun than DMTBP ;))
Or you could send some spare time to John. I think he'd welcome it :lol:
“I can live with doubt and uncertainty and not knowing. I think it is much more interesting to live not knowing than to have answers that might be wrong.” - Richard P. Feynman
"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate
I'm going to write one, I just have to get the code sorted.
And DMTBP will be coming some time soon.
And I've offered John some of my time (i.e. reading emails, etc).
----
Ryan McCue.
Blog.
So all that Airbus-delay trouble over here in Europe is because of YOU!
Simeon.
"If you're not part of the solution, you're part of the precipitate."
of doing it myself and I even invested some thoughts but then other stuf became more important.
But I will be most happy to "un-bug" & test it.
“I can live with doubt and uncertainty and not knowing. I think it is much more interesting to live not knowing than to have answers that might be wrong.” - Richard P. Feynman
"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate
Is there a reason why you used an "older" DTD file instead of a "newer" XML schema file (XSD)?
Cancer Survivors -- Remember the fight, celebrate the victory!
Help control the rugrat population -- have yourself spayed or neutered!
Easier since I don't need any of the features of the XSD files. I'm planning to do a XSD eventually (i.e. now).
----
Ryan McCue.
Blog.
So all that Airbus-delay trouble over here in Europe is because of YOU!
Simeon.
"If you're not part of the solution, you're part of the precipitate."
I'd like to know how this will be used. It's all good looking and it may be more manageable, but will everyone else find it easy to use? How will it incorporate into the installer/launcher? I'd like to see an app with it in as an example.
(This ain't me having a bash, you've piqued my interest :D)
_____________________________________________
Is there any way to take that with me? No? Give me 10 minutes... Maybe an hour...
Is there any way to take that with me? No? Give me 10 minutes... Maybe an hour...
Hopefully it will be used in the menu instead of the appinfo.ini we have at the moment.
I'm building an app which will parse it at the moment.
----
Ryan McCue.
Blog.
So all that Airbus-delay trouble over here in Europe is because of YOU!
Simeon.
"If you're not part of the solution, you're part of the precipitate."
Maybe the next version of the schema could include a URL to check for updates. That way you could write an application go thru the entire app structure parsing the XML files and checking for updates of the apps. An Auto-Updater.
Or...you could have the local application doing the updating go out to the internet and download another "master" XML file then use the GUID to look for the app listed in that file and then use the link in THAT file to go and do an update from. This would leave all the info on the portable device as static except for the URL to get the XML file and store all the URLs pointing to the latest version of the apps in an online XML file that would be a lot easier to update. the app dev would just need to update their XML file on the internet to "release" and update. Also, you could use XSLT file to turn the XML file on the internet into an RSS feed people could subscribe to and be notified of updates that way too.
Reason I bring this up is because I've already written XML/XSLT for a work project that uses VBScript to parse an XML file looking for WinXP and MS Office updates, looking for info about the patch in the registry, and then installing the patch if it's needed. The XSLT makes it all pretty so it can be viewed online and then I hadn't gotten around to writing the XMLT -> RSS format XSLT stylesheet yet. I ahd the thing 90% working, and then really deployed it into use since there won't be anyone "code smart" after me to maintain it so it would die off and never be used in the future once I leave this position.
(Lets not diverge this thread off into talking about an auto-update system and the good/bad of that...only talk about how this XML schema could help in that endeavor or other things...think outside the box. Thank you.)
Cancer Survivors -- Remember the fight, celebrate the victory!
Help control the rugrat population -- have yourself spayed or neutered!
Well, I'm writing it now, so I'll take that into mind.
I'm planning to add support for multiple applications under the one file.
----
Ryan McCue.
Blog.
So all that Airbus-delay trouble over here in Europe is because of YOU!
Simeon.
"If you're not part of the solution, you're part of the precipitate."
Some applications especially the ones portableized by JauntPE always say "JauntPE" as the app name. Even though the app name is different. If this could be added into pam or if there is already a way to do that? Please let me know? It would same a lot of time for me!
We won't be using XML-based appinfo or config files. It's overkill. More work for no benefit.
Sometimes, the impossible can become possible, if you're awesome!
But it was a fun XML learning exercise for me
----
Ryan McCue.
Blog.
So all that Airbus-delay trouble over here in Europe is because of YOU!
Simeon.
"If you're not part of the solution, you're part of the precipitate."