Catch cxml errors when verifying.
[libdcp.git] / src / verify.cc
index a9036fd13294e4d529cd99647d347cd34a98577b..9a0895f6f8e79872c802aa3f552d8b0973baf0b3 100644 (file)
@@ -203,6 +203,7 @@ public:
                add("http://www.digicine.com/PROTO-ASDCP-CPL-20040511.xsd", "PROTO-ASDCP-CPL-20040511.xsd");
                add("http://www.digicine.com/PROTO-ASDCP-PKL-20040311.xsd", "PROTO-ASDCP-PKL-20040311.xsd");
                add("http://www.digicine.com/PROTO-ASDCP-AM-20040311.xsd", "PROTO-ASDCP-AM-20040311.xsd");
+               add("http://www.digicine.com/PROTO-ASDCP-CC-CPL-20070926#", "PROTO-ASDCP-CC-CPL-20070926.xsd");
                add("interop-subs", "DCSubtitle.v1.mattsson.xsd");
                add("http://www.smpte-ra.org/schemas/428-7/2010/DCST.xsd", "SMPTE-428-7-2010-DCST.xsd");
        }
@@ -276,6 +277,7 @@ validate_xml (T xml, boost::filesystem::path xsd_dtd_directory, list<Verificatio
                schema.push_back("PROTO-ASDCP-AM-20040311.xsd");
                schema.push_back("DCSubtitle.v1.mattsson.xsd");
                schema.push_back("DCDMSubtitle-2010.xsd");
+               schema.push_back("PROTO-ASDCP-CC-CPL-20070926.xsd");
 
                /* XXX: I'm not especially clear what this is for, but it seems to be necessary */
                string locations;
@@ -550,6 +552,8 @@ dcp::verify (
                        notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::GENERAL_READ, string(e.what())));
                } catch (XMLError& e) {
                        notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::GENERAL_READ, string(e.what())));
+               } catch (cxml::Error& e) {
+                       notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::GENERAL_READ, string(e.what())));
                }
 
                BOOST_FOREACH (shared_ptr<CPL> cpl, dcp->cpls()) {