blob: 3c7d8e833e006840979461716042c6dd77780d50 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.security" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sec="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.security">
<xs:element name="ServiceSecurityMetadata" type="sec:ServiceSecurityMetadata"/>
<xs:complexType name="ServiceSecurityMetadata">
<xs:sequence>
<xs:element name="defaultCommunicationMechanism" type="sec:CommunicationMechanism"/>
<xs:element name="operations">
<xs:complexType>
<xs:sequence>
<xs:element ref="sec:Operation" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="CommunicationMechanism" type="sec:CommunicationMechanism"/>
<xs:complexType name="CommunicationMechanism">
<xs:all>
<xs:element ref="sec:GSITransport" minOccurs="0"/>
<xs:element ref="sec:GSISecureMessage" minOccurs="0"/>
<xs:element ref="sec:GSISecureConversation" minOccurs="0"/>
<xs:element ref="sec:None" minOccurs="0"/>
</xs:all>
<xs:attribute name="anonymousPermitted" use="required" type="xs:boolean"/>
</xs:complexType>
<xs:element name="Operation" type="sec:Operation"/>
<xs:complexType name="Operation">
<xs:sequence>
<xs:element ref="sec:CommunicationMechanism"/>
</xs:sequence>
<xs:attribute name="name" use="required" type="xs:string"/>
</xs:complexType>
<xs:element name="CommunicationStyle" type="sec:CommunicationStyle"/>
<xs:complexType name="CommunicationStyle">
<xs:sequence/>
<xs:attribute name="protectionLevel" use="required" type="sec:protectionLevelType">
<xs:annotation>
<xs:documentation>Describes data protection level (integrity, privacy, either,
none)</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:element name="GSISecureMessage" type="sec:GSISecureMessage"/>
<xs:complexType name="GSISecureMessage">
<xs:complexContent>
<xs:extension base="sec:CommunicationStyle">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="GSISecureConversation" type="sec:GSISecureConversation"/>
<xs:complexType name="GSISecureConversation">
<xs:complexContent>
<xs:extension base="sec:CommunicationStyle">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="protectionLevelType">
<xs:restriction base="xs:string">
<xs:enumeration value="integrity"/>
<xs:enumeration value="privacy"/>
<xs:enumeration value="either"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="GSITransport" type="sec:GSITransport"/>
<xs:complexType name="GSITransport">
<xs:complexContent>
<xs:extension base="sec:CommunicationStyle">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="None" type="sec:None"/>
<xs:complexType name="None">
<xs:sequence/>
</xs:complexType>
</xs:schema>