XMLTV::ValidateFile - Validates an XMLTV file
Contents
Bugs
It is currently necessary to specify the path to the xmltv dtd-file. This should not be necessary.
Copyright
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.
perl v5.40.1 2025-04-19 ValidateFile(3pm)
Description
Utility library that validates that a file is correct according to
http://wiki.xmltv.org/index.php/XMLTVFormat.
Exported Functions
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.
Name
XMLTV::ValidateFile - Validates an XMLTV file
