Review template schema

The review template schema provides the core functionality for the Review, Commenting, and Approval building block. When a review is initiate, the review template, based on the review template schema is passed to the building block services.

Review template schema definition

<?xml version="1.0" encoding="UTF-8"?> 
<!-- 
/* 
 * ADOBE SYSTEMS INCORPORATED 
 * Copyright 2010 Adobe Systems Incorporated 
 * All Rights Reserved. 
 * 
 * NOTICE:  Adobe permits you to use, modify, and distribute this file in accordance with the 
 * terms of the Adobe license agreement accompanying it.  If you have received this file from a 
 * source other than Adobe, then your use, modification, or distribution of it requires the prior 
 * written permission of Adobe. 
 */ 
--> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://adobe.com/solutions/rca/reviewcontext" targetNamespace="http://adobe.com/solutions/rca/reviewcontext" elementFormDefault="qualified"> 
  <xs:element name="review_context"> 
    <xs:complexType> 
      <xs:sequence> 
        <xs:element name="initiator" type="RCAUserType"/> 
        <xs:element name="review_id" type="xs:string" minOccurs="0"/>        <!-- System generated R&A process ID --> 
        <xs:element name="revision" type="xs:int" minOccurs="0"/>            <!-- Revision of this R&A. Starts with 1 --> 
        <xs:element name="change_description" type="xs:string" minOccurs="0"/>    <!-- The change description text, used when a review is revised --> 
        <xs:element name="title" type="xs:string"/>        <!-- User supplied R&A title --> 
        <xs:element name="purpose" type="xs:string" minOccurs="0"/>        <!-- User supplied R&A purpose --> 
        <xs:element name="status" default="ONGOING" minOccurs="0">    <!-- R&A (Review and Approval) process Status --> 
          <xs:simpleType> 
            <xs:restriction base="xs:string"> 
              <xs:enumeration value="ONGOING"/> 
              <xs:enumeration value="COMPLETED"/> 
              <xs:enumeration value="EXPIRED"/> 
              <xs:enumeration value="REVOKED"/> 
              <xs:enumeration value="REVISED"/>    <!-- If a new/updated document is submitted in a ongoing process, a new revision of the process is initiated and 
              the status of old process is set to REVISED --> 
            </xs:restriction> 
          </xs:simpleType> 
        </xs:element> 
        <xs:element name="type" default="REGULATED_REVIEW" minOccurs="0">        <!-- For future use --> 
            <xs:simpleType> 
                <xs:restriction base="xs:string"> 
                    <xs:enumeration value="REGULATED_REVIEW"/> 
                    <xs:enumeration value="AD_HOC_REVIEW"/> 
                </xs:restriction> 
            </xs:simpleType> 
        </xs:element>        
        <xs:element name="template_name" type="xs:string"/>        <!-- Name of the template used to initate a R&A process --> 
        <xs:element name="template_desc" type="xs:string" minOccurs="0"/> 
        <xs:element name="template_is_active" type="xs:boolean" minOccurs="0" default="true"/>    <!-- If false, this template can't be used to initate Review --> 
        <xs:element name="template_author" type="xs:string" minOccurs="0"/>        <!-- Template's Author --> 
        <xs:element name="compliance_code" type="xs:string" minOccurs="0"/>        <!-- A regulated review is associated with a legislative requirement. This 
        field contains the value representing the legislation that this review complies with. --> 
        <xs:element name="audit_level" type="xs:string" minOccurs="0"/>        <!-- For future use in Auditing service --> 
        <xs:element name="current_stage" type="xs:int" minOccurs="0"/>    <!-- This property is populated by the system. Current stage of the R&A process. Starts with 1. --> 
        <xs:element name="comment_server_path" type="xs:string" minOccurs="0"/>    <!-- This property is populated by the system --> 
        <xs:element name="comment_visibility" minOccurs="0" default="ONLY_INTRA_STAGE">        <!-- Acrobat's inline Comment Visibility acorss Stages  --> 
            <xs:simpleType> 
               <xs:restriction base="xs:string"> 
                 <xs:enumeration value="INTER_STAGE"/>    <!-- Comments are shared across multiple stages --> 
                 <xs:enumeration value="ONLY_INTRA_STAGE"/>    <!-- Comments of two stages are hidden from each other --> 
               </xs:restriction> 
            </xs:simpleType> 
        </xs:element> 
        <!-- If this flag is set to true, then RCA process goes through uninterruptedly. This field is not exposed in UI yet. --> 
        <xs:element name="straight_through_processing" type="xs:boolean" default="true" minOccurs="0"/> 
        <xs:element name="rts_process_name" type="xs:string" minOccurs="0"/>    <!-- Name of the process used to generate Review Tracking Sheet --> 
        <xs:element name="ars_process_name" type="xs:string" minOccurs="0"/>    <!-- Name of the process used to generate Approval Routing Sheet --> 
        <xs:element name="stages">    <!-- Stages contain 1 or more stages in a R&A process --> 
            <xs:complexType> 
                  <xs:sequence> 
                      <xs:element name="stage" type="stageType" minOccurs="1" maxOccurs="unbounded"/> 
                  </xs:sequence> 
              </xs:complexType> 
        </xs:element> 
        <xs:element name="supporting_documents" minOccurs="0">    <!--  Supporting_documents is a list of documents for the reviewers' and approvers' reference --> 
            <xs:complexType> 
                <xs:sequence> 
                    <xs:element name="document" type="documentType" minOccurs="0" maxOccurs="unbounded"/> 
                </xs:sequence> 
            </xs:complexType> 
        </xs:element> 
        <xs:element name="custom_attributes" minOccurs="0"> 
            <xs:complexType> 
                <xs:sequence> 
                    <xs:element name="attribute" minOccurs="0" maxOccurs="unbounded"> 
                        <xs:complexType> 
                            <xs:simpleContent> 
                                <xs:extension base="xs:string"> 
                                    <xs:attribute name="key" type="xs:string"/> 
                                </xs:extension> 
                            </xs:simpleContent> 
                        </xs:complexType> 
                    </xs:element> 
                </xs:sequence> 
            </xs:complexType> 
        </xs:element> 
        <xs:element name="additional_metadata" type="xs:string" minOccurs="0"/>        <!-- Any application specific data can be preserved in this tag --> 
      </xs:sequence> 
    </xs:complexType> 
  </xs:element> 
  <xs:complexType name="stageType"> 
    <xs:sequence> 
        <xs:element name="start_date" type="xs:string" minOccurs="0"/>        <!-- System populated start date of the stage --> 
        <xs:element name="end_date" type="xs:string" minOccurs="0"/>    <!-- System populated end date of the stage --> 
        <xs:element name="status" minOccurs="0" default="PENDING">    <!-- Status of the stage --> 
            <xs:simpleType> 
                <xs:restriction base="xs:string"> 
                  <xs:enumeration value="PENDING"/> <!-- PENDING means that stage is yet to start --> 
                  <xs:enumeration value="ONGOING"/> <!-- ONGOING means that stage has started but yet to finish --> 
                  <xs:enumeration value="COMPLETED"/> <!-- COMPLETED means that stage has finished --> 
                  <xs:enumeration value="EXPIRED"/> <!-- EXPIRED means that stage has expired --> 
                  <xs:enumeration value="REVISED"/> <!-- REVISED means that stage has been revised --> 
                  <xs:enumeration value="REVOKED"/> <!-- means that review was revoked when the stage was in progress --> 
                  <xs:enumeration value="APPROVED"/> <!-- means that all approvers in this approval stage APPROVED the document --> 
                  <xs:enumeration value="REJECTED"/> <!-- means that at least one of the approvers in this approval stage REJECTED the document --> 
                </xs:restriction> 
            </xs:simpleType> 
        </xs:element> 
        <xs:element name="pre_process_hook" type="xs:string" minOccurs="0"/>    <!-- Name of the process to be triggered before the stage starts. --> 
        <xs:element name="post_process_hook" type="xs:string" minOccurs="0"/>    <!-- Name of the process to be triggered before the stage ends. --> 
        <xs:element name="assign_task_to_initiator_process" type="xs:string" minOccurs="0"/>    <!-- Name of the process to be invoked for assigning task to initiator. --> 
        <xs:element name="disposition" type="xs:string" minOccurs="0"/>    <!-- System populated field, stored custom disposition for stage if any --> 
         
        <xs:choice minOccurs="0">        <!-- A stage has the choice of containing Reviewers OR Approvers --> 
            <xs:element name="reviewers"> 
                <xs:complexType> 
                    <xs:sequence> 
                        <xs:element name="assign_task_to_reviewer_process" type="xs:string" minOccurs="0"/>    <!-- Name of the process to be invoked for assigning task to reviewer. --> 
                        <xs:element name="reviewer" type="reviewerType" minOccurs="0" maxOccurs="unbounded"/> 
                    </xs:sequence> 
                </xs:complexType> 
            </xs:element> 
            <xs:element name="approvers"> 
                <xs:complexType> 
                    <xs:sequence> 
                        <xs:element name="assign_task_to_approver_process" type="xs:string" minOccurs="0"/>    <!-- Name of the process to be invoked for assigning task to approver --> 
                        <xs:element name="approver" type="approverType" minOccurs="0" maxOccurs="unbounded"/> 
                    </xs:sequence> 
                    <xs:attribute name="signature_type" use="optional" default="NO_SIGNATURE">    <!-- What Digital signing mechanism to use. Applicable only to Approvers. --> 
                        <xs:simpleType> 
                            <xs:restriction base="xs:string"> 
                                <xs:enumeration value="SERVER_SIDE"/>    <!-- The signature is applied by the system on behalf of the Approver. This requires the approver's 
                                signature to be present in LC Trust Store --> 
                                <xs:enumeration value="CLIENT_SIDE"/>    <!-- The Approver will be expected to apply his/her signature before Approving/Rejecting the document --> 
                                <xs:enumeration value="NO_SIGNATURE"/>    <!-- No signing happens in this case --> 
                            </xs:restriction> 
                        </xs:simpleType> 
                    </xs:attribute> 
                </xs:complexType> 
            </xs:element> 
        </xs:choice> 
        <xs:element name="moderators" minOccurs="0"> 
            <xs:complexType> 
                <xs:sequence> 
                    <xs:element name="moderator" type="moderatorType" minOccurs="0" maxOccurs="unbounded"/> 
                </xs:sequence> 
            </xs:complexType> 
        </xs:element> 
        <xs:element name="reminders" minOccurs="0">    <!-- This property configures the system to send reminders (email/fax/sms, depending on the Notification Service) to R&A 
        participants reminding them about the pending tasks (if any) before the stage expires. Reminders will only work if durationUnit is DAYS --> 
            <xs:complexType> 
                <xs:sequence> 
                    <xs:element name="reminder" minOccurs="0" maxOccurs="unbounded"> 
                        <xs:complexType> 
                            <xs:attribute name="recipient" use="optional" default="ALL">    <!-- A reminder can be sent to Moderator(s) only, Initiator only, Remaining 
                            Reviewers/Approvers only OR All of the above --> 
                                <xs:simpleType> 
                                    <xs:restriction base="xs:string"> 
                                        <xs:enumeration value="MODERATOR"/> 
                                        <xs:enumeration value="INITIATOR"/> 
                                        <xs:enumeration value="REMAINING_PARTICIPANTS"/> 
                                        <xs:enumeration value="ALL"/> 
                                    </xs:restriction> 
                                </xs:simpleType> 
                            </xs:attribute> 
                            <xs:attribute name="days_before_expiry" type="xs:int"/>    <!-- Number of days before the stage expires --> 
                        </xs:complexType> 
                    </xs:element> 
                </xs:sequence> 
            </xs:complexType> 
        </xs:element> 
        <xs:element name="additional_metadata" type="xs:string" minOccurs="0"/>        <!-- Any application specific data can be preserved in this tag --> 
    </xs:sequence>  
      <xs:attribute name="type">    <!-- This property needs to be supplied at initate time defining the type of stage --> 
          <xs:simpleType> 
              <xs:restriction base="xs:string"> 
                  <xs:enumeration value="PARALLEL_REVIEW"/> 
                  <xs:enumeration value="SEQUENTIAL_REVIEW"/> 
                  <xs:enumeration value="PARALLEL_APPROVAL"/> 
                  <xs:enumeration value="SEQUENTIAL_APPROVAL"/> 
              </xs:restriction> 
          </xs:simpleType> 
      </xs:attribute> 
      <xs:attribute name="taskType" use="optional" default="WORKSPACE">    <!-- This property needs to be supplied at initate time defining the type of stage --> 
          <xs:simpleType> 
              <xs:restriction base="xs:string"> 
                  <xs:enumeration value="WORKSPACE"/> 
                  <xs:enumeration value="EMAIL_CONNECTED"/> 
                  <xs:enumeration value="EMAIL_DISCONNECTED"/> 
                  <xs:enumeration value="CUSTOM"/> 
              </xs:restriction> 
          </xs:simpleType> 
      </xs:attribute> 
      <xs:attribute name="wait_for_expiry" type="xs:boolean" use="optional" default="false"/>        <!-- When this property is true, the Stage will not be marked 
      COMPLETED unless duration expires --> 
      <xs:attribute name="name" type="xs:string"/>    <!-- Name of the stage --> 
      <xs:attribute name="duration" type="xs:int"/>    <!-- This property needs to be supplied at initiate time defining the duration of the stage (in days). A stage is 
      considered EXPIRED if these many days have passed and still there are some pending Approvers/Mandatory Reviewers and this is an expiring stage--> 
      <xs:attribute name="duration_unit" use="optional" default="DAYS">    <!-- duration is specified as int and this property defines the units for duration. If duration is 70 and unit is MINUTES, 
      then actual duration will be 1 hour 10 minutes. Due to performance constraints, minimum supported duration is 10 minutes. 
      Any duration less than 10 minutes, will be automatically defaulted to 10 minutes--> 
          <xs:simpleType> 
              <xs:restriction base="xs:string"> 
                  <xs:enumeration value="DAYS"/> 
                  <xs:enumeration value="MINUTES"/> 
                  <xs:enumeration value="HOURS"/> 
                  <xs:enumeration value="BUSINESS_DAYS"/> 
              </xs:restriction> 
          </xs:simpleType> 
      </xs:attribute> 
       
      <xs:attribute name="non_expiring_stage" type="xs:boolean" use="optional" default="false"/>    <!-- If this is a non expiring stage, then stage will not be marked expired after stipulated duration  --> 
  </xs:complexType> 
  <xs:complexType name="moderatorType"> 
      <xs:complexContent> 
          <xs:extension base="RCAUserType"> 
              <xs:attribute name="created_at" type="createdAtType" use="optional"/> 
          </xs:extension> 
      </xs:complexContent> 
  </xs:complexType> 
  <xs:complexType name="reviewerType"> 
      <xs:complexContent> 
          <xs:extension base="RCAUserType"> 
              <xs:sequence> 
                  <xs:element name="status" minOccurs="0" default="PENDING"> 
                      <xs:simpleType> 
                          <xs:restriction base="xs:string"> 
                            <xs:enumeration value="PENDING"/>    <!-- If the Reviewer hasn't taken any action --> 
                            <xs:enumeration value="COMPLETED"/>    <!-- If the Reviewer has Completed the Review --> 
                            <xs:enumeration value="DECLINED"/>    <!-- If the Reviewer has Declined the Review. --> 
                            <xs:enumeration value="CHANGES_REQUIRED"/>    <!-- If the Reviewer thinks there are some changes Required to the Document and this R&A process needs 
                                      to be Revised --> 
                            <xs:enumeration value="TERMINATED"/>    <!-- If the Task was terminated by system in case of revised, revoked for example --> 
                            <xs:enumeration value="REMOVED"/>    <!-- If the Reviewer is removed from an ongoing review --> 
                            <xs:enumeration value="REJECTED"/>    <!-- If the Reviewer has rejected a review. If a reviewer rejects a review, stage would terminate --> 
                        </xs:restriction> 
                    </xs:simpleType> 
                </xs:element> 
                <xs:element name="reviewer_start_date" type="xs:string" minOccurs="0"/>    <!-- System populated field --> 
                <xs:element name="reviewer_end_date" type="xs:string" minOccurs="0"/>    <!-- System populated field --> 
                <xs:element name="no_of_comments" type="xs:int" minOccurs="0"/>    <!-- System populated field --> 
                <xs:element name="final_comments" type="xs:string" minOccurs="0"/>    <!-- System populated field --> 
                <xs:element name="disposition" type="xs:string" minOccurs="0"/>    <!-- System populated field --> 
                <xs:element name="completed_by" type="RCAUserType" minOccurs="0"/>    <!-- System populated field --> 
                <xs:element name="completed_from_ip" type="xs:string" minOccurs="0"/>    <!-- System populated field --> 
                <xs:element name="process_id" type="xs:string" minOccurs="0"/> 
                <xs:element name="additional_metadata" type="xs:string" minOccurs="0"/>        <!-- Any application specific data can be preserved in this tag --> 
            </xs:sequence> 
            <xs:attribute name="isOptional" type="xs:boolean" use="optional" default="false"/>    <!-- This property is set to true if the Reviewer is Optional --> 
            <xs:attribute name="created_at" type="createdAtType" use="optional"/> 
        </xs:extension> 
    </xs:complexContent> 
  </xs:complexType> 
  <xs:simpleType name="createdAtType"> 
      <xs:restriction base="xs:string"> 
          <xs:enumeration value="TEMPLATE_CREATION"/> 
          <xs:enumeration value="INITIATION"/> 
          <xs:enumeration value="UPDATES"/> 
      </xs:restriction> 
  </xs:simpleType> 
    <xs:complexType name="approverType"> 
        <xs:complexContent> 
            <xs:extension base="RCAUserType"> 
                <xs:sequence> 
                    <xs:element name="status" minOccurs="0" default="PENDING"> 
                          <xs:simpleType> 
                              <xs:restriction base="xs:string"> 
                                  <xs:enumeration value="APPROVED"/>    <!-- If the Approver has Approved the Document --> 
                                  <xs:enumeration value="REJECTED"/>    <!-- If the Approver has Rejected the Document --> 
                                <xs:enumeration value="PENDING"/>    <!-- If the Approver hasn't taken any action -->                                   
                                  <xs:enumeration value="TERMINATED"/>    <!-- If the Task was terminated by system in case of revised, revoked--> 
                                  <xs:enumeration value="REMOVED"/>    <!-- If the Approver is removed from an ongoing review --> 
                              </xs:restriction> 
                          </xs:simpleType> 
                    </xs:element>                     
                    <xs:element name="approver_start_date" type="xs:string" minOccurs="0"/>    <!-- System populated field --> 
                    <xs:element name="approver_end_date" type="xs:string" minOccurs="0"/>    <!-- System populated field --> 
                    <xs:element name="final_comments" type="xs:string" minOccurs="0"/>    <!-- System populated field --> 
                    <xs:element name="disposition" type="xs:string" minOccurs="0"/>    <!-- System populated field --> 
                    <xs:element name="completed_by" type="RCAUserType" minOccurs="0"/>    <!-- System populated field --> 
                    <xs:element name="completed_from_ip" type="xs:string" minOccurs="0"/>    <!-- System populated field --> 
                    <xs:element name="process_id" type="xs:string" minOccurs="0"/>    <!-- System populated field --> 
                    <xs:element name="additional_metadata" type="xs:string" minOccurs="0"/>        <!-- Any application specific data can be preserved in this tag --> 
                </xs:sequence> 
                <xs:attribute name="created_at" type="createdAtType" use="optional"/> 
            </xs:extension> 
        </xs:complexContent>  
    </xs:complexType> 
      <xs:complexType name="RCAUserType"> 
          <xs:attribute name="domain" type="xs:string" use="required"/> 
          <xs:attribute name="canonical_name" type="xs:string" use="required"/> 
          <xs:attribute name="id" type="xs:string" use="optional"/> 
        <xs:attribute name="name" type="xs:string" use="optional"/> 
          <xs:attribute name="oid" type="xs:string" use="optional"/> 
          <xs:attribute name="email" type="xs:string" use="optional"/>                    
          <xs:attribute name="isGroup" type="xs:boolean" use="optional" default="false"/> 
          <xs:attribute name="useGroupQueue" type="xs:boolean" use="optional" default="false"/> 
          <!-- If useGroupQueue is false then group will be expanded and all users in group will be assigned tasks individually --> 
    </xs:complexType> 
  <xs:complexType name="documentType"> 
      <xs:all> 
          <xs:element name="uri" type="xs:string"/> 
          <xs:element name="description" type="xs:string" minOccurs="0"/> 
      </xs:all> 
      <xs:attribute name="type" default="DOCUMENT"> 
          <xs:simpleType> 
              <xs:restriction base="xs:string"> 
                  <xs:enumeration value="REF"/> 
                  <xs:enumeration value="DOCUMENT"/> 
              </xs:restriction> 
          </xs:simpleType> 
      </xs:attribute> 
      <xs:attribute name="name" type="xs:string" use="optional"/> 
      <xs:attribute name="content-type" type="xs:string" use="optional"/> 
  </xs:complexType> 
</xs:schema>

// Ethnio survey code removed