|
From: Christoph P. <chr...@tu...> - 2003-04-28 11:54:50
|
Hi, although I'm not a developer, I wanted to pass my comments on the new DTD. Sorry if I mark things that have already been discussed, I didn't check m= uch of the archive. > Some attributes in this DTD take a value which is date-and-time. This > must be in bigendian form, YYYYMMDDHHMMSS, and in the timezone UTC > (GMT). It is up to applications to convert to and from the local > timezone if wanted. Just a very minor thing: ISO 8601 uses CCYY instead of YYYY. Is it an option to make it fully standard conform, i.e. with optional dashes, omittable values and a "T" between date and time? Maybe even day = of year, day of week notation. Thus with the channels from the example: <tv xml:lang=3D"de"> ... <timeslot start=3D"20:00:00" channel=3D"das-erste.de" liveness=3D"joined"= > <!-- daily --> <programme><title>Tagesschau</title></programme> </timeslot> <timeslot start=3D"T20" channel=3D"C3sat.de" liveness=3D"joined"> <programme><title>Tagesschau</title></programme> </timeslot> <!-- Now let's pretend there was a football live broadcast today --> <timeslot start=3D"2003-04-28T19:45" channel=3D"das-erste.de"> <programme><title>Tagesschau</title></programme> </timeslot> <timeslot start=3D"03-04-28T20:00" channel=3D"das-erste.de"> <programme><title>Sportschau extra</title> <title>Fu=DFballl=E4nderspiel Deutschland - Brasilien</title></programm= e> </timeslot> <timeslot start=3D"20030428194500" channel=3D"C3sat.de" liveness=3D"prere= corded"> <programme><title>Tagesschau</title></programme> </timeslot> ... </tv> > Within programme data, textual element content is normally free text > and has an optional 'lang' attribute associated with it (which should > look like 'en' or 'en_US'). Why not using the generic xml:lang and preferably "en-US" (with dash, not underscore)? > <generator-info href=3D"http://membled.com/work/apps/xmltv/"; /> Is that semicolon intentional? > <!ELEMENT tv (about?, (channel+, timeslot*)?)> xmlns? > <!ELEMENT about (copying*, source-info*, source-data*, generator-info*)= > <!ELEMENT about (copying*, source*, generator*)> <!ELEMENT source (info?, data?, desc?)> <!ELEMENT desc (#PCDATA)> > However it makes things like diffing easier if you write the channel > elements sorted by ASCII order of their ids. Ignoring the prepended "C", I presume. > <!ELEMENT channel (old-id*, display-name+, number*, icon*, link*)> > <!ELEMENT old-id EMPTY> Do you really need to allow multiple 'old-id's, could be an attrbiute to 'channel' else. > <!ATTLIST icon src CDATA #REQUIRED > width CDATA #IMPLIED > height CDATA #IMPLIED> 'type' for MIME-Type? If a UA doesn't know the type, it doesn't have to t= ry to open the ressource. > In HTML links have a URL ('href') and associated link text. Our links > are a bit more general because listings sources don't always have link > text, or they may have both some short link text and some extra > description. So the 'text' element gives link text to be underlined > in a browser, and 'desc' gives a longer description of what you might > find on the visited page. Could have been an attribute, like HTML's 'title', though. > 'encryption' is an application-defined value, Will porbably get the name of the scrambling system used? How's 'encryption=3D""' to be handled? > The 'code-time' element is to support systems like PDC A.k.a. VPS, I guess. > The 'code-num' element is for systems like VideoPlus A.k.a. ShowView, I guess. > Then comes the real content of a timeslot - one or more programmes. > Typically there will be exactly one, but some listings sources tend to > run together programmes not specifying when one ends and the next > begins, for example 'News followed by Weather'. That would become a > single timeslot containing two programmes. The programmes within a > timeslot are in time order. Too sad it's not (conveniently) possible to insert ad breaks, although of course no current programme listing provides that data. ['repeat' / 'premiere' / 'new-show'] 'pilot' would obviously indicate the very first episode (or episode zero)= of a show, regardless if it has been shown on this channel or elsewhere. 'season-pilot' and 'season-finale' are similarily obvious. You may think this was a duplication / shorthand for what is possible wit= h 'episode-details', but the airing definition of "pilot" and "finale" can differ from the filming definition. To help identify the menaing of 'repeat' and 'premiere', how about an attribute to specify whether a programme was produced a) by the channel itself or exclusively by a paid production company, b) by the channel in cooperation with some other channel(s), c) by a foreign channel, then bought, d) for cinema? And maybe a boolean 'syndication' attribute. I'm not sure that boolean attributes are better than a space or comma separated list of values of *one* attribute. <!ATTLIST programme repeat (yes | no) #IMPLIED premiere (yes | no) #IMPLIED last-chance (yes | no) #IMPLIED new-show (yes | no) #IMPLIED syndication (yes | no) #IMPLIED pilot (yes | no) #IMPLIED season-pilot (yes | no) #IMPLIED season-finale (yes | no) #IMPLIED produced (channel | coop | foreign | cinema) #IMPLIED > or <!ATTLIST programme repeat (premiere || repeat || syndication || last-chance= || new-show) #IMPLIED pilot (test | show | season | no) #IMPLIED finale (show | season | no) #IMPLIED produced (channel | coop | foreign | cinema | unknown) #IMPLIED > > <!ELEMENT director (#PCDATA)> > <!ELEMENT writer (#PCDATA)> > <!ELEMENT producer (#PCDATA)> > <!ELEMENT executive-producer (#PCDATA)> > <!ELEMENT presenter (#PCDATA)> > <!ELEMENT commentator (#PCDATA)> > <!ELEMENT guest (#PCDATA)> > <!ELEMENT narrator (#PCDATA)> > <!ELEMENT host (#PCDATA)> All these and others, like 'actor', should have an optional 'href' attribute, e.g. to IMDb. Or should one use XLink? > <!ELEMENT role (character?, actor)> Better make actor optional also, e.g. in cartoons you may have the characters, but not the people who speak them. > <!ATTLIST role guest (yes | no) #IMPLIED> Extending this to allow 'guest-star', 'guest', 'extra', 'cameo' would probably be overkill, no? > <!ELEMENT year EMPTY> > <!ATTLIST year production CDATA #IMPLIED > release CDATA #IMPLIED> > <!ELEMENT production (#PCDATA)> > <!ELEMENT release (#PCDATA)> Decide between attributes and elements. > <!ELEMENT category (text | category-code)> Is 'code' already taken elsewhere? > FIXME do we need 'length'? It was intended to be the real length > of the programme after removing advertising. Yes. Makes it easier to see whether the network edited a certain airing t= o surpass youth protection regulations. Although an extra attribute for tha= t issue would be nice. > <!ELEMENT series (title*)> I'm not an native English speaker, but isn't "season" less ambiguous? > <!ELEMENT video (black-and-white?, aspect?, quality?)> > <!ELEMENT quality (#PCDATA)> <!ATTLIST quality resolution-x CDATA #IMPLIED resolution-y CDATA #IMPLIED mode (progressive | interleaved | p | i) #IMPLIED bit-rate CDATA #IMPLIED -- etc. --> It's "(no-video | video?)" in 'programme', are you sure there'll never be= a way to allow video streams of different quality at the same time? E.g., w= hen a channel is aired both, digital and analog, the analog signal may be 4:3= & stereo, but the digital one 16:9 & Dolby. > <!ELEMENT audio (language*)> > <!ATTLIST audio channel CDATA #IMPLIED > polyphony (mono | stereo | quad | surround) #IMPLIED> What about movies with (optional) extra descriptions for the blind? <audio channel=3D"A"> <language><language-code code=3D"en-GB"/></language> </audio> <audio channel=3D"A"> <language><language-name xml:lang=3D"en">English audio descriptions </language-name></language> </audio> This way? > Subtitles. These can be 'onscreen' (superimposed on the > picture and impossible to get rid of), or they can be the kind that is > sent digitally and optionally displayed by the receiver. That in turn > can be 'teletext' (digital signal sent alongside an analogue picture) > or 'dvb' (sent as part of a wholly digital signal). Does 'teletext' include closed captioning (CC), used e.g. in the US? <!ATTLIST classification system CDATA #IMPLIED age CDATA #IMPLIED> <!ELEMENT star-rating (todd?)> <!ELEMENT todd EMPTY -- tip of the day --> |