{
HandlerUtil.checkXMLVersion(parser);
checkedUnsupportedXmlVersion = true;
}
XMLElement e = parser.getCurrentElement();
String ns = e.getNamespace();
String name = e.getName();
String id = e.getAttribute("id");
if (ns.equals("http://www.daisy.org/z3986/2005/dtbook/"))
{
// link@href, a@href, img@src
String uri = null;
/*
* This section checks to see if the references used are registered
* schema-types and whether they point to external resources. The
* resources are only allowed to be external if the attribute
* "external" is set to true.
*/
if (name.equals("a"))
{
uri = e.getAttribute("href");
String external = e.getAttribute("external");
if (uri != null && external.equals("true"))
{
if (OPSHandler.isRegisteredSchemeType(uri))
{
uri = null;
}
else if (uri.indexOf(':') > 0)
{
parser.getReport().message(MessageId.OPF_021,
new MessageLocation(path, parser.getLineNumber(), parser.getColumnNumber()),
uri);
uri = null;
}
}
}
else if (name.equals("link"))
{
uri = e.getAttribute("href");
}
else if (name.equals("img"))
{
uri = e.getAttribute("src");
}
if (uri != null)
{
//TODO check if dtbook uses xml:base of so set third param
uri = PathUtil.resolveRelativeReference(path, uri, null);