     ///
     /// - Parameter container: The EPUB container whom OPF file will be parsed.
     /// - Returns: The `Publication` object resulting from the parsing.
-    /// - Throws: `EpubParserError.xmlParse`,
-    ///           `OPFParserError.missingNavLink`,
-    ///           `throw OPFParserError.missingNavLinkHref`.
+    /// - Throws: `EpubParserError.xmlParse`.
     internal func parseOPF(from document: AEXMLDocument,
                            with container: Container,
                            and epubVersion: Double) throws -> Publication

        if let source = metadataElement["dc:source"].value {
            metadata.source = source
        }

        // Subject.
        if let subject = mp.subject(from: metadataElement) {
            metadata.subjects.append(subject)
        }

        // Languages.
        if let languages = metadataElement["dc:language"].all {
            metadata.languages = languages.map({ $0.string })


extension OPFParser: Loggable {}

enum OPFParserError: Error {
    /// The Epub have no title. Title is mandatory.
    case missingPublicationTitle
}

/// EpubParser support class, able to parse the OPF package document.
/// OPF: Open Packaging Format.
public class OPFParser {
