<xs:schema xmlns:xs=“www.w3.org/2001/XMLSchema”>

<xs:group name="name">
  <xs:choice>
    <xs:element name="name" type="xs:string"/>
    <xs:sequence>
      <xs:element name="first-name" type="xs:string"/>
      <xs:element name="middle-name" type="xs:string" minOccurs="0"/>
      <xs:element name="last-name" type="xs:string"/>
    </xs:sequence>
  </xs:choice>
</xs:group>
<xs:element name="author">
  <xs:complexType>
    <xs:group ref="name"/>
  </xs:complexType>
</xs:element>

</xs:schema>