[xiph-commits] r12891 - websites/xspf.org/validation
sping at svn.xiph.org
sping at svn.xiph.org
Sun Apr 22 16:44:37 PDT 2007
Author: sping
Date: 2007-04-22 16:44:37 -0700 (Sun, 22 Apr 2007)
New Revision: 12891
Added:
websites/xspf.org/validation/xspf-1_0.5.rnc
Log:
Compact Relax NG schema, made with Trang version 20030619
Added: websites/xspf.org/validation/xspf-1_0.5.rnc
===================================================================
--- websites/xspf.org/validation/xspf-1_0.5.rnc (rev 0)
+++ websites/xspf.org/validation/xspf-1_0.5.rnc 2007-04-22 23:44:37 UTC (rev 12891)
@@ -0,0 +1,102 @@
+# ==================================================================
+# Relax NG Schema for XSPF Version 1
+#
+# $Id$
+#
+# This schema was written as a service for developers who want
+# to validate the playlists generated by their applications.
+# Nobody claims it is perfect, so if you find bugs please report
+# them. In any case, the spec overrides this schema.
+#
+# Further information about XSPF is available at http://www.xspf.org
+#
+#
+# Copyright (c) 2005 Matthias Friedrich <matt at mafr.de>
+#
+# The schema is released under the Creative Commons
+# Attribution-ShareAlike 2.5 license.
+#
+# http://creativecommons.org/licenses/by-sa/2.5/
+#
+#
+# ChangeLog:
+# * 2007-02-16: Trang-friendly transformation of def_anything
+# Sebastian Pipping <webmaster at hartwork.org>
+#
+# * 2007-02-16: Interleave wrap for track and playlist
+# to allow arbitrary element order
+# Sebastian Pipping <webmaster at hartwork.org>
+#
+# * 2007-01-07: The info element's content has been changed from
+# type "text" to "anyURI", as per spec.
+# Matthias Friedrich <matt at mafr.de>
+#
+# * 2006-09-25: Fixed an error: the "attribution" element now allows
+# "identifier" child element elements, too.
+# Matthias Friedrich <matt at mafr.de>
+# ==================================================================
+
+default namespace = "http://xspf.org/ns/0/"
+
+start = def_playlist-element
+def_playlist-element =
+ element playlist {
+ attribute version {
+ xsd:string { pattern = "1" }
+ },
+ (element title { text }?
+ & element creator { text }?
+ & element annotation { text }?
+ & element info { xsd:anyURI }?
+ & element location { xsd:anyURI }?
+ & element identifier { xsd:anyURI }?
+ & element image { xsd:anyURI }?
+ & element date { xsd:dateTime }?
+ & element license { xsd:anyURI }?
+ & def_attribution-element?
+ & def_link-element*
+ & def_meta-element*
+ & def_extension-element*
+ & element trackList { def_track-element* })
+ }
+def_attribution-element =
+ element attribution {
+ (element identifier { xsd:anyURI }
+ | element location { xsd:anyURI })*
+ }
+def_link-element =
+ element link {
+ attribute rel { xsd:anyURI },
+ xsd:anyURI
+ }
+def_meta-element =
+ element meta {
+ attribute rel { xsd:anyURI },
+ text
+ }
+def_extension-element =
+ element extension {
+ attribute application { xsd:anyURI },
+ (element * { def_anything }
+ | text)*
+ }
+def_anything =
+ element * { def_anything }*
+ & attribute * { text }*
+ & text*
+def_track-element =
+ element track {
+ element location { xsd:anyURI }*
+ & element identifier { xsd:anyURI }*
+ & element title { text }?
+ & element creator { text }?
+ & element annotation { text }?
+ & element info { xsd:anyURI }?
+ & element image { xsd:anyURI }?
+ & element album { text }?
+ & element trackNum { xsd:nonNegativeInteger }?
+ & element duration { xsd:nonNegativeInteger }?
+ & def_link-element*
+ & def_meta-element*
+ & def_extension-element*
+ }
More information about the commits
mailing list