<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2007, Oracle. All rights reserved.     NAME     ordcman.xsd - XML schema for DICOM anonymity documents   MODIFIED   (MM/DD/YY)   myalavar    06/06/07 - review comments   myalavar    04/10/07 - copyright    myalavar    04/09/07 - add major_minor version   dguo        04/03/05 - Created-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://xmlns.oracle.com/ord/dicom/anonymity_1_0" xmlns:dt="http://xmlns.oracle.com/ord/dicom/datatype_1_0" targetNamespace="http://xmlns.oracle.com/ord/dicom/anonymity_1_0" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:oraxdb="http://xmlns.oracle.com/xdb" oraxdb:storeVarrayAsTable="true" oraxdb:flags="8499" oraxdb:schemaURL="http://xmlns.oracle.com/ord/dicom/anonymity_1_0" oraxdb:schemaOwner="ORDSYS" oraxdb:numProps="11">
  <xs:import namespace="http://xmlns.oracle.com/ord/dicom/datatype_1_0" schemaLocation="http://xmlns.oracle.com/ord/dicom/datatype_1_0"/>
  <xs:annotation>
    <xs:documentation>     Introduction       This schema defines the DICOM anonymity document.             Structure Overview        Question mark &quot;?&quot; means optional items.        Plus &quot;+&quot; means one or more items.        Asterisk &quot;*&quot; means zero or more items.                ANONYMITY_RULE_DOCUMENT        DOCUMENT_HEADER?         DOCUMENT_CHANGE_LOG*          DOCUMENT_MODIFIER          DOCUMENT_MODIFICATION_DATE          DOCUMENT_VERSION?          MODIFICATION_COMMENT?          BASE_DOCUMENT?          BASE_DOCUMENT_RELEASE_DATE?          BASE_DOCUMENT_DESCRIPTION?       PRIVATE_ATTRIBUTES       UNDEFINED_STANDARD_ATTRIBUTES       UNDEFINED_PRIVATE_ATTRIBUTES       INDIVIDUAL_ATTRIBUTE*              The preceding element values specify the actions required to make        a DICOM attribute, or a selected group of DICOM attributes,        anonymous.             </xs:documentation>
  </xs:annotation>
  <xs:element name="ANONYMITY_RULE_DOCUMENT" oraxdb:propNumber="3403" oraxdb:global="true" oraxdb:SQLName="ANONYMITY_RULE_DOCUMENT" oraxdb:SQLType="ANONYMITY_RULE_DOCUMENT507_T" oraxdb:SQLSchema="ORDSYS" oraxdb:memType="258">
    <xs:complexType oraxdb:SQLType="ANONYMITY_RULE_DOCUMENT507_T" oraxdb:SQLSchema="ORDSYS">
      <xs:sequence>
        <xs:element name="DOCUMENT_HEADER" type="dt:DOCUMENT_HEADER_T" nillable="true" minOccurs="0" oraxdb:propNumber="3395" oraxdb:global="false" oraxdb:SQLName="DOCUMENT_HEADER" oraxdb:SQLType="DOCUMENT_HEADER_T343_T" oraxdb:SQLSchema="ORDSYS" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
        <xs:element name="PRIVATE_ATTRIBUTES" type="ANONYM_G_T" oraxdb:propNumber="3396" oraxdb:global="false" oraxdb:SQLName="PRIVATE_ATTRIBUTES" oraxdb:SQLType="ANONYM_G_T505_T" oraxdb:SQLSchema="ORDSYS" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false">
          <xs:annotation>
            <xs:documentation>              Specify the action required to make all private               attributes anonymous.            </xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="UNDEFINED_STANDARD_ATTRIBUTES" type="ANONYM_G_T" oraxdb:propNumber="3397" oraxdb:global="false" oraxdb:SQLName="UNDEFINED_STANDARD_ATTRIBUTES" oraxdb:SQLType="ANONYM_G_T505_T" oraxdb:SQLSchema="ORDSYS" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false">
          <xs:annotation>
            <xs:documentation>            Specify the action required to make all undefined             standard attributes anonymous. Undefined standard             attributes are not defined by the standard data dictionaries            when makeAnonymous or isAnonymous functions are invoked.            </xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="UNDEFINED_PRIVATE_ATTRIBUTES" type="ANONYM_G_T" oraxdb:propNumber="3398" oraxdb:global="false" oraxdb:SQLName="UNDEFINED_PRIVATE_ATTRIBUTES" oraxdb:SQLType="ANONYM_G_T505_T" oraxdb:SQLSchema="ORDSYS" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false">
          <xs:annotation>
            <xs:documentation>              Specify the action required to make all undefined private               attributes anonymous. Undefined private attributes are               not defined by the private data dictionaries when               makeAnonymous or isAnonymous functions are invoked.               This element takes priority over the previous               element PRIVATE_ATTRIBUTES.            </xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="INDIVIDUAL_ATTRIBUTE" minOccurs="0" maxOccurs="unbounded" oraxdb:propNumber="3402" oraxdb:global="false" oraxdb:SQLName="INDIVIDUAL_ATTRIBUTE" oraxdb:SQLType="INDIVIDUAL_ATTRIBUTE508_T" oraxdb:SQLSchema="ORDSYS" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false" oraxdb:SQLCollType="INDIVIDUAL_ATTRIBUTE509_COLL" oraxdb:SQLCollSchema="ORDSYS">
          <xs:annotation>
            <xs:documentation>              Specify the action required to make an attribute anonymous.              This element overwrites the group specifications              specified in the preceding elements.            </xs:documentation>
          </xs:annotation>
          <xs:complexType oraxdb:SQLType="INDIVIDUAL_ATTRIBUTE508_T" oraxdb:SQLSchema="ORDSYS">
            <xs:sequence>
              <xs:element name="ATTRIBUTE_TAG" type="dt:VALUE_LOCATOR_T" oraxdb:propNumber="3399" oraxdb:global="false" oraxdb:SQLName="ATTRIBUTE_TAG" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"/>
              <xs:element name="DESCRIPTION" type="dt:SHORT_TEXT_T" minOccurs="0" oraxdb:propNumber="3400" oraxdb:global="false" oraxdb:SQLName="DESCRIPTION" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"/>
              <xs:element name="ANONYMITY_ACTION" type="ANONYM_T" nillable="true" oraxdb:propNumber="3401" oraxdb:global="false" oraxdb:SQLName="ANONYMITY_ACTION" oraxdb:SQLType="ANONYM_T506_T" oraxdb:SQLSchema="ORDSYS" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="ANONYM_T" oraxdb:SQLType="ANONYM_T506_T" oraxdb:SQLSchema="ORDSYS">
    <xs:simpleContent>
      <xs:annotation>
        <xs:documentation>          The anonymity action type has an attribute action,           which defines the action used to make an          attribute anonymous.          If the value of the action attribute is &quot;none&quot;, no          action will be taken.          If the value of the action attribute is &quot;remove&quot;, then           the element does not require a value.(The default value          of the action attribute is &quot;remove&quot;).          The selected candidate attribute will be removed from           the DICOM object to make it anonymous.          If the value of the action attribute is &quot;replace&quot;, then           the string value encoded in the attribute will be cast           into the corresponding type of the attribute and the          new value replaces the original.          If the value of the action attribute is &quot;empty&quot; , then the          attribute will be changed into zero length attribute (for future          use only).          If the value of the action attribute is &quot;encrypt&quot;, then the string           value encoded in the action attribute will be replaced with an          encrypted value (for future use only).        </xs:documentation>
      </xs:annotation>
      <xs:extension base="dt:SHORT_STRING_T">
        <xs:attribute name="action" default="remove" oraxdb:propNumber="3404" oraxdb:global="false" oraxdb:SQLName="action" oraxdb:SQLType="XDB$ENUM_T" oraxdb:SQLSchema="XDB" oraxdb:memType="259">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="none"/>
              <xs:enumeration value="remove"/>
              <xs:enumeration value="replace"/>
              <xs:enumeration value="empty"/>
              <xs:enumeration value="encrypt"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="ANONYM_G_T" oraxdb:SQLType="ANONYM_G_T505_T" oraxdb:SQLSchema="ORDSYS">
    <xs:simpleContent>
      <xs:annotation>
        <xs:documentation>          The anonymity action type for a group attribute is similar to          ANONYM_T except that it does not allow &quot;replace&quot; action.        </xs:documentation>
      </xs:annotation>
      <xs:extension base="dt:SHORT_STRING_T">
        <xs:attribute name="action" default="remove" oraxdb:propNumber="3405" oraxdb:global="false" oraxdb:SQLName="action" oraxdb:SQLType="XDB$ENUM_T" oraxdb:SQLSchema="XDB" oraxdb:memType="259">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="none"/>
              <xs:enumeration value="remove"/>
              <xs:enumeration value="empty"/>
              <xs:enumeration value="encrypt"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:schema>
