Since all three schemas have different target namespaces, you may use one of them as the main schema (or the driver schema), which you will specify to the validator, and all other schemas must be imported in it.
Let's Document.xsd
will be the main schema (after all, it defines the root element of your XML). Then, you can write it like this:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
targetNamespace="urn:JCouch.Document"
xmlns="urn:JCouch.Document"
xmlns:attachment="urn:JCouch.Attachment"
xmlns:project="urn:JCouch.Project"
xsi:schemaLocation="
urn:JCouch.Attachment attachment.xsd
urn:JCouch.Project project.xsd"
elementFormDefault="qualified"
>
<!-- import all other related schemas here -->
<xs:import namespace="urn:JCouch.Project" schemaLocation="project.xsd"/>
<xs:import namespace="urn:JCouch.Attachment" schemaLocation="attachment.xsd"/>
<!-- all other definitions of Document.xsd -->
...
</xs:schema>
Now, Document.xsd should validate your XML.
(In fact, you can make a driver from any other schema by specifying in it similar imports of all other schemas.)