All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.adobe.epubcheck.ctc.Epub3StructureCheck Maven / Gradle / Ivy

Go to download

EpubCheck is a tool to validate IDPF EPUB files. It can detect many types of errors in EPUB. OCF container structure, OPF and OPS mark-up, and internal reference consistency are checked. EpubCheck can be run as a standalone command-line tool, installed as a Java server-side web application or used as a Java library.

The newest version!
package com.adobe.epubcheck.ctc;

import java.util.zip.ZipEntry;

import com.adobe.epubcheck.api.Report;
import com.adobe.epubcheck.ctc.epubpackage.EpubPackage;
import com.adobe.epubcheck.ctc.epubpackage.ManifestItem;
import com.adobe.epubcheck.ctc.xml.Epub3StructureHandler;
import com.adobe.epubcheck.ctc.xml.XMLContentDocParser;
import com.adobe.epubcheck.opf.DocumentValidator;
import com.adobe.epubcheck.util.SearchDictionary;
import com.adobe.epubcheck.util.SearchDictionary.DictionaryType;

/**
 *  ===  WARNING  ==========================================
* This class is scheduled to be refactored and integrated
* in another package.
* Please keep changes minimal (bug fixes only) until then.
* ========================================================
*/ public class Epub3StructureCheck implements DocumentValidator { private final Report report; private final EpubPackage epack; public Epub3StructureCheck(EpubPackage epack, Report report) { this.report = report; this.epack = epack; } @Override public boolean validate() { boolean result = false; SearchDictionary vtsd = new SearchDictionary(DictionaryType.VALID_TEXT_MEDIA_TYPES); for (int i = 0; i < epack.getManifest().itemsLength(); i++) { ManifestItem mi = epack.getManifest().getItem(i); if (vtsd.isValidMediaType(mi.getMediaType())) { XMLContentDocParser parser = new XMLContentDocParser(epack.getZip(), report); Epub3StructureHandler epub3StructureHandler = new Epub3StructureHandler(); String fileToParse = epack.getManifestItemFileName(mi); ZipEntry entry = epack.getZip().getEntry(fileToParse); if (entry == null) { // already reported in core checkers // report.message(MessageId.RSC_001, EPUBLocation.create(epack.getFileName()), fileToParse); continue; } epub3StructureHandler.setFileName(epack.getFileName()); epub3StructureHandler.setReport(report); parser.parseDoc(fileToParse, epub3StructureHandler); if (epub3StructureHandler.getSpecificTagsCount() > 0) { result = true; } } } return result; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy