Story #6711
Updated by Matthew Jones about 10 years ago
The current Node XML schema structure (see http://jenkins-1.dataone.org/jenkins/job/API%20Documentation%20-%20trunk/ws/api-documentation/build/html/apis/Types.html#Types.Node) has a fixed set of fields for describing required details of a node. For user interface purposes, we need structured metadata about nodes that we can reliablly retrieve but that is extensible over time. Addition of simple, repeatable key/value pair would allow us to add to the node registry descriptions and use the field file keys by convention. For example, in the UI we need the following metadata about nodes:
* NodeLatitude: {latitude of the node in decimal degrees} NodeLatitude
* NodeLongitude: {longitude of the node in decimal degrees} NodeLongitude
* NodeContactName: {name for current node contact}
* NodeContactEmail: {email for current node contact}
* NodeWebURL: {URL of links to the main MN web presence, different than baseURL}
* NodeAffiliation: {Institution name}
* NodeLogo: {BINHEX encoded png or other image file}
The addition to the schema could be a simple key/nodemetadata pair like so, that is added as an optional repeatable element to the Node structure:
@
<xs:complexType name="NodeMetadata">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="key" type="xs:string">
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
@
and within the Node definition, we would add:
@
<xs:element name="nodemetadata" type="d1:NodeMetadata" minOccurs="0" maxOccurs="unbounded" />
@
* NodeLatitude: {latitude of the node in decimal degrees} NodeLatitude
* NodeLongitude: {longitude of the node in decimal degrees} NodeLongitude
* NodeContactName: {name for current node contact}
* NodeContactEmail: {email for current node contact}
* NodeWebURL: {URL of links to the main MN web presence, different than baseURL}
* NodeAffiliation: {Institution name}
* NodeLogo: {BINHEX encoded png or other image file}
The addition to the schema could be a simple key/nodemetadata pair like so, that is added as an optional repeatable element to the Node structure:
@
<xs:complexType name="NodeMetadata">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="key" type="xs:string">
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
@
and within the Node definition, we would add:
@
<xs:element name="nodemetadata" type="d1:NodeMetadata" minOccurs="0" maxOccurs="unbounded" />
@