[Playlist] DTD for XSPF
Hans Engel
engel at engel.uk.to
Sun Dec 9 05:40:10 UTC 2007
No, I have not yet done so, but I will right now. Here are the results,
checked with xmlstarlet and my DTD:
Pass:
playlist-empty-annotation.xspf OK
playlist-empty-creator.xspf OK
playlist-empty-meta.xspf OK
playlist-empty-title.xspf OK
playlist-extension.xspf !1
playlist-extensive.xspf !2
playlist-inverted-order.xspf !3
playlist-namespace-nested-proper.xspf !4
playlist-namespace-nondefault.xspf !
playlist-namespace-two-additions.xspf !
playlist-relative-paths.xspf OK
playlist-whitespace-dateTime.xspf OK
track-empty-album.xspf OK
track-empty-annotation.xspf OK
track-empty-creator.xspf OK
track-empty-meta.xspf OK
track-empty-title.xspf OK
track-extension.xspf OK
track-extensive.xspf !2
track-inverted-order.xspf !3
track-whitespace-anyURI.xspf OK
track-whitespace-nonNegativeInteger.xspf OK
------------------------------------------------------------------
Fail (OK is good here):
playlist-attribute-forbidden-annotation.xspf OK
playlist-baddate.xspf !2
playlist-badversion.xspf !2
playlist-broken-relative-paths.xspf !2
playlist-element-forbidden-attribution.xspf OK
playlist-markup-annotation.xspf OK
playlist-markup-creator.xspf OK
playlist-markup-meta.xspf OK
playlist-markup-title.xspf OK
playlist-missingtracklist.xspf OK
playlist-missingversion.xspf OK
playlist-namespace-missing.xspf !
playlist-namespace-nested-broken.xspf OK
playlist-namespace-wrong-string.xspf !
playlist-nonleaf-content-attribution.xspf OK
playlist-nonleaf-content-playlist.xspf OK
playlist-nonleaf-content-trackList.xspf OK
playlist-noturi-attribution-identifier.xspf !2
playlist-noturi-attribution-location.xspf !2
playlist-noturi-extension.xspf !2
playlist-noturi-identifier.xspf !2
playlist-noturi-image.xspf !2
playlist-noturi-info.xspf !2
playlist-noturi-license.xspf !2
playlist-noturi-link-content.xspf !2
playlist-noturi-link-rel.xspf !2
playlist-noturi-location.xspf !2
playlist-noturi-meta.xspf !2
playlist-root-name.xspf OK
playlist-toomany-annotation.xspf OK
playlist-toomany-attribution.xspf OK
playlist-toomany-creator.xspf OK
playlist-toomany-date.xspf OK
playlist-toomany-identifier.xspf OK
playlist-toomany-image.xspf OK
playlist-toomany-info.xspf OK
playlist-toomany-license.xspf OK
playlist-toomany-location.xspf OK
playlist-toomany-title.xspf OK
playlist-toomany-tracklist.xspf OK
track-badint-duration.xspf !2
track-badint-tracknum.xspf !2
track-markup-album.xspf OK
track-markup-annotation.xspf OK
track-markup-creator.xspf OK
track-markup-meta.xspf OK
track-markup-title.xspf OK
track-nonleaf-content.xspf OK
track-noturi-extension.xspf !2
track-noturi-identifier.xspf !2
track-noturi-image.xspf !2
track-noturi-info.xspf !2
track-noturi-link-rel.xspf !2
track-noturi-link.xspf !2
track-noturi-location.xspf !2
track-noturi-meta-rel.xspf !2
track-toomany-album.xspf OK
track-toomany-annotation.xspf OK
track-toomany-creator.xspf OK
track-toomany-duration.xspf OK
track-toomany-image.xspf OK
track-toomany-info.xspf OK
track-toomany-title.xspf OK
track-toomany-tracknum.xspf OK
track-whitespace-in-between.xspf !2
xml-error.xspf OK
!1 - The inflexibility of DTDs has caused an error with this file,
because of the element <track> used inside the extension. <track> is
declared elsewhere, and it's confusing the parser.
!2 - Again, the inflexibility of DTDs are causing the problem here. I'll
try to figure out a way around this.
!3 - This one is my fault; I didn't pause to think that the elements
could be put in any random order.
!4 - I did not add the "xmlns" attribute to every element.
------------------------------------------------------------------
Hm, well that really proved how bad DTDs are. I will fix with the DTD
what I can, but most of the problems here are due to the inflexibility
of the DTD format.. RNG is just better overall. I suppose that's why I'm
the first to make this DTD.
On Sat, 2007-12-08 at 16:36 -0800, Lucas Gonze wrote:
> Many thanks for making this, Engel.
>
> Have you tested it against the testcases at
> https://trac.xiph.org/browser/trunk/xspf/testcase? If so, how did it fare?
>
>
>
> Hans Engel wrote:
> > I forgot to add: This DTD was made from the Relax NG Schema on the XSPF
> > site.
> >
> > On Sat, 2007-12-08 at 14:44 -0700, Hans Engel wrote:
> >> Hi,
> >> I just finished developing a DTD (Document Type Definition) for XSPF to
> >> use. This way, a doctype can be declared in each XSPF file and be more
> >> easily validated.
> >>
> >> You can download the doctype here:
> >>
> >> http://engel.uk.to/etc/xspf.dtd
> >>
> >> To reference this doctype in your XSPF files, insert this line before
> >> "<?xml":
> >>
> >> <!DOCTYPE playlist PUBLIC "XSPF" "http://engel.uk.to/etc/xspf.dtd">
> >>
> >> Thanks,
> >> Engel
> >>
> >>
> >> _______________________________________________
> >> Playlist mailing list
> >> Playlist at lists.musicbrainz.org
> >> http://lists.musicbrainz.org/mailman/listinfo/playlist
> >
> >
> > _______________________________________________
> > Playlist mailing list
> > Playlist at lists.musicbrainz.org
> > http://lists.musicbrainz.org/mailman/listinfo/playlist
> >
> >
>
>
> _______________________________________________
> Playlist mailing list
> Playlist at lists.musicbrainz.org
> http://lists.musicbrainz.org/mailman/listinfo/playlist
More information about the Playlist
mailing list