XML отношения - PullRequest
       16

XML отношения

1 голос
/ 11 января 2009

Я не могу определить отношения между автором и бумагой. Можно ли определить один?

<xsd:complextype name="Researcher'>
</xsd:complextype>
<xsd:complexType name = "Paper" >
      <xsd:extension base = " Researcher " >
      </xsd:extension>
  </xsd:complexType>
<xsd:complexType name = "Author">
      <xsd:extension base = " Researcher ">
      </xsd:extension>
</xsd:complexType>

Ответы [ 2 ]

1 голос
/ 23 января 2009

Полагаю, вы хотите, чтобы у «бумаги» был «автор». То, как я делаю это в своих схемах, - это получить список авторов и список работ. Примерно так:

<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>

Таким образом, документы / список документов / статья / автор должны соответствовать документам / списку авторов / автору, в противном случае проверка выдаст ошибку. Удачи!

0 голосов
/ 13 января 2009

Кажется, это дублирующий вопрос.

Я думаю о вещах в терминах "есть" или "имеет" отношения. Я думаю, что класс C ++ застрял со мной.

Отношения, которые я вижу, 1. У бумаги есть автор. 2. Автор является Исследователем (или, возможно, Автор может быть Исследователем).

Я не понимаю, как Бумага может быть Исследователем. У него может быть Автор, который может быть Исследователем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...