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