void parseManifest()

in taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/OdfPackage.java [720:766]


	void parseManifest() throws Exception {
		InputStream is = getInputStream(OdfPackage.OdfFile.MANIFEST.packagePath);
		if (is == null) {
			mManifestList = null;
			mManifestEntries = null;
			return;
		}

		mManifestList = new LinkedList<>();

		SAXParserFactory factory = SAXParserFactory.newInstance();
		factory.setNamespaceAware(true);
		factory.setValidating(false);
		try {
			factory.setFeature(
					"http://apache.org/xml/features/nonvalidating/load-external-dtd",
					false);
		} catch (Exception ex) {
			mLog.log(Level.SEVERE, null, ex);
		}

		SAXParser parser = factory.newSAXParser();
		XMLReader xmlReader = parser.getXMLReader();
		// More details at http://xerces.apache.org/xerces2-j/features.html#namespaces
		xmlReader.setFeature("http://xml.org/sax/features/namespaces", true);
		// More details at http://xerces.apache.org/xerces2-j/features.html#namespace-prefixes
		xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes",
				true);
		try {
			// More details at http://xerces.apache.org/xerces2-j/features.html#xmlns-uris
			xmlReader.setFeature("http://xml.org/sax/features/xmlns-uris", true);
		} catch (SAXException ex) {
			mLog.log(Level.FINE, "Can't set XML reader feature xmlns-uris", ex);
		}

		String uri = mBaseURI + OdfPackage.OdfFile.MANIFEST.packagePath;
		xmlReader.setEntityResolver(getEntityResolver());
		xmlReader.setContentHandler(new ManifestContentHandler());

		InputSource ins = new InputSource(is);
		ins.setSystemId(uri);

		xmlReader.parse(ins);

		mContentStreams.remove(OdfPackage.OdfFile.MANIFEST.packagePath);
		entryUpdate(OdfPackage.OdfFile.MANIFEST.packagePath);
	}