Issue 9: roleType element in associatedParty
Status:  Invalid
Owner:
Closed:  Oct 2010
Cc:
Project Member Reported by htobon, Sep 30, 2010
The data type of the role element should be RoleType, not xs:string.
or role element could be changed for a RoleType element.

GBIF EML Schema:
<xs:element name="associatedParty">
...
   <xs:element ref="role"/>
...
</xs:element>
---
<xs:element name="role" type="xs:string">
...    
</xs:element>

Official EML Schema:
<xs:element name="associatedParty" minOccurs="0" maxOccurs="unbounded">
...
   <xs:element name="role" type="rp:RoleType">
...                  
</xs:element>
---
<xs:simpleType name="RoleType">
    ...
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="contentProvider"/>
          <xs:enumeration value="custodianSteward"/>
          <xs:enumeration value="owner"/>
          <xs:enumeration value="user"/>
          <xs:enumeration value="distributor"/>
          <xs:enumeration value="metadataProvider"/>
          <xs:enumeration value="originator"/>
          <xs:enumeration value="pointOfContact"/>
          <xs:enumeration value="principalInvestigator"/>
          <xs:enumeration value="processor"/>
          <xs:enumeration value="publisher"/>
          <xs:enumeration value="author"/>
          <xs:enumeration value="editor"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string"/>
      </xs:simpleType>
    </xs:union>
</xs:simpleType>


SOLUTION 1: 
- Change the reference from role to RoleType.
- Add the RoleType element at the end of the schema.

Example:
<xs:element name="associatedParty">
...
   <xs:element ref="roleType"/>
...
</xs:element>


SOLUTION 2:
- Change the role element type
- Add the RoleType element at the end of the schema.

Example:
<xs:element name="role" type="RoleType">
...
</xs:element>

In both solutions, the RoleType element should be added at the end of the schema.
Oct 4, 2010
Project Member #1 wixner@gmail.com
we could do so, but we dont need to. The EML RoleType is a *union* of the enumeration and a simple xs:string. That basically means any xs:string can go into it. The explicit roles are simply best recommendations, but they do not influence validation at all.

I think we should keep the matter simple as stick with xs:string in this case.
Status: Invalid