XMLTV::ValidateFile - Validates an XMLTV file
Utility library that validates that a file is correct according to
http://wiki.xmltv.org/index.php/XMLTVFormat.
All these functions are exported on demand.
- LoadDtd
- Load the xmltv dtd. Takes a single parameter which is the name of the
xmltv dtd file.
LoadDtd must be called before ValidateFile can be called.
- ValidateFile
- Validate that a file is valid according to the XMLTV dtd and try to check
that it contains valid information. ValidateFile takes a filename as
parameter and optionally also a day and an offset and prints error
messages to STDERR.
ValidateFile returns a list of errors that it found with the
file. Each error takes the form of a keyword:
ValidateFile checks the following:
- notwell
- The file is not well-formed XML.
- notvalid
- The file does not follow the XMLTV DTD.
- invalidid
- An xmltvid does not look like a proper id, i.e. it does not match
/^[-a-zA-Z0-9]+(\.[-a-zA-Z0-9]+)+$/.
- duplicateid
- More than one channel-entry found for a channelid.
- unknownid
- No channel-entry found for a channelid that is used in a
programme-entry.
- noprogrammes
- No programme entries were found in the file.
- emptytitle
- A programme entry with an empty or missing title was found.
- emptydescription
- A programme entry with an empty desc-element was found. The desc-element
shall be omitted if there is no description.
- badstart
- A programme entry with an invalid start-time was found.
- badstop
- A programme entry with an invalid stop-time was found.
- badepisode
- A programme entry with an invalid episode number was found.
- missingtimezone
- The start/stop time for a programme entry does not include a
timezone.
- invalidtimezone
- The start/stop time for a programme entry contains an invalid
timezone.
- badiso8859
- The file is encoded in iso-8859 but contains characters that have no
meaning in iso-8859 (or are control characters). If it's iso-8859-1 (aka
Latin 1) it might be some characters in windows-1252 encoding.
- badutf8
- The file is encoded in utf-8 but contains characters that look strange. 1)
Mis-encoded single characters represented with [EF][BF][BD] bytes 2)
Mis-encoded single characters represented with [C3][AF][C2][BF][C2][BD]
bytes 3) Mis-encoded single characters in range [C2][80-9F]
- badentity
- The file contains one or more undefined XML entities.
If no errors are found, an empty list is returned.
It is currently necessary to specify the path to the xmltv
dtd-file. This should not be necessary.
Copyright (C) 2006 Mattias Holmlund.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.