Полагаю, вы хотите, чтобы у «бумаги» был «автор». То, как я делаю это в своих схемах, - это получить список авторов и список работ. Примерно так:
<papers>
<authorlist>
<author>Bob Barr</author>
<author>Ron Paul</author>
<author>Ralph Nader</author>
</authorlist>
<paperlist>
<paper>
<title>How to Revert Your Economy to the Gold Standard</title>
<author>Ron Paul</author>
</paper>
<paper>
<title>Unsafe at any Speed</title>
<author>Ralph Nader</author>
</paper>
<paper>
<title>How to be a Viable 3rd Party Candidate</title>
<author>Bob Barr</author>
</paper>
</paperlist>
</papers>
Вкладка запутана, но в моем примере каждая статья / автор должна ссылаться на список авторов / автора. Я бы использовал код схемы, подобный этому, чтобы достичь желаемого эффекта:
<xsd:element name="paper" type="Papers_Type">
<xsd:unique name="Author_Key">
<xsd:selector xpath="authorlist/author">
<xsd:field xpath="text()"/>
</xsd:key>
<xsd:keyref name="Paper_Author_AuthorRef" refer="AuthorKey">
<xsd:selector xpath="paperlist/paper/author"/>
<xsd:field xpath="text()"/>
</xsd:keyref>
</xsd:element>
<xsd:complextype name="Papers_Type">
<!--Enter element definitions to your liking here-->
</xsd:complextype>
Таким образом, документы / список документов / статья / автор должны соответствовать документам / списку авторов / автору, в противном случае проверка выдаст ошибку. Удачи!