Well, you have a parse error in the first line. It should end with ?>
, not ??>
Beyond that, the error you're seeing can be caused by the name of the OPF file not matching what is in the META-INF/container.xml file. Paths in the container.xml file are relative to the root, not relative to the file, so if your structure is
then your container.xml file should say:
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
<rootfile full-path="content.opf" media-type="application/oebps-package+xml"/>
With things set up that way, your OPF file appears to pass validation on my machine (to the extent that an OPF file can pass validation without the actual content files, that is).