Hi, I made a RELAX NG schema for this format. This can be used for example to instantly validate your XML using nXML-mode in Emacs. I made this for fun - I wanted to learn about RELAX NG when this came up - so I have no idea if it is useful. Also, obviously it is based on my own interpretations and guesses based on your example and spec. Maybe it can be a good way to clarify what is intended to be allowed and not, even if a strict "all XML has to be validated!" kind of thinking isn't applied. Attaching file in RELAX NG compact notation.
(I just found now before sending this mail that there is already an XML Schema for AppStream, so maybe that is more useful. Don't quite understand what the relation between AppStream and AppData is.) Regards, Simon Kågedal Reimer On Thu, Aug 29, 2013 at 10:07 PM, Richard Hughes <[email protected]> wrote: > Do you maintain an application that people use? Do you want people to > be able to install it easily in the GNOME Software Center? > > If both of those are true, please read the newly finalised AppData > specification [ http://people.freedesktop.org/~hughsient/appdata/ ] > and ship one tiny extra file in your tarball for 3.10. > > People will love you for doing it, and I’ll really appreciate it. > Maybe post 3.10 we can do a GNOME Goal for all the core GNOME modules, > but of course this applies to GNOME, KDE, XFCE and random standalone > apps. > > Any questions, send me email or grab me on IRC. Thanks! > > Richard > _______________________________________________ > desktop-devel-list mailing list > [email protected] > https://mail.gnome.org/mailman/listinfo/desktop-devel-list
# RELAX NG schema for http://people.freedesktop.org/~hughsient/appdata/ # # Written by Simon Kågedal Reimer 2013 <[email protected]> # Released as Public Domain (CC0 1.0) start = application application = element application { id & licence & name? & summary? & description & screenshots? & url* & updatecontact? } id = element id { # Other types? attribute type { string "desktop" }, text } # Other licences? Worth restricting this at all, or use free content? licence = element licence { string "CC0" | string "CC BY" | string "CC BY-SA" } name = element name { text } summary = element summary { text } description = element description { (p | ul | ol)* } p = element p { text } ul = element ul { Entries } ol = element ol { Entries } Entries = element li { text }+ screenshots = element screenshots { screenshot+ } screenshot = element screenshot { attribute type { string "default" }?, # Other types? attribute width { xsd:integer }, attribute height { xsd:integer }, xsd:anyURI } url = element url { attribute type { string "homepage" }?, # Other types? xsd:anyURI } updatecontact = element updatecontact { text }
_______________________________________________ desktop-devel-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/desktop-devel-list
