From 8ac1695a48faeccab74f622dbbda7694b379e96c Mon Sep 17 00:00:00 2001
From: gary_williams <gary_williams@localhost>
Date: Wed, 03 Dec 2008 16:06:08 +0000
Subject: [PATCH] Tests for Solaris and RFC 4876 Schema Elements

---
 opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_2.ldif           |    6 
 opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/dynamic/schema_dynamic_tests.xml |  397 ++++
 opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/solaris/rfc4876.ldif           |  167 ++
 opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/solaris/schema_solaris.xml       |  119 +
 opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2377.ldif             |   18 
 opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_setup.xml                 |  155 
 opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_3.ldif           |    2 
 opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_cleanup.xml               |   86 
 /dev/null                                                                                             | 1039 ------------
 opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/solaris/schema_solaris_tests.xml |  140 +
 opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_4.ldif           |    2 
 opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_1.ldif           |    6 
 opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/rfc/schema_rfc_tests.xml         | 1990 ++++++++++++++++++++++++
 opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema.xml                       |  121 +
 opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/dynamic/schema_dynamic.xml       |  121 +
 opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml                                         |   40 
 opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/solaris/solaris.ldif           |  180 ++
 opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/rfc/schema_rfc.xml               |  177 ++
 18 files changed, 3,535 insertions(+), 1,231 deletions(-)

diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_1.ldif b/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_1.ldif
index d824c1a..2a303ff 100644
--- a/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_1.ldif
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_1.ldif
@@ -23,19 +23,19 @@
 #      Copyright 2006-2008 Sun Microsystems, Inc.
 #
 
-dn: dc=rfc-2247-tests,dc=example,dc=com
+dn: dc=rfc-2247-tests,o=rfc tests,dc=example,dc=com
 dc: rfc-2247-tests
 o: Crucial RFC Tests 
 objectclass: top
 objectclass: dcObject
 objectclass: organization
 
-dn: ou=People,dc=rfc-2247-tests,dc=example,dc=com
+dn: ou=People,dc=rfc-2247-tests,o=rfc tests,dc=example,dc=com
 ou: People
 objectclass: top
 objectclass: organizationalunit
 
-dn: uid=nmiller, ou=People,dc=rfc-2247-tests,dc=example,dc=com
+dn: uid=nmiller, ou=People,dc=rfc-2247-tests,o=rfc tests,dc=example,dc=com
 cn: Nate Miller
 sn: Miller
 givenname: Nate
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_2.ldif b/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_2.ldif
index fc4da3c..4e75d9a 100644
--- a/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_2.ldif
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_2.ldif
@@ -23,17 +23,17 @@
 #      Copyright 2006-2008 Sun Microsystems, Inc.
 #
 
-dn: dc=rfc-2247-tests-2,dc=example,dc=com
+dn: dc=rfc-2247-tests-2,o=rfc tests,dc=example,dc=com
 dc: rfc-2247-tests-2
 objectclass: top
 objectclass: domain
 
-dn: ou=People,dc=rfc-2247-tests-2,dc=example,dc=com
+dn: ou=People,dc=rfc-2247-tests-2,o=rfc tests,dc=example,dc=com
 ou: People
 objectclass: top
 objectclass: organizationalunit
 
-dn: uid=nmiller, ou=People,dc=rfc-2247-tests-2,dc=example,dc=com
+dn: uid=nmiller, ou=People,dc=rfc-2247-tests-2,o=rfc tests,dc=example,dc=com
 cn: Nate Miller
 sn: Miller
 givenname: Nate
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_3.ldif b/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_3.ldif
index 11f1bd0..c07647f 100644
--- a/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_3.ldif
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_3.ldif
@@ -23,7 +23,7 @@
 #      Copyright 2006-2008 Sun Microsystems, Inc.
 #
 
-dn: dc=rfc-2247-tests-3,dc=example,dc=com
+dn: dc=rfc-2247-tests-3,o=rfc tests,dc=example,dc=com
 dc: rfc-2247-tests-3
 o: Crucial RFC Tests 
 objectclass: top
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_4.ldif b/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_4.ldif
index fb18917..9b47c11 100644
--- a/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_4.ldif
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_4.ldif
@@ -23,7 +23,7 @@
 #      Copyright 2006-2008 Sun Microsystems, Inc.
 #
 
-dn: dc=rfc-2247-tests-4,dc=example,dc=com
+dn: dc=rfc-2247-tests-4,o=rfc tests,dc=example,dc=com
 dc: rfc-2247-tests-4
 objectclass: top
 objectclass: dcObject
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2377.ldif b/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2377.ldif
index 3e6da8c..0fe6a21 100644
--- a/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2377.ldif
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2377.ldif
@@ -23,36 +23,36 @@
 #      Copyright 2006-2008 Sun Microsystems, Inc.
 #
 
-dn: dc=rfc-2377-tests,dc=example,dc=com
+dn: dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com
 dc: rfc-2377-tests
 o: Crucial RFC Tests 
 objectclass: top
 objectclass: dcObject
 objectclass: organization
 
-dn: dc=Europe, dc=rfc-2377-tests,dc=example,dc=com
+dn: dc=Europe, dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com
 dc: Europe
 o: Europe Crucial RFC Tests 
 objectclass: top
 objectclass: dcObject
 objectclass: organization
 
-dn: dc=North America, dc=rfc-2377-tests,dc=example,dc=com
+dn: dc=North America, dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com
 dc: North America
 objectclass: top
 objectclass: domain
 
-dn: ou=People,dc=Europe,dc=rfc-2377-tests,dc=example,dc=com
+dn: ou=People,dc=Europe,dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com
 ou: People
 objectclass: top
 objectclass: organizationalunit
 
-dn: ou=People,dc=North America,dc=rfc-2377-tests,dc=example,dc=com
+dn: ou=People,dc=North America,dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com
 ou: People
 objectclass: top
 objectclass: organizationalunit
 
-dn: uid=nmiller, ou=People,dc=Europe,dc=rfc-2377-tests,dc=example,dc=com
+dn: uid=nmiller, ou=People,dc=Europe,dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com
 cn: Nate Miller
 sn: Miller
 givenname: Nate
@@ -70,7 +70,7 @@
 roomnumber: 4135
 userpassword: gosling
 
-dn: uid=lmiller, ou=People,dc=North America,dc=rfc-2377-tests,dc=example,dc=com
+dn: uid=lmiller, ou=People,dc=North America,dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com
 cn: Late Miller
 sn: Miller
 givenname: Late
@@ -88,7 +88,7 @@
 roomnumber: 4135
 userpassword: gosling
 
-dn: cn=Anton Miller, ou=People,dc=Europe,dc=rfc-2377-tests,dc=example,dc=com
+dn: cn=Anton Miller, ou=People,dc=Europe,dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com
 cn: Anton Miller
 sn: Miller
 givenname: Anton
@@ -106,7 +106,7 @@
 roomnumber: 4135
 userpassword: gosling
 
-dn: cn=Art Miller, ou=People,dc=North America,dc=rfc-2377-tests,dc=example,dc=com
+dn: cn=Art Miller, ou=People,dc=North America,dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com
 cn: Art Miller
 sn: Miller
 givenname: Art
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/solaris/rfc4876.ldif b/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/solaris/rfc4876.ldif
new file mode 100644
index 0000000..2518df2
--- /dev/null
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/solaris/rfc4876.ldif
@@ -0,0 +1,167 @@
+#
+# Container for Solaris Schema (RFC 4876) Tests
+#
+dn: o=rfc4876, o=Solaris Schema Tests,dc=example,dc=com
+objectClass: dcObject
+objectClass: organization
+objectClass: nisDomainObject
+dc: rfc4876
+o: rfc4876
+description: DIT for Solaris Schema Tests (RFC 4876,Solaris)
+nisDomain: rfc4876
+
+#
+# Container for passwd entries.  See solaris.schema and nis.schema for
+# additional containers we could create here.
+#
+dn: ou=People,o=rfc4876, o=Solaris Schema Tests,dc=example,dc=com
+objectClass: organizationalUnit
+ou: People
+
+#
+# Container for group entries.  See solaris.schema and nis.schema for
+# additional containers we could create here.
+#
+dn: ou=Group,o=rfc4876, o=Solaris Schema Tests,dc=example,dc=com
+objectClass: organizationalUnit
+ou: Group
+
+dn: ou=profile,o=rfc4876, o=Solaris Schema Tests,dc=example,dc=com
+objectClass: organizationalUnit
+ou: profile
+description: Profile
+
+dn: cn=example,ou=profile,o=rfc4876, o=Solaris Schema Tests,dc=example,dc=com
+objectClass: top
+objectClass: DUAConfigProfile
+cn: example
+defaultServerList: ldap1.example.com ldap2.example.com 192.168.169.170 ldap1.mycorp.com ldap2:1389 [1080::8:800:200C:417A]:5912
+preferredServerList: ldap3.example.com ldap4.example.com 192.168.169.170 ldap2:1389 [1080::8:800:200C:417A]:389
+defaultSearchBase: o=Solaris Schema Tests, dc=example,dc=com
+defaultSearchScope: one
+authenticationMethod: tls:simple;sasl/DIGEST-MD5
+credentialLevel: proxy anonymous
+searchTimeLimit: 30
+bindTimeLimit: 2
+followReferrals: TRUE
+dereferenceAliases: FALSE
+profileTTL: 43200
+serviceSearchDescriptor: email:ou=people,ou=org1,? one;ou=contractor,?one; ref:cn=profile,dc=mycompany,dc=com
+serviceCredentialLevel: email:proxy anonymous
+serviceAuthenticationMethod: email:tls:simple;sasl/DIGEST-MD5
+objectclassMap: email:cn=employeeName
+attributeMap: email:mail=email
+attributeMap: email:cn=employeeName
+attributeMap: email:cn=firstName lastName
+
+
+#
+# LDAP Proxy Agents File
+#
+
+#
+# Base organizational unit for proxy agents.
+#
+dn: ou=LDAPauth,dc=example,dc=com
+objectClass: top
+objectClass: organizationalUnit
+ou: LDAPauth
+description: LDAP Proxy Agent Subtree.
+
+#
+# Proxy agent for solaris based machines.
+#
+dn: cn=solaris,ou=LDAPauth,dc=example,dc=com
+objectClass: top
+objectClass: person
+cn: solaris
+sn: Solaris Proxy Agent
+userPassword: SolarisRulz
+
+#
+# Proxy agent for OS X based machines. - UNUSED
+#
+dn: cn=mac,ou=LDAPauth,dc=example,dc=com
+objectClass: top
+objectClass: person
+cn: mac
+sn: mac
+cn: OS X Proxy Agent
+userPassword: MacAttac
+
+#
+# Proxy agent for Linux based machines. - UNUSED
+#
+dn: cn=linux,ou=LDAPauth,dc=example,dc=com
+objectClass: top
+objectClass: person
+cn: linux
+cn: Linux Proxy Agent
+sn: linux
+
+#
+# GroupOfNames  entity  used  to  gain  read  access  to the
+# userPassword attribute in our DIT.
+#
+dn: cn=LDAPaccess,ou=LDAPauth,dc=example,dc=com
+objectClass: top
+objectClass: groupOfNames
+cn: LDAPaccess
+description: LDAP Proxy Agent Group
+member: cn=solaris,ou=LDAPauth,dc=example,dc=com
+member: cn=mac,ou=LDAPauth,dc=example,dc=com
+member: cn=linux,ou=LDAPauth,dc=example,dc=com
+
+
+dn: uid=user1,ou=People,o=rfc4876, o=Solaris Schema Tests,dc=example,dc=com
+objectClass: top
+objectClass: posixAccount
+objectClass: shadowAccount
+objectClass: person
+objectClass: organizationalPerson
+objectClass: inetOrgPerson
+uid: user1
+userpassword: password
+uidNumber: 1025
+gidNumber: 15
+gecos: user 1
+homeDirectory: /home/user1
+loginShell: /bin/bash
+cn: user 1
+givenName: user1
+sn: User1
+shadowlastchange: -1
+shadowmin: -1
+shadowmax: -1
+shadowwarning: -1
+shadowinactive: -1
+shadowexpire: -1
+shadowflag: -1
+description: User1
+
+dn: uid=user2,ou=People,o=rfc4876, o=Solaris Schema Tests,dc=example,dc=com
+objectClass: top
+objectClass: posixAccount
+objectClass: shadowAccount
+objectClass: person
+objectClass: organizationalPerson
+objectClass: inetOrgPerson
+uid: user2
+userPassword: password
+uidNumber: 1026
+gidNumber: 15
+gecos: user 2
+homeDirectory: /home/user2
+loginShell: /bin/bash
+cn: user 2
+givenName: user 2
+sn: User2
+shadowlastchange: -1
+shadowmin: -1
+shadowmax: -1
+shadowwarning: -1
+shadowinactive: -1
+shadowexpire: -1
+shadowflag: -1
+description: User2
+
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/solaris/solaris.ldif b/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/solaris/solaris.ldif
new file mode 100644
index 0000000..dfbc40d
--- /dev/null
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/shared/data/schema/solaris/solaris.ldif
@@ -0,0 +1,180 @@
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License").  You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+#      Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#      Copyright 2008 Sun Microsystems, Inc.
+#
+
+dn: o=Solaris schema tests,dc=example,dc=com
+o: Solaris schema tests
+objectclass: top
+objectclass: organization
+
+dn: o=Solaris, o=Solaris schema tests,dc=example,dc=com
+o: Solaris
+objectclass: top
+objectclass: organization
+
+dn: cn=nisMailAlias,o=Solaris, o=Solaris schema tests,dc=example,dc=com
+objectclass: top
+objectclass: person
+objectclass: nisMailAlias
+cn: nisMailAlias
+sn: nisMailAlias
+rfc822mailMember: nisMailAlias@sun.com
+
+dn: cn=nisNetId,o=Solaris, o=Solaris schema tests,dc=example,dc=com
+objectclass: nisNetId
+objectclass: person
+cn: nisNetId
+sn: nisNetId
+nisNetIdUser: testuser
+nisNetIdGroup: testgroup
+nisNetIdHost: ldap5.ldap.sun.com
+
+dn: SolarisProjectName=Schema Tests,o=Solaris, o=Solaris schema tests,dc=example,dc=com
+objectclass: SolarisProject
+SolarisProjectID: 42
+SolarisProjectName: Schema Tests
+memberUid: chibber
+memberUid: bignik!
+memberUid: *
+memberUid: !*
+memberGid: schema
+memberGid: sheffield!
+memberGid: *
+memberGid: !*
+description: Schema Tests Project
+SolarisProjectAttr: task.max-cpu-time process.max-file-descriptor
+
+dn: cn=SolarisAuditUser,o=Solaris, o=Solaris schema tests,dc=example,dc=com
+objectclass: person
+objectclass: SolarisAuditUser
+cn: SolarisAuditUser
+sn: SolarisAuditUser
+SolarisAuditAlways: *
+SolarisAuditNever: *
+
+dn: uid=SolarisUserAttr, o=Solaris, o=Solaris schema tests,dc=example,dc=com
+objectClass:posixAccount
+objectClass:shadowAccount
+objectClass:account
+objectclass:SolarisUserAttr
+cn:SolarisUserAttr
+description:Testing LDAP User to give RBAC
+gecos:Test User
+SolarisUserQualifier: qualified
+SolarisAttrReserved1: *
+SolarisAttrReserved2: *
+SolarisAttrKeyValue: type=role;profiles=Basic Solaris User
+loginShell:/usr/bin/ksh
+homeDirectory:/home/SolarisUserAttr
+uidNumber: 57
+gidNumber: 58
+
+dn: cn=SolarisAuthAttr, o=Solaris, o=Solaris schema tests,dc=example,dc=com
+objectclass: SolarisAuthAttr
+cn: SolarisAuthAttr
+SolarisAttrReserved1: *
+SolarisAttrReserved2: *
+SolarisAttrShortDesc: authtest
+SolarisAttrLongDesc: Special profile for auth testing
+SolarisAttrKeyValue: privs=none
+
+dn: cn=SolarisProfile, o=Solaris, o=Solaris schema tests,dc=example,dc=com
+objectclass: SolarisProfAttr
+objectclass: SolarisExecAttr
+cn: SolarisProfile
+SolarisAttrLongDesc: Special profile for testing
+SolarisAttrKeyValue: help=TestProfile.html 
+SolarisKernelSecurityPolicy: solaris
+SolarisProfileType: act
+SolarisAttrReserved1: *
+SolarisAttrReserved2: *
+SolarisProfileId: TestAction;*;*;*;*
+
+dn: cn=SolarisNamingProfile, o=Solaris, o=Solaris schema tests,dc=example,dc=com
+objectclass: SolarisNamingProfile
+cn: SolarisNamingProfile
+SolarisDataSearchDN: "passwd:(ou=People,dc=ldap-test,dc=com)"
+SolarisDataSearchDN: "printers:(ou=Printers,dc=ldap-test,dc=com)"
+SolarisDataSearchDN: "group:(ou=Group,dc=ldap-test,dc=com)"
+SolarisDataSearchDN: "automount:(ou=Services,dc=ldap-test,dc=com)"
+SolarisLDAPServers: ldap3.ldap.sun.com ldap2.ldap.sun.com ldap1.ldap.sun.com
+SolarisSearchBaseDN: o=Solaris, o=Solaris schema tests,dc=example,dc=com
+SolarisBindDN: cn=proxyagent,o=Solaris, o=Solaris schema tests,dc=example,dc=com
+SolarisBindPassword: secret12
+SolarisAuthMethod: NS_LDAP_AUTH_SIMPLE
+SolarisTransportSecurity: NS_LDAP_SEC_NONE
+SolarisCertificatePath: NS_LDAP_CERT_PATH_NONE
+SolarisCertificatePassword: password
+SolarisSearchScope: NS_LDAP_SCOPE_ONELEVEL
+SolarisSearchTimeLimit: 30
+SolarisPreferredServer: ldap3.ldap.sun.com
+SolarisPreferredServerOnly: TRUE
+SolarisCacheTTL: 43200
+SolarisSearchReferral: NS_LDAP_FOLLOWREF
+SolarisBindTimeLimit: 180
+
+dn: cn=mailGroup,o=Solaris, o=Solaris schema tests,dc=example,dc=com
+objectclass: mailGroup
+mail: mailgroup@sun.com
+cn: mailGroup
+mgrpRFC822MailMember: uid=jim1234,o=sun,c=fr
+mgrpRFC822MailMember: uid=kippo2545,o=sun,c=fr
+mgrpRFC822MailMember: uid=macka5381,o=sun,c=fr
+mgrpRFC822MailMember: uid=hume0734o=sun,c=fr
+mgrpRFC822MailMember: uid=chappy,2578o=sun,c=fr
+
+#dn: printer-name=wombat07,o=Solaris, o=Solaris schema tests,dc=example,dc=com
+#objectclass: printerService
+#objectclass: printerAbstract
+#objectclass: sunPrinter
+#objectclass: top
+#printer-name: wombat07
+#printer-uri: wombat07
+#sun-printer-bsdaddr: printsvr.example.com,myprinter,Solaris
+#sun-printer-kvp: description=My Super Printer (PS)
+
+dn: cn=nisplusTimeZone,o=Solaris, o=Solaris schema tests,dc=example,dc=com
+objectclass: nisplusTimeZoneData
+cn: nisplusTimeZone
+nisplusTimeZone: GMT+1
+description: The NIS+ time zone
+
+dn: ou=ipTnet,o=Solaris, o=Solaris schema tests,dc=example,dc=com
+objectClass: top
+objectClass: organizationalunit
+ou: ipTnet
+
+dn: ipTnetTemplateName=cipso,ou=ipTnet,o=Solaris, o=Solaris schema tests,dc=example,dc=com
+objectClass:top
+objectClass:ipTnetTemplate
+ipTnetTemplateName:cipso
+SolarisAttrKeyValue:host_type=cipso;doi=1;min_sl=ADMIN_LOW;max_sl=ADMIN_HIGH;
+
+dn: ipTnetNumber=0.0.0.0,o=Solaris, o=Solaris schema tests,dc=example,dc=com
+objectClass:top
+objectClass:ipTnetTemplate
+objectClass:ipTnetHost
+ipTnetNumber:0.0.0.0
+ipTnetTemplateName:internal
+
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/dynamic/schema_dynamic.xml b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/dynamic/schema_dynamic.xml
new file mode 100644
index 0000000..27ee87e
--- /dev/null
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/dynamic/schema_dynamic.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd">
+<!--
+ ! CDDL HEADER START
+ !
+ ! The contents of this file are subject to the terms of the
+ ! Common Development and Distribution License, Version 1.0 only
+ ! (the "License").  You may not use this file except in compliance
+ ! with the License.
+ !
+ ! You can obtain a copy of the license at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ ! See the License for the specific language governing permissions
+ ! and limitations under the License.
+ !
+ ! When distributing Covered Code, include this CDDL HEADER in each
+ ! file and include the License file at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+ ! add the following below this CDDL HEADER, with the fields enclosed
+ ! by brackets "[]" replaced with your own identifying information:
+ !      Portions Copyright [yyyy] [name of copyright owner]
+ !
+ ! CDDL HEADER END
+ !
+ !      Copyright 2008 Sun Microsystems, Inc.
+ ! -->
+<stax>
+  <defaultcall function="main_schema_dynamic"/>
+  <function name="main_schema_dynamic" scope="local">
+    <sequence>
+      <block name="'main_schema_dynamic'">
+        <try>
+          <sequence>
+            <script>
+              CurrentTestPath['group']='schema'        
+              CurrentTestPath['suite']='dynamic'
+              
+              __group=CurrentTestPath['group']
+              __groupdir='%s/testcases/%s' % (TESTS_DIR,__group)
+            </script>
+
+            <!--- Test Suite information
+            #@TestSuiteName       Native schema test suite
+            #@TestSuitePurpose    Verify that 
+            #@TestSuiteID         Suite
+            #@TestSuiteGroup      Example
+            #@TestGroup           Example
+            #@TestScript          suite.xml
+            #@TestHTMLLink        http://opends.dev.java.net/
+            -->          
+            <call function="'testSuite_Preamble'"/>
+
+            <try>
+              <sequence> 
+ 
+                <!-- List of Import of Test Functions -->
+                <script>
+                  importList=[]
+                  importList.append('schema_setup')
+                  importList.append('dynamic/schema_dynamic_tests')
+                  importList.append('schema_cleanup')
+                </script>
+
+                <!-- Import the files for this test suite -->
+                <iterate var="__import" in="importList">
+                  <import machine="STAF_LOCAL_HOSTNAME"
+                    file="'%s/%s.xml' % (__groupdir,__import)"/>
+                </iterate>                                                                       
+
+                <!-- Test Suite Setup -->
+                <call function="'%s_setup' % __group"/>
+                                                    
+                <!-- List of Test Cases -->
+                <script>
+                  testsList=[]
+                  testsList.append('schema_dynamic_001')
+                  testsList.append('schema_dynamic_002')
+                  testsList.append('schema_dynamic_003')
+                  testsList.append('schema_dynamic_004')
+                </script>
+
+                <!-- Execute the Tests -->
+                <iterate var="__test" in="testsList">
+                  <sequence>
+                    <call function="'%s' % (__test)" />
+                  </sequence>
+                </iterate>                
+                                
+              </sequence>
+            <catch exception="'STAFException.TestSuite.SetupException'">
+              <sequence>
+                <message log="1" level="'fatal'">
+                  'Setup of test suite failed.'
+                </message>
+                <rethrow/>
+              </sequence>
+            </catch>
+
+            <finally>
+              <message>'Test Cases Completed.'</message>
+            </finally>
+
+            </try>
+
+          </sequence>
+          
+          <finally>
+            <sequence>
+              <!-- Test Suite Cleanup -->
+              <message>'Finally: Example Cleanup.'</message>
+              <call function="'%s_cleanup' % __group"/>
+              <call function="'testSuite_Postamble'"/>
+            </sequence>
+          </finally>
+ 
+        </try>
+      </block>
+    </sequence>
+  </function>
+</stax>
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/dynamic/schema_dynamic_tests.xml b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/dynamic/schema_dynamic_tests.xml
new file mode 100644
index 0000000..ceef8e0
--- /dev/null
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/dynamic/schema_dynamic_tests.xml
@@ -0,0 +1,397 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd">
+<!--
+ ! CDDL HEADER START
+ !
+ ! The contents of this file are subject to the terms of the
+ ! Common Development and Distribution License, Version 1.0 only
+ ! (the "License").  You may not use this file except in compliance
+ ! with the License.
+ !
+ ! You can obtain a copy of the license at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ ! See the License for the specific language governing permissions
+ ! and limitations under the License.
+ !
+ ! When distributing Covered Code, exclude this CDDL HEADER in each
+ ! file and exclude the License file at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+ ! add the following below this CDDL HEADER, with the fields enclosed
+ ! by brackets "[]" replaced with your own identifying * information:
+ !      Portions Copyright [yyyy] [name of copyright owner]
+ !
+ ! CDDL HEADER END
+ !
+ !      Copyright 2008 Sun Microsystems, Inc.
+ ! -->
+
+<stax>
+
+<!-- Test case: Update Schema via a file -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                Dynamic Schema Tests
+    #@TestName                  Update via a file
+    #@TestIssue                 367
+    #@TestPurpose               To make sure the schema can be updated by a file.
+    #@TestPreamble              none
+    #@TestStep                  Create a task that will cause the server to 
+                                read one or two files into the schema.
+                                Then try adding a new entry that uses the
+                                added schema.
+    #@TestPostamble             none
+    #@TestResult                Success if OpenDS returns 0
+--> 
+  <function name="schema_dynamic_001" scope="local">                         
+
+    <testcase name="getTestCaseName('Update via File')"> 
+      <try>        
+        <sequence>
+
+          <call function="'testCase_Preamble'"/>
+          <message>
+            'Schema: Dynamic Schema: Update via File'
+          </message>
+
+          <script>
+            __baseDN='dc=dynamic-schema-tests,dc=example,%s' % server.suffix
+          </script>    
+
+          <call function="'runFunction'">
+            { 'functionName'      : 'addSchemaTask'                       ,
+              'functionMessage'   : 'Add schema objects as a task.'       ,
+              'functionException' : 'Tasks.SchemaException'               ,
+              'functionArguments' : { 'dsInstanceHost' : server.host      ,
+                                      'dsInstancePort' : server.port      ,
+                                      'dsInstanceDn'   : server.dn        ,
+                                      'dsInstancePswd' : server.password  ,
+                                      'taskID'         : '6'              ,
+                                      'ldifFile'       : '05-DynamicSchemaAdd.ldif' }
+            }
+          </call>
+          
+          <call function="'runFunction'">
+            { 'functionName'      : 'addEntry'                       ,
+              'functionMessage'   : 'Add an entry that uses this new schema.'       ,
+              'functionException' : 'LDAP.AddException'               ,
+              'functionArguments' : { 'dsInstanceHost' : server.host ,
+                                      'dsInstancePort' : server.port ,
+                                      'dsInstanceDn'   : server.dn ,
+                                      'dsInstancePswd' : server.password ,
+                                      'entryToBeAdded' : '%s/schema/ldifs/dynamic_schema1.ldif'
+                                                          % remote.data }
+            }
+          </call>
+  
+          <call function="'runFunction'">
+            { 'functionName'      : 'SearchObject'                       ,
+              'functionMessage'   : 'Search for the entry just added and return addschema1AT.'       ,
+              'functionException' : 'LDAP.SearchException'               ,
+              'functionArguments' : { 'dsInstanceHost'   : server.host ,
+                                      'dsInstancePort'   : server.port ,
+                                      'dsInstanceDn'     : server.dn ,
+                                      'dsInstancePswd'   : server.password ,
+                                      'dsBaseDN'         : __baseDN ,
+                                      'dsFilter'         : 'objectclass=addschema1OC' ,
+                                      'attributes'       : 'addschema1AT' }
+            }
+          </call>
+
+  
+        </sequence>
+        <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.Tasks.SchemaException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: Tasks Schema failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>        
+      </try>
+    </testcase>
+
+  </function>
+
+<!-- Test case: Update Schema Over Protocol: Add schema object-->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                Dynamic Schema Tests
+    #@TestName                  Update Over Protocol: Add schema object
+    #@TestIssue                 366
+    #@TestPurpose               To verify the schema can be updated over protocol.
+    #@TestPreamble              none
+    #@TestStep                  Update the schema over protocol adding 
+                                a new objectclass and attributes.
+                                Then try adding a new entry that uses these
+                                new attributes and objectclass.
+    #@TestPostamble             none
+    #@TestResult                Success if OpenDS returns 0
+-->      
+  <function name="schema_dynamic_002" scope="local">         
+
+    <testcase name="getTestCaseName('Add Schema Object')">
+      <try>        
+        <sequence>
+
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Update Over Protocol: Add Schema Object'
+          </message>
+
+          <script>
+            __baseDN='dc=dynamic-schema-tests-2,dc=example,%s' % server.suffix
+          </script>
+
+          <call function="'runFunction'">
+            { 'functionName'      : 'modifyEntry'                       ,
+              'functionMessage'   : 'Modify an entry that uses this new schema.'       ,
+              'functionException' : 'LDAP.ModifyException'               ,
+              'functionArguments' : { 'dsInstanceHost'    : server.host ,
+                                      'dsInstancePort'    : server.port ,
+                                      'dsInstanceDn'      : server.dn ,
+                                      'dsInstancePswd'    : server.password ,
+                                      'entryToBeModified' : '%s/schema/ldifs/updateSchema.ldif'
+                                                          % remote.data }
+            }
+          </call>
+
+          <call function="'runFunction'">
+            { 'functionName'      : 'addEntry'                       ,
+              'functionMessage'   : 'Add an entry that uses this new schema.'       ,
+              'functionException' : 'LDAP.AddException'               ,
+              'functionArguments' : { 'dsInstanceHost' : server.host ,
+                                      'dsInstancePort' : server.port ,
+                                      'dsInstanceDn'   : server.dn ,
+                                      'dsInstancePswd' : server.password ,
+                                      'entryToBeAdded' : '%s/schema/ldifs/dynamic_schema2.ldif'
+                                                          % remote.data }
+            }
+          </call>
+
+          <call function="'runFunction'">
+            { 'functionName'      : 'SearchObject'                       ,
+              'functionMessage'   : 'Search for the entry just added and return addschema2AT.'       ,
+              'functionException' : 'LDAP.SearchException'               ,
+              'functionArguments' : { 'dsInstanceHost'   : server.host ,
+                                      'dsInstancePort'   : server.port ,
+                                      'dsInstanceDn'     : server.dn ,
+                                      'dsInstancePswd'   : server.password ,
+                                      'dsBaseDN'         : __baseDN ,
+                                      'dsFilter'         : 'objectclass=addschema2OC' ,
+                                      'attributes'       : 'addschema2AT' }
+            }
+          </call>
+
+        </sequence>
+
+        <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.LDAP.ModifyException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPModify failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try>
+    </testcase>   
+
+  </function>
+
+<!-- Test case: Update Schema Over Protocol: Replace  Schema Object -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                Dynamic Schema Tests
+    #@TestName                  Update Over Protocol: Replace  Schema Object
+    #@TestIssue                 366
+    #@TestPurpose               To verify attributes and objectclasses can be replaced over protocol.
+    #@TestPreamble              none
+    #@TestStep                  Update the schema over protocol by replacing  
+                                an objectclass and attributes with new ones.
+                                Then try adding a new entry that uses the replaced
+                                attributes and objectclass, it should fail. Then try
+                                adding an entry that uses the replacement objectclass and attributes. 
+    #@TestPostamble             none
+    #@TestResult                Success if OpenDS returns 0
+-->
+  <function name="schema_dynamic_003" scope="local"> 
+
+    <testcase name="getTestCaseName('Replace Schema Object')">
+      <try>        
+        <sequence>
+
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Update Over Protocol: Replace Schema Object'
+          </message>
+
+          <script>
+            __baseDN='dc=dynamic-schema-tests-2,dc=example,%s' % server.suffix
+          </script>
+
+          <call function="'runFunction'">
+            { 'functionName'      : 'modifyEntry'                       ,
+              'functionMessage'   : 'Modify an entry that uses this new schema.'       ,
+              'functionException' : 'LDAP.ModifyException'               ,
+              'functionArguments' : { 'dsInstanceHost'    : server.host ,
+                                      'dsInstancePort'    : server.port ,
+                                      'dsInstanceDn'      : server.dn ,
+                                      'dsInstancePswd'    : server.password ,
+                                      'entryToBeModified' : '%s/schema/ldifs/updateSchema2.ldif'
+                                                          % remote.data }
+            }
+          </call>
+
+          <call function="'runFunction'">
+            { 'functionName'      : 'addEntry'                       ,
+              'functionMessage'   : 'Add an entry that uses this new schema.'       ,
+              'functionException' : 'LDAP.AddException'               ,
+              'functionArguments' : { 'dsInstanceHost' : server.host ,
+                                      'dsInstancePort' : server.port ,
+                                      'dsInstanceDn'   : server.dn ,
+                                      'dsInstancePswd' : server.password ,
+                                      'entryToBeAdded' : '%s/schema/ldifs/dynamic_schema4.ldif'
+                                                          % remote.data }
+            }
+          </call>
+
+          <call function="'runFunction'">
+            { 'functionName'      : 'SearchObject'                       ,
+              'functionMessage'   : 'Search for the entry just added and return addschema2AT.'       ,
+              'functionException' : 'LDAP.SearchException'               ,
+              'functionArguments' : { 'dsInstanceHost'   : server.host ,
+                                      'dsInstancePort'   : server.port ,
+                                      'dsInstanceDn'     : server.dn ,
+                                      'dsInstancePswd'   : server.password ,
+                                      'dsBaseDN'         : __baseDN ,
+                                      'dsFilter'         : 'objectclass=addschema3OC' ,
+                                      'attributes'       : 'addschema3AT' }
+            }
+          </call>
+
+        </sequence>
+
+        <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.LDAP.ModifyException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPModify failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try>   
+    </testcase>
+  </function>
+
+<!-- Test case: Update Schema Over Protocol: Remove Schema Object-->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                Dynamic Schema Tests
+    #@TestName                  Update Over Protocol: Remove Schema Object 
+    #@TestIssue                 366
+    #@TestPurpose               To verify attributes and objectclasses can be removed over protocol.
+    #@TestPreamble              none
+    #@TestStep                  Update the schema over protocol by removing
+                                an objectclass and attributes.
+                                Then try adding a new entry that uses these
+                                removed attributes and objectclass, it should fail.
+    #@TestPostamble             none
+    #@TestResult                Success if OpenDS returns 0
+-->        
+  <function name="schema_dynamic_004" scope="local">
+
+    <testcase name="getTestCaseName('Remove  Schema Object')">
+      <try>        
+        <sequence>
+
+          <call function="'testCase_Preamble'"/>
+  
+          <message>
+             'Schema: Update Over Protocol: Remove Schema Object'
+          </message>
+  
+          <call function="'runFunction'">
+            { 'functionName'      : 'modifyEntry'                       ,
+              'functionMessage'   : 'Modify an entry that uses this new schema.'       ,
+              'functionException' : 'LDAP.ModifyException'               ,
+              'functionArguments' : { 'dsInstanceHost'    : server.host ,
+                                      'dsInstancePort'    : server.port ,
+                                      'dsInstanceDn'      : server.dn ,
+                                      'dsInstancePswd'    : server.password ,
+                                      'entryToBeModified' : '%s/schema/ldifs/updateSchema3.ldif'
+                                                          % remote.data }
+            }
+          </call>
+
+          <call function="'runFunction'">
+            { 'functionName'      : 'addEntry'                       ,
+              'functionMessage'   : 'Add an entry that uses the schema just removed.'       ,
+              'functionException' : 'LDAP.AddException'               ,
+              'functionArguments' : { 'dsInstanceHost' : server.host ,
+                                      'dsInstancePort' : server.port ,
+                                      'dsInstanceDn'   : server.dn ,
+                                      'dsInstancePswd' : server.password ,
+                                      'entryToBeAdded' : '%s/schema/ldifs/dynamic_schema3.ldif'
+                                                          % remote.data,
+                                      'expectedRC'     : 65 }
+            }
+          </call>
+
+        </sequence>
+        <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.LDAP.ModifyException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPModify failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try>
+    </testcase>        
+  </function>
+
+</stax>
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/rfc/schema_rfc.xml b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/rfc/schema_rfc.xml
new file mode 100644
index 0000000..f229ce5
--- /dev/null
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/rfc/schema_rfc.xml
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd">
+<!--
+ ! CDDL HEADER START
+ !
+ ! The contents of this file are subject to the terms of the
+ ! Common Development and Distribution License, Version 1.0 only
+ ! (the "License").  You may not use this file except in compliance
+ ! with the License.
+ !
+ ! You can obtain a copy of the license at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ ! See the License for the specific language governing permissions
+ ! and limitations under the License.
+ !
+ ! When distributing Covered Code, include this CDDL HEADER in each
+ ! file and include the License file at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+ ! add the following below this CDDL HEADER, with the fields enclosed
+ ! by brackets "[]" replaced with your own identifying information:
+ !      Portions Copyright [yyyy] [name of copyright owner]
+ !
+ ! CDDL HEADER END
+ !
+ !      Copyright 2008 Sun Microsystems, Inc.
+ ! -->
+<stax>
+  <defaultcall function="main_schema_rfc"/>
+  <function name="main_schema_rfc" scope="local">
+    <sequence>
+      <block name="'main_schema_rfc'">
+        <try>
+          <sequence>
+            <script>
+              CurrentTestPath['group']='schema'        
+              CurrentTestPath['suite']='rfc'
+              
+              __group=CurrentTestPath['group']
+              __groupdir='%s/testcases/%s' % (TESTS_DIR,__group)
+            </script>
+
+            <!--- Test Suite information
+            #@TestSuiteName       Native schema test suite
+            #@TestSuitePurpose    Verify that 
+            #@TestSuiteID         Suite
+            #@TestSuiteGroup      Example
+            #@TestGroup           Example
+            #@TestScript          suite.xml
+            #@TestHTMLLink        http://opends.dev.java.net/
+            -->          
+            <call function="'testSuite_Preamble'"/>
+
+            <try>
+              <sequence> 
+ 
+                <!-- List of Import of Test Functions -->
+                <script>
+                  importList=[]
+                  importList.append('schema_setup')
+                  importList.append('rfc/schema_rfc_tests')
+                  importList.append('schema_cleanup')
+                </script>
+
+                <!-- Import the files for this test suite -->
+                <iterate var="__import" in="importList">
+                  <import machine="STAF_LOCAL_HOSTNAME"
+                    file="'%s/%s.xml' % (__groupdir,__import)"/>
+                </iterate>                                                                       
+
+                <!-- Test Suite Setup -->
+                <call function="'%s_setup' % __group"/>
+
+                <!-- Specific to rfc tests -->
+                <script>
+                  __baseDN='o=rfc tests, dc=example,%s' % server.suffix
+                  
+                  def parse_stax_result(result):
+                  
+                    if result.__class__ is org.python.core.PyList:
+                      _unwrapResult=result[1][0]
+                      
+                      try:
+                        _functionString=_unwrapResult[1]
+                      except AttributeError:
+                        _functionString='Unable to parse result.'
+                    elif result.__class__ is org.python.core.PyString:
+                      _functionString=STAXResult
+                    else:
+                      _functionString='Unable to parse result.'
+
+                    return _functionString
+                </script>
+                                                    
+                <!-- List of Test Cases -->
+                <script>
+                  testsList=[]
+                  testsList.append('schema_rfc_2079')
+                  testsList.append('schema_rfc_2247_1')
+                  testsList.append('schema_rfc_2247_2')
+                  testsList.append('schema_rfc_2247_3')
+                  testsList.append('schema_rfc_2247_4')
+                  testsList.append('schema_rfc_2247_5')
+                  testsList.append('schema_rfc_2377')
+                  testsList.append('schema_rfc_2798')
+                  testsList.append('schema_rfc_3045_1')
+                  testsList.append('schema_rfc_3045_2')
+                  testsList.append('schema_rfc_4403_1')
+                  testsList.append('schema_rfc_4403_2')
+                  testsList.append('schema_rfc_4403_3')
+                  testsList.append('schema_rfc_4403_4')
+                  testsList.append('schema_rfc_4403_5')
+                  testsList.append('schema_rfc_2307_1')
+                  testsList.append('schema_rfc_2307_2')
+                  testsList.append('schema_rfc_2307_3')
+                  testsList.append('schema_rfc_2307_4')
+                  testsList.append('schema_rfc_furseth')
+                  testsList.append('schema_rfc_good_1')
+                  testsList.append('schema_rfc_good_2')
+                  testsList.append('schema_rfc_good_3')
+                  testsList.append('schema_rfc_howard_1')
+                  testsList.append('schema_rfc_howard_2')
+                  testsList.append('schema_rfc_ldup_1')
+                  testsList.append('schema_rfc_ldup_2')
+                  testsList.append('schema_rfc_ldup_3')
+                  testsList.append('schema_disable_schema_checking')
+                  testsList.append('schema_enable_schema_checking')
+                  testsList.append('schema_disable_syntax_checking')
+                  testsList.append('schema_enable_syntax_checking')
+                  testsList.append('schema_cosine_1')
+                  testsList.append('schema_cosine_2')
+                  testsList.append('schema_cosine_3')
+                  testsList.append('schema_rfc_2739')
+                  testsList.append('schema_rfc_2714_1')
+                  testsList.append('schema_rfc_2714_2')
+                  testsList.append('schema_rfc_2713')
+                </script>
+
+                <!-- Execute the Tests -->
+                <iterate var="__test" in="testsList">
+                  <sequence>
+                    <call function="'%s' % (__test)" />
+                  </sequence>
+                </iterate>                
+                                
+              </sequence>
+            <catch exception="'STAFException.TestSuite.SetupException'">
+              <sequence>
+                <message log="1" level="'fatal'">
+                  'Setup of test suite failed.'
+                </message>
+                <rethrow/>
+              </sequence>
+            </catch>
+
+            <finally>
+              <message>'Test Cases Completed.'</message>
+            </finally>
+
+            </try>
+
+          </sequence>
+          
+          <finally>
+            <sequence>
+              <!-- Test Suite Cleanup -->
+              <message>'Finally: Example Cleanup.'</message>
+              <call function="'%s_cleanup' % __group"/>
+              <call function="'testSuite_Postamble'"/>
+            </sequence>
+          </finally>
+ 
+        </try>
+      </block>
+    </sequence>
+  </function>
+</stax>
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/rfc/schema_rfc_tests.xml b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/rfc/schema_rfc_tests.xml
new file mode 100644
index 0000000..d7f9691
--- /dev/null
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/rfc/schema_rfc_tests.xml
@@ -0,0 +1,1990 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd">
+<!--
+ ! CDDL HEADER START
+ !
+ ! The contents of this file are subject to the terms of the
+ ! Common Development and Distribution License, Version 1.0 only
+ ! (the "License").  You may not use this file except in compliance
+ ! with the License.
+ !
+ ! You can obtain a copy of the license at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ ! See the License for the specific language governing permissions
+ ! and limitations under the License.
+ !
+ ! When distributing Covered Code, include this CDDL HEADER in each
+ ! file and include the License file at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+ ! add the following below this CDDL HEADER, with the fields enclosed
+ ! by brackets "[]" replaced with your own identifying information:
+ !      Portions Copyright [yyyy] [name of copyright owner]
+ !
+ ! CDDL HEADER END
+ !
+ !      Copyright 2006-2008 Sun Microsystems, Inc.
+ ! -->
+<stax>
+
+<!-- Test Case : Schema RFC Test 2079 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 2079
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 2079 URI Attribute Type and Object Class Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC 2079 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_2079" scope="local">
+
+    <testcase name="getTestCaseName('RFC 2079')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+
+          <call function="'runFunction'">
+            { 'functionName'      : 'addEntry'                       ,
+              'functionMessage'   : 'Add an entry that is covered by RFC 2079.' ,
+              'functionException' : 'LDAP.AddException'               ,
+              'functionArguments' : { 'dsInstanceHost' : server.host ,
+                                      'dsInstancePort' : server.port ,
+                                      'dsInstanceDn'   : server.dn ,
+                                      'dsInstancePswd' : server.password ,
+                                      'entryToBeAdded' : '%s/schema/ldifs/rfc2079.ldif'
+                                                          % remote.data }
+            }
+          </call>
+  
+          <call function="'runFunction'">
+            { 'functionName'      : 'ldapSearchWithScript'                       ,
+              'functionMessage'   : 'Search for the entry just added and return labeledURI.' ,
+              'functionException' : 'LDAP.SearchException'               ,
+              'functionArguments' : { 'dsInstanceHost'   : server.host ,
+                                      'dsInstancePort'   : server.port ,
+                                      'dsInstanceDn'     : server.dn ,
+                                      'dsInstancePswd'   : server.password ,
+                                      'dsBaseDN'         : "ou=People, %s" % __baseDN ,
+                                      'dsFilter'         : 'objectclass=*' ,
+                                      'dsAttributes'     : 'labeledURI' }
+            }
+          </call>
+          
+          <script>
+            _functionString=parse_stax_result(STAXResult)
+         </script>
+
+          <call function="'runFunction'">
+           { 'functionName'      : 'checktestString' ,
+             'functionMessage'   : 'Check that the labeledURI attribute is returned.' ,
+             'functionException' : 'Utils.CheckStringException' ,
+             'functionArguments' : { 'expectedString' : 'labeledURI: ftp://example.com/rfc/rfc2079.txt' ,
+                                     'returnString'   : _functionString }
+           }
+          </call>
+        </sequence>
+        <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.Utils.CheckStringException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: UtilsCheck failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch> 
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test 2247 1 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 2247
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 2247 Using Domains in LDAP/X.500 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC 2247 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_2247_1" scope="local">
+
+    <testcase name="getTestCaseName('RFC 2247 1')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+  
+          <call function="'runFunction'">
+            { 'functionName'      : 'addEntry'                       ,
+              'functionMessage'   : 'Add an entry where dcObject is an auxiliary class.' ,
+              'functionException' : 'LDAP.AddException'               ,
+              'functionArguments' : { 'dsInstanceHost' : server.host ,
+                                      'dsInstancePort' : server.port ,
+                                      'dsInstanceDn'   : server.dn ,
+                                      'dsInstancePswd' : server.password ,
+                                      'entryToBeAdded' : '%s/schema/ldifs/rfc2247_1.ldif'
+                                                          % remote.data }
+            }
+          </call>
+  
+          <call function="'runFunction'">
+            { 'functionName'      : 'ldapSearchWithScript'                       ,
+              'functionMessage'   : 'Search for the entry just added and return dc.' ,
+              'functionException' : 'LDAP.SearchException'               ,
+              'functionArguments' : { 'dsInstanceHost'   : server.host ,
+                                      'dsInstancePort'   : server.port ,
+                                      'dsInstanceDn'     : server.dn ,
+                                      'dsInstancePswd'   : server.password ,
+                                      'dsBaseDN'         : __baseDN ,
+                                      'dsFilter'         : 'objectclass=dcObject' ,
+                                      'dsAttributes'     : 'dc' }
+            }
+          </call>
+
+          <script>
+            _functionString=parse_stax_result(STAXResult)
+         </script>
+
+          <call function="'runFunction'">
+           { 'functionName'      : 'checktestString' ,
+             'functionMessage'   : 'Check that the dc attribute is returned.' ,
+             'functionException' : 'Utils.CheckStringException' ,
+             'functionArguments' : { 'expectedString' : 'dc: rfc-2247-tests' ,
+                                     'returnString'   : _functionString }
+           }
+          </call>
+            
+        </sequence>
+        <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.Utils.CheckStringException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: UtilsCheck failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test 2247 2 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 2247
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 2247 Using Domains in LDAP/X.500 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC 2247 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_2247_2" scope="local">
+
+    <testcase name="getTestCaseName('RFC 2247 2')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by rfc 2247'
+          </message>
+
+          <call function="'runFunction'">
+            { 'functionName'      : 'addEntry'                       ,
+              'functionMessage'   : 'Add an entry where domain is a structural class.' ,
+              'functionException' : 'LDAP.AddException'               ,
+              'functionArguments' : { 'dsInstanceHost' : server.host ,
+                                      'dsInstancePort' : server.port ,
+                                      'dsInstanceDn'   : server.dn ,
+                                      'dsInstancePswd' : server.password ,
+                                      'entryToBeAdded' : '%s/schema/ldifs/rfc2247_2.ldif'
+                                                          % remote.data }
+            }
+          </call>
+  
+          <call function="'runFunction'">
+            { 'functionName'      : 'ldapSearchWithScript'                       ,
+              'functionMessage'   : 'Search for the entry just added and return dc.' ,
+              'functionException' : 'LDAP.SearchException'               ,
+              'functionArguments' : { 'dsInstanceHost'   : server.host ,
+                                      'dsInstancePort'   : server.port ,
+                                      'dsInstanceDn'     : server.dn ,
+                                      'dsInstancePswd'   : server.password ,
+                                      'dsBaseDN'         : __baseDN ,
+                                      'dsFilter'         : 'objectclass=domain' ,
+                                      'dsAttributes'     : 'dc' }
+            }
+          </call>
+
+          <script>
+            _functionString=parse_stax_result(STAXResult)
+         </script>
+
+          <call function="'runFunction'">
+           { 'functionName'      : 'checktestString' ,
+             'functionMessage'   : 'Check that the dc attribute is returned.' ,
+             'functionException' : 'Utils.CheckStringException' ,
+             'functionArguments' : { 'expectedString' : 'dc: rfc-2247-tests-2' ,
+                                     'returnString'   : _functionString }
+           }
+          </call>
+            
+        </sequence>
+        <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test 2247 3 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 2247
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 2247 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add Invalid RFC 2247 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add returns 65 (Object Class Violation)
+-->
+
+  <function name="schema_rfc_2247_3" scope="local">
+
+    <testcase name="getTestCaseName('RFC 2247 3')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+
+          <call function="'runFunction'">
+            { 'functionName'      : 'addEntry'                       ,
+              'functionMessage'   : 'Add an invalid object that is covered by RFC 2247.' ,
+              'functionException' : 'LDAP.AddException'               ,
+              'functionArguments' : { 'dsInstanceHost' : server.host ,
+                                      'dsInstancePort' : server.port ,
+                                      'dsInstanceDn'   : server.dn ,
+                                      'dsInstancePswd' : server.password ,
+                                      'entryToBeAdded' : '%s/schema/ldifs/rfc2247_3.ldif'
+                                                          % remote.data ,
+                                      'expectedRC'     : 65 }
+            }
+          </call>
+  
+        </sequence>
+        <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test 2247 4 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 2247
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 2247 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add Invalid RFC 2247 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add returns 65 (Object Class Violation)
+-->
+
+  <function name="schema_rfc_2247_4" scope="local">
+
+    <testcase name="getTestCaseName('RFC 2247 4')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+
+          <call function="'runFunction'">
+            { 'functionName'      : 'addEntry'                       ,
+              'functionMessage'   : 'Add an invalid object that is covered by RFC 2247.' ,
+              'functionException' : 'LDAP.AddException'               ,
+              'functionArguments' : { 'dsInstanceHost' : server.host ,
+                                      'dsInstancePort' : server.port ,
+                                      'dsInstanceDn'   : server.dn ,
+                                      'dsInstancePswd' : server.password ,
+                                      'entryToBeAdded' : '%s/schema/ldifs/rfc2247_4.ldif'
+                                                          % remote.data ,
+                                      'expectedRC'     : 65 }
+            }
+          </call>
+  
+        </sequence>
+        <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+  
+<!-- Test Case : Schema RFC Test 2247 5 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 2247
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 2247 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add Invalid RFC 2247 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add returns 65 (Object Class Violation)
+-->
+
+  <function name="schema_rfc_2247_5" scope="local">
+
+    <testcase name="getTestCaseName('RFC 2247 5')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by rfc 2247'
+          </message>
+
+          <call function="'runFunction'">
+            { 'functionName'      : 'addEntry'                       ,
+              'functionMessage'   : 'Add an invalid object that is covered by RFC 2247.' ,
+              'functionException' : 'LDAP.AddException'               ,
+              'functionArguments' : { 'dsInstanceHost' : server.host ,
+                                      'dsInstancePort' : server.port ,
+                                      'dsInstanceDn'   : server.dn ,
+                                      'dsInstancePswd' : server.password ,
+                                      'entryToBeAdded' : '%s/schema/ldifs/rfc2247_5.ldif'
+                                                          % remote.data ,
+                                      'expectedRC'     : 65 }
+            }
+          </call>
+  
+        </sequence>
+        <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test 2377 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 2377
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 2377 Directory Naming Plan Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC 2377 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_2377" scope="local">
+
+    <testcase name="getTestCaseName('RFC 2377')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by rfc 2377'
+          </message>
+
+          <call function="'runFunction'">
+            { 'functionName'      : 'addEntry'                       ,
+              'functionMessage'   : 'Add an entry that is covered by RFC 2377.' ,
+              'functionException' : 'LDAP.AddException'               ,
+              'functionArguments' : { 'dsInstanceHost' : server.host ,
+                                      'dsInstancePort' : server.port ,
+                                      'dsInstanceDn'   : server.dn ,
+                                      'dsInstancePswd' : server.password ,
+                                      'entryToBeAdded' : '%s/schema/ldifs/rfc2377.ldif'
+                                                          % remote.data }
+            }
+          </call>
+  
+          <call function="'runFunction'">
+            { 'functionName'      : 'ldapSearchWithScript'                       ,
+              'functionMessage'   : 'Search for the entry just added and return uid.' ,
+              'functionException' : 'LDAP.SearchException'               ,
+              'functionArguments' : { 'dsInstanceHost'   : server.host ,
+                                      'dsInstancePort'   : server.port ,
+                                      'dsInstanceDn'     : server.dn ,
+                                      'dsInstancePswd'   : server.password ,
+                                      'dsBaseDN'         : __baseDN ,
+                                      'dsFilter'         : 'objectclass=*' ,
+                                      'dsAttributes'     : 'uid' }
+            }
+          </call>
+
+          <!--
+              TODO: RFC 2377 suggests using dcObject and uidObject for constructing 
+              the name in existing structural objects.
+          -->
+
+          <script>
+            _functionString=parse_stax_result(STAXResult)
+         </script>
+
+          <call function="'runFunction'">
+           { 'functionName'      : 'checktestString' ,
+             'functionMessage'   : 'Check that the uid attribute is returned.' ,
+             'functionException' : 'Utils.CheckStringException' ,
+             'functionArguments' : { 'expectedString' : 'uid: amiller' ,
+                                     'returnString'   : _functionString }
+           }
+          </call>
+            
+        </sequence>
+        <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.Utils.CheckStringException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: UtilsCheck failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+     
+<!-- Test Case : Schema RFC Test 2798 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 2798
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 2798 LDAP inetOrgPerson Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC 2798 LDAP inetOrgPerson Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_2798" scope="local">
+
+    <testcase name="getTestCaseName('RFC 2798')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by rfc 2798'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc2798.ldif' % remote.data }
+          </call>
+
+          <call function="'runFunction'">
+            { 'functionName'      : 'ldapSearchWithScript'                       ,
+              'functionMessage'   : 'Search for the entry just added and return departmentNumber.' ,
+              'functionException' : 'LDAP.SearchException'               ,
+              'functionArguments' : { 'dsInstanceHost'   : server.host ,
+                                      'dsInstancePort'   : server.port ,
+                                      'dsInstanceDn'     : server.dn ,
+                                      'dsInstancePswd'   : server.password ,
+                                      'dsBaseDN'         : "ou=People, %s" % __baseDN ,
+                                      'dsFilter'         : 'objectclass=*' ,
+                                      'dsAttributes'     : 'departmentNumber' }
+            }
+          </call>
+
+          <script>
+            _functionString=parse_stax_result(STAXResult)
+         </script>
+
+          <call function="'runFunction'">
+           { 'functionName'      : 'checktestString' ,
+             'functionMessage'   : 'Check that the departmentNumber attribute is returned.' ,
+             'functionException' : 'Utils.CheckStringException' ,
+             'functionArguments' : { 'expectedString' : 'departmentNumber: 602' ,
+                                     'returnString'   : _functionString }
+           }
+          </call>
+  
+        </sequence>
+        <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <catch exception="'STAXException.Utils.CheckStringException'" typevar="eType" var="eInfo">
+          <message log="1" level="'fatal'">
+            '%s: UtilsCheck failed. eInfo(%s)' % (eType,eInfo)
+          </message>
+        </catch>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function> 
+    
+<!-- Test Case : Schema RFC Test 3045 1 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 3045
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 3045 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add Invalid RFC 3045 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add returns 53 (Unwilling to Perform) 
+-->
+
+  <function name="schema_rfc_3045_1" scope="local">
+
+    <testcase name="getTestCaseName('RFC 3045 1')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by rfc 3045'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc3045_1.ldif' % remote.data ,
+              'expectedRC'       : 53 }
+          </call>
+
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test 3045 2 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 3045
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 3045 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add Invalid RFC 3045 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add returns 53 (Unwilling to Perform) 
+-->
+
+  <function name="schema_rfc_3045_2" scope="local">
+
+    <testcase name="getTestCaseName('RFC 3045 2')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by rfc 3045'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc3045_2.ldif' % remote.data ,
+              'expectedRC'       : 53 }
+          </call>
+
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test 4403 1 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 4403
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 4403 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC 4403 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_4403_1" scope="local">
+
+    <testcase name="getTestCaseName('RFC 4403 1')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by rfc 4403'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc4403_1.ldif' % remote.data }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->  
+  
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test 4403 2 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 4403
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 4403 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC 4403 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_4403_2" scope="local">
+
+    <testcase name="getTestCaseName('RFC 4403 2')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by rfc 4403'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc4403_2.ldif' % remote.data }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->  
+  
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test 4403 3 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 4403
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 4403 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add Invalid RFC 4403 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add returns 65 (Object Class Violation)
+-->
+
+  <function name="schema_rfc_4403_3" scope="local">
+
+    <testcase name="getTestCaseName('RFC 4403 3')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by rfc 4403'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc4403_3.ldif' % remote.data,
+              'expectedRC'       : 65 }
+          </call>
+  
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test 4403 4 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 4403
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 4403 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC 4403 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_4403_4" scope="local">
+
+    <testcase name="getTestCaseName('RFC 4403 4')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by rfc 4403'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc4403_4.ldif' % remote.data }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->  
+  
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test 4403 5 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 4403
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 4403 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add Invalid RFC 4403 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add returns 65 (Object Class Violation)
+-->
+
+  <function name="schema_rfc_4403_5" scope="local">
+
+    <testcase name="getTestCaseName('RFC 4403 5')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by rfc 4403'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc4403_5.ldif' % remote.data,
+              'expectedRC'       : 65 }
+          </call>
+  
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test 2307 BIS 1-->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 2307 BIS 1
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 2307 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC 2307 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_2307_1" scope="local">
+
+    <testcase name="getTestCaseName('Draft Howard RFC 2307bis 1')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by Draft Howard RFC 2307bis 1'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc2307bis_1.ldif' % remote.data }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->  
+  
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test 2307 BIS 2-->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 2307 BIS 2
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 2307 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add Invalid RFC 4403 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add returns 65 (Object Class Violation)
+-->
+
+  <function name="schema_rfc_2307_2" scope="local">
+
+    <testcase name="getTestCaseName('Draft Howard RFC 2307bis 2')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by Draft Howard RFC 2307bis 2'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc2307bis_2.ldif' % remote.data ,
+              'expectedRC'       : 65 }
+          </call>
+
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test 2307 BIS 3 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 2307 BIS 3
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 2307 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC 2307 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_2307_3" scope="local">
+
+    <testcase name="getTestCaseName('Draft Howard RFC 2307bis 3')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by Draft Howard RFC 2307bis 3'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc2307bis_3.ldif' % remote.data }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->  
+  
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test 2307 BIS 4 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 2307 BIS 4
+    #@TestIssue                 
+    #@TestPurpose               Check RFC 2307 Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add Invalid RFC 4403 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add returns 65 (Object Class Violation)
+-->
+
+  <function name="schema_rfc_2307_4" scope="local">
+
+    <testcase name="getTestCaseName('Draft Howard RFC 2307bis 4')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by Draft Howard RFC 2307bis 4'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc2307bis_4.ldif' % remote.data ,
+              'expectedRC'       : 65 }
+          </call>
+  
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+    
+<!-- Test Case : Schema RFC Test draft-furseth-ldap-untypedobject -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC 2307 BIS 4
+    #@TestIssue                 
+    #@TestPurpose               Check RFC Draft Furseth LDAP Untypedobject Schema Objects.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC 2307 Draft Furseth LDAP Untypedobject Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_furseth" scope="local">
+
+    <testcase name="getTestCaseName('Draft Furseth LDAP Untypedobject')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by Draft draft-furseth-ldap-untypedobject'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/untypedobject.ldif' % remote.data }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->  
+    
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC draft-good-ldap-changelog 1 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC Draft Good LDAP Changelog
+    #@TestIssue                 
+    #@TestPurpose               Check RFC Draft Good LDAP Changelog.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC Draft Good LDAP Changelog Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_good_1" scope="local">
+
+    <testcase name="getTestCaseName('Draft Good LDAP Changelog 1')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by Draft draft-good-ldap-changelog'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/changelog_1.ldif' % remote.data }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->  
+    
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+   
+<!-- Test Case : Schema RFC draft-good-ldap-changelog 2 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC Draft Good LDAP Changelog
+    #@TestIssue                 
+    #@TestPurpose               Check RFC Draft Good LDAP Changelog.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC Draft Good LDAP Changelog Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_good_2" scope="local">
+
+    <testcase name="getTestCaseName('Draft Good LDAP Changelog 2')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by Draft draft-good-ldap-changelog'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/changelog_2.ldif' % remote.data }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->  
+    
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+  
+<!-- Test Case : Schema RFC draft-good-ldap-changelog 3 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC Draft Good LDAP Changelog
+    #@TestIssue                 
+    #@TestPurpose               Check RFC Draft Good LDAP Changelog.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC Draft Good LDAP Changelog Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_good_3" scope="local">
+
+    <testcase name="getTestCaseName('Draft Good LDAP Changelog 3')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by Draft draft-good-ldap-changelog'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/changelog_3.ldif' % remote.data }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->  
+    
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test Draft Howard NamedObject 1 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC Draft Howard NamedObject 1
+    #@TestIssue                 
+    #@TestPurpose               Check RFC Draft Howard NamedObject.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC Draft Howard NamedObject object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_howard_1" scope="local">
+
+    <testcase name="getTestCaseName('Draft Howard NamedObject 1')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by draft-howard-namedobject.'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/namedobject_1.ldif' % remote.data }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->  
+    
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test Draft Howard NamedObject 2 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC Draft Howard NamedObject 1
+    #@TestIssue                 
+    #@TestPurpose               Check RFC Draft Howard NamedObject.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC Draft Howard NamedObject object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_howard_2" scope="local">
+
+    <testcase name="getTestCaseName('Draft Howard NamedObject 2')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by draft-howard-namedobject.'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/namedobject_2.ldif' % remote.data }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->  
+    
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test Draft IETF LDUP Subentry 1 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC Draft IETF LDUP Subentry 1
+    #@TestIssue                 
+    #@TestPurpose               Check RFC Draft IETF LDUP Subentry 1.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC Draft IETF LDUP Subentry object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_ldup_1" scope="local">
+
+    <testcase name="getTestCaseName('Draft IETF LDUP Subentry 1')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Schema: Add an entry that is covered by draft-ietf-ldup-subentry.'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/ldup_subentry_1.ldif' % remote.data }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->  
+    
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test Draft IETF LDUP Subentry 2 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC Draft IETF LDUP Subentry 2
+    #@TestIssue                 
+    #@TestPurpose               Check RFC Draft IETF LDUP Subentry 2.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC Draft IETF LDUP Subentry 2 object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_ldup_2" scope="local">
+
+    <testcase name="getTestCaseName('Draft IETF LDUP Subentry 2')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Schema: Add an entry that is covered by draft-ietf-ldup-subentry.'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/ldup_subentry_2.ldif' % remote.data }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->  
+  
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC Test Draft IETF LDUP Subentry 3 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                RFC Schema Tests
+    #@TestName                  RFC Draft IETF LDUP Subentry 3
+    #@TestIssue                 
+    #@TestPurpose               Check RFC Draft IETF LDUP Subentry 3.
+    #@TestPreamble              none
+    #@TestStep                  Add Invalid RFC Draft IETF LDUP Subentry 3 object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add returns 53 (Unwilling to Perform) 
+-->
+
+  <function name="schema_rfc_ldup_3" scope="local">
+
+    <testcase name="getTestCaseName('Draft IETF LDUP Subentry 3')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Schema: Add an entry that is covered by draft-ietf-ldup-subentry.'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/ldup_subentry_3.ldif' % remote.data ,
+              'expectedRC'       : 53 }
+          </call>
+  
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema Disable Schema Checking -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                Disable Schema Checking
+    #@TestName                  Disable Schema Checking
+    #@TestIssue                 
+    #@TestPurpose               Check Disable Schema Checking.
+    #@TestPreamble              none
+    #@TestStep                  Set check schema to false.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_disable_schema_checking" scope="local">
+
+    <testcase name="getTestCaseName('Disable Schema Checking')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Disable schema checking.'
+          </message>
+  
+          <call function="'modifyGlobal'">
+                { 'dsInstanceHost'         : server.host ,
+                  'dsInstanceDn'           : server.dn ,
+                  'dsInstancePswd'         : server.password ,
+                  'attributeName'          : 'check-schema' ,
+                  'attributeValue'         : 'false' }
+          </call> 
+
+          <!-- TODO: Need to verify the disabling of schema check. -->  
+          <!-- TODO: Should be part of a separate test suite. -->
+  
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema Enable Schema Checking -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                Enable Schema Checking
+    #@TestName                  Enable Schema Checking
+    #@TestIssue                 
+    #@TestPurpose               Check Enable Schema Checking.
+    #@TestPreamble              none
+    #@TestStep                  Set check schema to true.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_enable_schema_checking" scope="local">
+
+    <testcase name="getTestCaseName('Enable Schema Checking')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Enable schema checking.'
+          </message>
+  
+          <call function="'modifyGlobal'">
+                { 'dsInstanceHost'         : server.host ,
+                  'dsInstanceDn'           : server.dn ,
+                  'dsInstancePswd'         : server.password ,
+                  'attributeName'          : 'check-schema' ,
+                  'attributeValue'         : 'true' }
+          </call> 
+
+          <!-- TODO: Need to verify the enabling of schema check. -->  
+          <!-- TODO: Should be part of a separate test suite. -->
+    
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema Disable Syntax Checking for Generalized Time-->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                Disable Syntax Checking
+    #@TestName                  Disable Syntax Checking
+    #@TestIssue                 
+    #@TestPurpose               Check Disable Syntax Checking for Generalized Time.
+    #@TestPreamble              none
+    #@TestStep                  Set check schema to true.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_disable_syntax_checking" scope="local">
+
+    <testcase name="getTestCaseName('Disable Syntax Checking')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Disable Syntax Checking for Generalized Time.'
+          </message>
+  
+          <call function="'dsconfig'">
+                { 'dsInstanceHost'         : server.host ,
+                  'dsInstanceDn'           : server.dn ,
+                  'dsInstancePswd'         : server.password ,
+                  'subcommand'             : 'set-attribute-syntax-prop' ,
+                  'objectType'             : 'syntax-name' ,
+                  'objectName'             : 'Generalized Time',
+                  'optionsString'          : '--set enabled:false',
+                  'knownIssue'             : '2046'
+                  }
+          </call> 
+
+          <!-- TODO: Need to verify the disabling of syntax check. -->  
+          <!-- TODO: Should be part of a separate test suite. -->
+  
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema Enable Syntax Checking for Generalized Time -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                Enable Syntax Checking
+    #@TestName                  Enable Syntax Checking
+    #@TestIssue                 
+    #@TestPurpose               Check Enable Syntax Checking for Generalized Time.
+    #@TestPreamble              none
+    #@TestStep                  Set check schema to true.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_enable_syntax_checking" scope="local">
+
+    <testcase name="getTestCaseName('Enable Syntax Checking for Generalized Time')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Enable Syntax Checking for Generalized Time.'
+          </message>
+  
+          <call function="'dsconfig'">
+                { 'dsInstanceHost'         : server.host ,
+                  'dsInstanceDn'           : server.dn ,
+                  'dsInstancePswd'         : server.password ,
+                  'subcommand'             : 'set-attribute-syntax-prop' ,
+                  'objectType'             : 'syntax-name' ,
+                  'objectName'             : 'Generalized Time',
+                  'optionsString'          : '--set enabled:true'
+                  }
+          </call>
+
+          <!-- TODO: Need to verify the enabling of syntax check. -->  
+          <!-- TODO: Should be part of a separate test suite. -->
+  
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema Draft IETF Zeilenga LDAP COSINE 1 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                Draft IETF Zeilenga LDAP COSINE
+    #@TestName                  Draft IETF Zeilenga LDAP COSINE
+    #@TestIssue                 
+    #@TestPurpose               Check Draft IETF Zeilenga LDAP COSINE Schema Object.
+    #@TestPreamble              none
+    #@TestStep                  Add Draft IETF Zeilenga LDAP COSINE Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_cosine_1" scope="local">
+
+    <testcase name="getTestCaseName('Draft IETF Zeilenga LDAP COSINE 1')">
+      <try>
+        <sequence>
+
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by draft-ietf-zeilenga-ldap-cosine'
+          </message>
+    
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/ldap_cosine_1.ldif' % remote.data }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->
+            
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema Draft IETF Zeilenga LDAP COSINE 2 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                Draft IETF Zeilenga LDAP COSINE
+    #@TestName                  Draft IETF Zeilenga LDAP COSINE 2
+    #@TestIssue                 
+    #@TestPurpose               Check Draft IETF Zeilenga LDAP COSINE Schema Object.
+    #@TestPreamble              none
+    #@TestStep                  Add Draft IETF Zeilenga LDAP COSINE Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_cosine_2" scope="local">
+
+    <testcase name="getTestCaseName('Draft IETF Zeilenga LDAP COSINE 2')">
+      <try>
+        <sequence>
+
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by draft-ietf-zeilenga-ldap-cosine'
+          </message>
+    
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/ldap_cosine_2.ldif' % remote.data }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->
+  
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema Draft IETF Zeilenga LDAP COSINE 3 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                Draft IETF Zeilenga LDAP COSINE
+    #@TestName                  Draft IETF Zeilenga LDAP COSINE 3
+    #@TestIssue                 
+    #@TestPurpose               Check Draft IETF Zeilenga LDAP COSINE Schema Object.
+    #@TestPreamble              none
+    #@TestStep                  Add Invalid Draft IETF Zeilenga LDAP COSINE Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add returns 65 (Object Class Violation)
+-->
+
+  <function name="schema_cosine_3" scope="local">
+
+    <testcase name="getTestCaseName('Draft IETF Zeilenga LDAP COSINE 3')">
+      <try>
+        <sequence>
+
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by draft-ietf-zeilenga-ldap-cosine'
+          </message>
+    
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/ldap_cosine_3.ldif' % remote.data ,
+              'expectedRC'       : 65 }
+          </call>
+
+          <!-- TODO: Need to verify that the added entry is working as specified -->
+  
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try> 
+    </testcase>
+  </function>  
+
+<!-- Test Case : Schema RFC 2739 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                Schema RFC 2739
+    #@TestName                  Schema RFC 2739
+    #@TestIssue                 
+    #@TestPurpose               Check Schema RFC 2739 Schema Object.
+    #@TestPreamble              none
+    #@TestStep                  Add Schema RFC 2739 Schema Object.
+    #@TestStep                  Search Schema RFC 2739 Schema Object.
+    #@TestStep                  Add Schema RFC 2739 Schema Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_2739" scope="local">
+    
+    <testcase name="getTestCaseName('RFC 2739')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by rfc 2739'
+          </message>
+    
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc2739.ldif' % remote.data }
+          </call>
+    
+          <if expr="RC != 0">
+              <tcstatus result="'fail'"/>
+          </if>
+    
+          <message>
+             'Search the entry just added and return calCalURI '
+          </message>
+    
+          <call function="'SearchObject'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'dsBaseDN'         : 'o=rfc tests,dc=example,dc=com' ,
+              'dsFilter'         : 'uid=tsmith' ,
+              'attributes'     : 'calCalURI' }
+              
+          </call>
+    
+          <call function="'checktestRC'">
+              { 'returncode' : RC ,
+                'result'     : STAXResult }
+          </call>
+
+          <!-- TODO: Need to verify that correct attributes are returned -->
+
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try>
+    </testcase>
+  </function>
+
+<!-- Test Case : Schema RFC 2714 1 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                Schema RFC 2714 1
+    #@TestName                  Schema RFC 2714 1
+    #@TestIssue                 
+    #@TestPurpose               Check Schema RFC 2714 Schema Object.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC 2714 Schema Object.
+    #@TestStep                  Search Schema RFC 2714 Object.
+    #@TestStep                  Add Schema RFC 2714 Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_2714_1" scope="local">  
+
+    <testcase name="getTestCaseName('RFC 2714 1')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by rfc 2714'
+          </message>
+    
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc2714.ldif' % remote.data ,
+              'expectedRC'       : 65
+              }
+          </call>
+          
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try>
+    </testcase>
+</function>
+
+<!-- Test Case : Schema RFC 2714 2 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                Schema RFC 2714 2
+    #@TestName                  Schema RFC 2714 2
+    #@TestIssue                 
+    #@TestPurpose               Check Schema RFC 2714 Schema Object.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC 2714 Schema Object.
+    #@TestStep                  Search Schema RFC 2714 Object.
+    #@TestStep                  Add Schema RFC 2714 Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_2714_2" scope="local">  
+
+    <testcase name="getTestCaseName('RFC 2714 2')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by rfc 2714'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc2714_2.ldif' % remote.data }
+          </call>
+          
+          <if expr="RC != 0">
+              <tcstatus result="'fail'"/>
+          </if>
+  
+          <message>
+             'Search the entry just added and return corbaRepositoryId '
+          </message>
+  
+          <call function="'SearchObject'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'dsBaseDN'         : 'o=rfc tests,dc=example,dc=com' ,
+              'dsFilter'         : 'cn=corba1' ,
+              'attributes'     : 'corbaRepositoryId' }
+              
+          </call>
+          <call function="'checktestRC'">
+              { 'returncode' : RC ,
+                'result'     : STAXResult }
+          </call>
+  
+          <!-- TODO: Need to verify that correct attributes are returned -->
+            
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try>
+    </testcase>
+
+  </function>
+
+<!-- Test Case : Schema RFC 2713 -->
+<!--
+    Place test-specific test information here.
+    The tag, TestMarker, must be the same as the tag, TestSuiteName.
+    #@TestMarker                Schema RFC 2713
+    #@TestName                  Schema RFC 2713
+    #@TestIssue                 
+    #@TestPurpose               Check Schema RFC 2713 Schema Object.
+    #@TestPreamble              none
+    #@TestStep                  Add RFC 2713 Schema Object.
+    #@TestStep                  Search Schema RFC 2713 Object.
+    #@TestStep                  Add Schema RFC 2713 Object.
+    #@TestPostamble             none
+    #@TestResult                Success if Add Operation returns 0
+-->
+
+  <function name="schema_rfc_2713" scope="local">  
+  
+    <testcase name="getTestCaseName('RFC 2713')">
+      <try>
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+             'Schema: Add an entry that is covered by rfc 2713'
+          </message>
+  
+          <call function="'addEntry'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'entryToBeAdded'   : '%s/schema/ldifs/rfc2713.ldif' % remote.data }
+          </call>
+          
+          <if expr="RC != 0">
+              <tcstatus result="'fail'"/>
+          </if>
+  
+          <message>
+             'Search the entry just added and return javaClassName '
+          </message>
+  
+          <call function="'SearchObject'">
+            { 'dsInstanceHost'   : server.host ,
+              'dsInstancePort'   : server.port ,
+              'dsInstanceDn'     : server.dn ,
+              'dsInstancePswd'   : server.password ,
+              'dsBaseDN'         : 'ou=java object,o=rfc tests,dc=example,dc=com' ,
+              'dsFilter'         : 'cn=java1' ,
+              'attributes'     : 'javaClassName' }
+              
+          </call>
+  
+          <call function="'checktestRC'">
+              { 'returncode' : RC ,
+                'result'     : STAXResult }
+          </call>
+
+          <!-- TODO: Need to verify that correct attributes are returned -->
+                    
+        </sequence>
+        <finally>
+          <call function="'testCase_Postamble'"/>
+        </finally>
+      </try>
+    </testcase>
+</function>
+
+</stax>
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema.xml b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema.xml
index a871f2a..8544e37 100644
--- a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema.xml
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema.xml
@@ -26,55 +26,98 @@
  !      Copyright 2006-2008 Sun Microsystems, Inc.
  ! -->
 <stax>
+  <defaultcall function="main_schema"/>
 
-  <defaultcall function="main_schema" />
-
-  <function name="main_schema">
+  <function name="main_schema" scope="local">
     <function-list-args>
       <function-required-arg name="STAXParentID"/>
     </function-list-args>
 
     <sequence>
+      <try>
+        <block name="'main_schema'">
+          <sequence>
 
-      <block name="'schema'">
-      
-        <sequence>
-          <!--- Load the job environment for the test group execution -->
-          <import machine="STAF_LOCAL_HOSTNAME"
-                  file="'%s/environment.xml' % TESTS_FUNCTIONS_DIR" />
-          <call function="'loadJobEnvironment'">
-               { 'parent' : STAXParentID }
-          </call>  
+            <message log="1" level="'Info'">'STAXParentID= %s' % STAXParentID</message>
+            
+            <!--- Load the job environment for the test group execution -->
+            <import machine="STAF_LOCAL_HOSTNAME"
+                    file="'%s/environment.xml' % TESTS_FUNCTIONS_DIR" />
+            <call function="'loadJobEnvironment'">
+                 { 'parent' : STAXParentID }
+            </call>
 
-          <script>
-            CurrentTestPath['group']='schema'
-          </script>
-          
-          <call function="'testGroup_Preamble'"/>
-      
-          <script>
-            suiteList=[]
-            suiteList.append('schema_rfc_tests')
-            suiteList.append('schema_dynamic')
-          </script>
+            <script>
+              _group='schema'
+              CurrentTestPath={ 'group' : '%s' % _group }
+            </script>
 
-          <!-- Run the test suites -->
-          <iterate  var="__test" in="suiteList">
-            <sequence> 
-              <import machine="STAF_LOCAL_HOSTNAME"
-                file="'%s/testcases/schema/%s.xml' % (TESTS_DIR,__test)" />
-              <call function="'%s' % __test" />
-            </sequence>
-          </iterate>    
-  
-          <call function="'testGroup_Postamble'"/>
+            <!--- Test Group information
+            #@TestGroupName       Schema Test
+            #@TestGroupPurpose    Verify that schema is working correctly
+            -->
+            <call function="'testGroup_Preamble'"/>            
 
-        </sequence>
-    
-      </block>
-    
+            <!-- List of test suites to run -->
+            <script>
+              suiteList=[]
+              suiteList.append('rfc')
+              suiteList.append('dynamic')
+              suiteList.append('solaris')
+            </script>
+
+            <!-- Data global to this test group  -->
+            <!-- LDAP Server Object -->
+            <script>
+              server=directory_server()
+              server.location   = STAF_REMOTE_HOSTNAME
+              server.host       = DIRECTORY_INSTANCE_HOST
+              server.port       = DIRECTORY_INSTANCE_PORT
+              server.adminport  = DIRECTORY_INSTANCE_ADMIN_PORT
+              server.dn         = DIRECTORY_INSTANCE_DN
+              server.password   = DIRECTORY_INSTANCE_PSWD
+              server.suffix     = DIRECTORY_INSTANCE_SFX
+            </script>
+
+            <!-- Run the test suites -->
+            <iterate  var="_suite" in="suiteList">
+              <sequence>              
+                <try>
+                  <sequence>                  
+                    <import machine="STAF_LOCAL_HOSTNAME"
+                            file="'%s/testcases/%s/%s/%s_%s.xml' % 
+                              (TESTS_DIR,_group,_suite,_group,_suite)"/>
+                    <call function="'main_%s_%s' % (_group,_suite)" />
+                  </sequence>
+                <catch exception="'STAFException.TestSuite.SetupException'">
+                  <sequence>
+                    <message log="1" level="'fatal'">'Setup of test suite %s failed.' % _suite</message>
+                    <throw exception="'STAXException.TestGroupException'" />
+                  </sequence>
+                </catch>
+                <catch exception="'STAFException.TestSuite.MainException'">
+                  <sequence>
+                    <message log="1" level="'fatal'">'Main part of test suite %s failed.' % _suite</message>
+                    <throw exception="'STAXException.TestGroupException'" />
+                  </sequence>
+                </catch>
+                <catch exception="'STAFException.TestSuite.CleanupException'">
+                  <sequence>
+                    <message log="1" level="'fatal'">'Cleanup of test suite %s failed.' % _suite</message>
+                    <throw exception="'STAXException.TestGroupException'" />
+                  </sequence>
+                </catch>
+                </try>
+              </sequence>
+            </iterate>
+
+          </sequence>
+        </block>
+      <finally>
+        <!-- Test Group postamble -->
+        <call function="'testGroup_Postamble'"/>
+      </finally>
+      </try>
     </sequence>
-
   </function>
-
 </stax>
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_cleanup.xml b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_cleanup.xml
index 3c4a4c2..ba1924a 100755
--- a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_cleanup.xml
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_cleanup.xml
@@ -34,57 +34,51 @@
     <sequence>
 
       <block name="'cleanup'">
-      
+
+        <try>      
+
         <sequence>
 
-      
-          <block name="'Block DS Process Stop'">        
-          <!--- Stop DS -->
-        <sequence>
-              <message>
-                 'Stop DS running on port %s' % (DIRECTORY_INSTANCE_PORT)
-              </message>
-
-              <call function="'StopDsWithScript'">
-                { 'location'    : STAF_REMOTE_HOSTNAME,
-                  'dsHost'      : DIRECTORY_INSTANCE_HOST,
-                  'dsAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
-                  'dsBindDN'    : DIRECTORY_INSTANCE_DN,
-                  'dsBindPwd'   : DIRECTORY_INSTANCE_PSWD }
-              </call>
-
-              <call function="'checkRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-
+            <call function="'runFunction'">
+              { 'functionName'      : 'StopDsWithScript'                      ,
+                'functionMessage'   : 'Stop the Directory Server.'             ,
+                'functionException' : 'Server.StopException'                  ,
+                'functionArguments' : { 'location'    : STAF_REMOTE_HOSTNAME  ,
+                                        'dsHost'      : server.host           ,
+                                        'dsAdminPort' : server.adminport      ,
+                                        'dsBindDN'    : server.dn             ,
+                                        'dsBindPwd'   : server.password }
+              }
+            </call>
+            
+            <call function="'runFunction'">
+              { 'functionName'      : 'removeTopology'                  ,
+                'functionMessage'   : 'Remove DS topology.'             ,
+                'functionException' : 'Server.RemoveTopologyException' 
+              }
+            </call>                                 
+          
         </sequence>        
-          <!--- End Block DS Process Stop -->
-          </block>
-      
-                              
+          <catch exception="'STAXException.Server.RemoveTopologyException'" typevar="eType" var="eInfo">
+            <sequence>
+            <message log="1" level="'fatal'">
+              '%s: Remove topology failed. eInfo(%s)' % (eType,eInfo)
+            </message>
+            <throw exception="'STAFException.TestSuite.CleanupException'" />
+            </sequence>
+          </catch>
 
-      <block name="'Block Remove DS Topology'">
-      <!-- Remove  the topology created for the test suite -->
-      <sequence>
-        
-              <message>
-                 'Remove DS topology created for the Test Suite'
-              </message>          
+          <catch exception="'STAXException.Server.StopException'" typevar="eType" var="eInfo">
+            <sequence>
+            <message log="1" level="'fatal'">
+              '%s: Failed to stop Directory Server. eInfo(%s)' % (eType,eInfo)
+            </message>
+            <throw exception="'STAFException.TestSuite.CleanupException'" />
+            </sequence>
+          </catch>
 
-        <call function="'removeTopology'"/>
-        
-        <call function="'checkRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-      
-      </sequence>        
-      <!-- End Block Remove DS Topology-->  
-      </block>                                  
-              
-      
-        </sequence>        
+        </try>
+ 
       </block>
             
      </sequence>
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_dynamic.xml b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_dynamic.xml
deleted file mode 100644
index 33f5cb0..0000000
--- a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_dynamic.xml
+++ /dev/null
@@ -1,372 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE stax SYSTEM "../../../shared/stax.dtd">
-<!--
- ! CDDL HEADER START
- !
- ! The contents of this file are subject to the terms of the
- ! Common Development and Distribution License, Version 1.0 only
- ! (the "License").  You may not use this file except in compliance
- ! with the License.
- !
- ! You can obtain a copy of the license at
- ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
- ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
- ! See the License for the specific language governing permissions
- ! and limitations under the License.
- !
- ! When distributing Covered Code, exclude this CDDL HEADER in each
- ! file and exclude the License file at
- ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
- ! add the following below this CDDL HEADER, with the fields enclosed
- ! by brackets "[]" replaced with your own identifying * information:
- !      Portions Copyright [yyyy] [name of copyright owner]
- !
- ! CDDL HEADER END
- !
- !      Copyright 2008 Sun Microsystems, Inc.
- ! -->
-
-<stax>
-
-  <defaultcall function="schema_dynamic"/>
-
-  <function name="schema_dynamic">
-  
-    <sequence>
-
-      <block name="'dynamic'">
-      
-        <sequence>
-  
-          <script>
-            if not CurrentTestPath.has_key('group'):
-              CurrentTestPath['group']='schema'                  
-            CurrentTestPath['suite']=STAXCurrentBlock
-          </script>
-      
-          <call function="'testSuite_Preamble'"/>
-
-        <!---
-              #@TestGroupName             Schema
-              #@TestGroupPurpose          To test the Dynamic Schema functionality.
-              
-              Place suite-specific test information here.
-              #@TestSuiteName             Dynamic Schema Tests
-              #@TestSuitePurpose          Test the Dynamic Schema Updates over Protocol and via Files.
-              #@TestSuiteGroup            Dynamic Schema Tests
-              #@TestScript                schema_dynamic.xml
-        -->
-
-
-          <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/schema/schema_setup.xml' % (TESTS_DIR)"/>
-          <call function="'schema_setup'"/>
-
-                          
-         <!--- Test case: Update Schema via a file -->
-         <!---
-              Place test-specific test information here.
-              The tag, TestMarker, must be the same as the tag, TestSuiteName.
-              #@TestMarker                Dynamic Schema Tests
-              #@TestName                  Update via a file
-              #@TestIssue                 367
-              #@TestPurpose               To make sure the schema can be updated by a file.
-              #@TestPreamble              none
-              #@TestStep                  Create a task that will cause the server to 
-                                          read one or two files into the schema.
-                                          Then try adding a new entry that uses the
-                                          added schema.
-              #@TestPostamble             none
-              #@TestResult                Success if OpenDS returns 0
-          --> 
-        
-              <testcase name="getTestCaseName('Update via File')">
-           
-                <sequence>
-        
-                  <call function="'testCase_Preamble'"/>
-                  <message>
-                    'Schema: Dynamic Schema: Update via File'
-                  </message>
-                  <call function="'addSchemaTask'">
-                    { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
-                      'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
-                      'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
-                      'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
-                      'taskID'         : '6',
-                      'ldifFile'       : '05-DynamicSchemaAdd.ldif'
-                    }
-                  </call>
-        
-                  <if expr="RC != 0">
-                      <tcstatus result="'fail'"/>
-                  </if>
-                  
-                  <message>
-                     'Schema: Add an entry that uses this new schema'
-                  </message>
-  
-                  <call function="'addEntry'">
-                    { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                      'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                      'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                      'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                      'entryToBeAdded'   : '%s/schema/ldifs/dynamic_schema1.ldif' % remote.data }
-                  </call>
-              
-                  <if expr="RC != 0">
-                      <tcstatus result="'fail'"/>
-                  </if>
-  
-                  <message>
-                     'Search for the entry just added and return addschema1AT '
-                  </message>
-  
-                  <call function="'SearchObject'">
-                    { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                      'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                      'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                      'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                      'dsBaseDN'         : 'dc=dynamic-schema-tests,dc=example,dc=com' ,
-                      'dsFilter'         : 'objectclass=addschema1OC' ,
-                      'attributes'       : 'addschema1AT' }      
-                  </call>
-                  
-                  <call function="'checktestRC'">
-                      { 'returncode' : RC ,
-                        'result'     : STAXResult }
-                  </call>
-                       
-                  <call function="'testCase_Postamble'"/>
-        
-                </sequence>
-        
-              </testcase>
-         
-         <!--- Test case: Update Schema Over Protocol: Add -->
-         <!---
-              Place test-specific test information here.
-              The tag, TestMarker, must be the same as the tag, TestSuiteName.
-              #@TestMarker                Dynamic Schema Tests
-              #@TestName                  Update Over Protocol: Add 
-              #@TestIssue                 366
-              #@TestPurpose               To verify the schema can be updated over protocol.
-              #@TestPreamble              none
-              #@TestStep                  Update the schema over protocol adding 
-                                          a new objectclass and attributes.
-                                          Then try adding a new entry that uses these
-                                          new attributes and objectclass.
-              #@TestPostamble             none
-              #@TestResult                Success if OpenDS returns 0
-          -->  
-    
-          <!--- Test Case : Schema: Update Over Protocol: Add -->
-          <testcase name="getTestCaseName('Add')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Update Over Protocol: Add'
-              </message>
-              
-              <call function="'modifyEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeModified'   : '%s/schema/ldifs/updateSchema.ldif' % remote.data }
-              </call>
-  
-              <if expr="RC != 0">
-                  <tcstatus result="'fail'"/>
-              </if>
-                  
-              <message>
-                 'Schema: Add an entry that uses this new schema'
-              </message>
-  
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/dynamic_schema2.ldif' % remote.data }
-              </call>
-              
-              <if expr="RC != 0">
-                  <tcstatus result="'fail'"/>
-              </if>
-  
-              <message>
-                 'Search for the entry just added and return addschema2AT '
-              </message>
-  
-              <call function="'SearchObject'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'dsBaseDN'         : 'dc=dynamic-schema-tests-2,dc=example,dc=com' ,
-                  'dsFilter'         : 'objectclass=addschema2OC' ,
-                  'attributes'       : 'addschema2AT' }
-                
-              </call>
-                
-              <call function="'checktestRC'">
-                { 'returncode' : RC ,
-                  'result'     : STAXResult }
-              </call>
-                     
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-            
-          </testcase>   
- 
-       <!--- Test case: Update Schema Over Protocol: Replace -->
-       <!---
-            Place test-specific test information here.
-            The tag, TestMarker, must be the same as the tag, TestSuiteName.
-            #@TestMarker                Dynamic Schema Tests
-            #@TestName                  Update Over Protocol: Replace 
-            #@TestIssue                 366
-            #@TestPurpose               To verify attributes and objectclasses can be replaced over protocol.
-            #@TestPreamble              none
-            #@TestStep                  Update the schema over protocol by replacing  
-                                        an objectclass and attributes with new ones.
-                                        Then try adding a new entry that uses the replaced
-                                        attributes and objectclass, it should fail. Then try
-                                        adding an entry that uses the replacement objectclass and attributes. 
-            #@TestPostamble             none
-            #@TestResult                Success if OpenDS returns 0
-        -->
-
-        
-          <testcase name="getTestCaseName('Replace')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema: Update Over Protocol: Replace'
-            </message>
-            
-            <call function="'modifyEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeModified'   : '%s/schema/ldifs/updateSchema2.ldif' % remote.data }
-            </call>
-
-            <if expr="RC != 0">
-                <tcstatus result="'fail'"/>
-            </if>
-                
-            <message>
-               'Schema: Add an entry that uses the schema just replaced'
-            </message>
-
-            <call function="'addEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/schema/ldifs/dynamic_schema4.ldif' % remote.data }
-            </call>
-                
-            <call function="'checktestRC'">
-                { 'returncode' : RC ,
-                  'result'     : STAXResult }
-            </call>
-            
-            <message>
-               'Search for the entry just added and return addschema3AT '
-            </message>
-
-            <call function="'SearchObject'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsBaseDN'         : 'dc=dynamic-schema-tests-2,dc=example,dc=com' ,
-                'dsFilter'         : 'objectclass=addschema3OC' ,
-                'attributes'       : 'addschema3AT' }
-                
-            </call>
-                
-            <call function="'checktestRC'">
-                { 'returncode' : RC ,
-                  'result'     : STAXResult }
-            </call>
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase> 
-        
-               
-       <!--- Test case: Update Schema Over Protocol: Remove -->
-       <!---
-            Place test-specific test information here.
-            The tag, TestMarker, must be the same as the tag, TestSuiteName.
-            #@TestMarker                Dynamic Schema Tests
-            #@TestName                  Update Over Protocol: Remove 
-            #@TestIssue                 366
-            #@TestPurpose               To verify attributes and objectclasses can be removed over protocol.
-            #@TestPreamble              none
-            #@TestStep                  Update the schema over protocol by removing
-                                        an objectclass and attributes.
-                                        Then try adding a new entry that uses these
-                                        removed attributes and objectclass, it should fail.
-            #@TestPostamble             none
-            #@TestResult                Success if OpenDS returns 0
-        -->
-          <testcase name="getTestCaseName('Remove')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema: Update Over Protocol: Remove'
-            </message>
-            
-            <call function="'modifyEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeModified'   : '%s/schema/ldifs/updateSchema3.ldif' % remote.data }
-            </call>
-
-            <if expr="RC != 0">
-                <tcstatus result="'fail'"/>
-            </if>
-                
-            <message>
-               'Schema: Try to add an entry that uses the schema just removed'
-            </message>
-
-            <call function="'addEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/schema/ldifs/dynamic_schema3.ldif' % remote.data ,
-                'expectedRC'       : 65
-              }
-            </call>
-                     
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase>
-
-
-          <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/schema/schema_cleanup.xml' % (TESTS_DIR)"/>
-          <call function="'schema_cleanup'"/>
-
-                                
-        <call function="'testSuite_Postamble'"/>
-      
-        </sequence>
-    
-      </block>
-    
-    </sequence>
-
-  </function>
-
-</stax>
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_rfc_tests.xml b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_rfc_tests.xml
deleted file mode 100644
index dfc1473..0000000
--- a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_rfc_tests.xml
+++ /dev/null
@@ -1,1039 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE stax SYSTEM "../../../shared/stax.dtd">
-<!--
- ! CDDL HEADER START
- !
- ! The contents of this file are subject to the terms of the
- ! Common Development and Distribution License, Version 1.0 only
- ! (the "License").  You may not use this file except in compliance
- ! with the License.
- !
- ! You can obtain a copy of the license at
- ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
- ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
- ! See the License for the specific language governing permissions
- ! and limitations under the License.
- !
- ! When distributing Covered Code, include this CDDL HEADER in each
- ! file and include the License file at
- ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
- ! add the following below this CDDL HEADER, with the fields enclosed
- ! by brackets "[]" replaced with your own identifying information:
- !      Portions Copyright [yyyy] [name of copyright owner]
- !
- ! CDDL HEADER END
- !
- !      Copyright 2006-2008 Sun Microsystems, Inc.
- ! -->
-<stax>
-
-  <defaultcall function="schema_rfc_tests"/>
-
-  <function name="schema_rfc_tests">
-
-    <sequence>
-
-      <block name="'rfc'">
-      
-        <sequence>
-  
-          <script>
-            if not CurrentTestPath.has_key('group'):
-              CurrentTestPath['group']='schema'                          
-            CurrentTestPath['suite']=STAXCurrentBlock
-          </script>
-            
-          <call function="'testSuite_Preamble'"/>
-
-
-          <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/schema/schema_setup.xml' % (TESTS_DIR)"/>
-          <call function="'schema_setup'"/>
-                        
-         
-          <!--- Test Case : Schema RFC Test 2079 -->
-          <testcase name="getTestCaseName('RFC 2079')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by rfc 2079'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc2079.ldif' % remote.data }
-              </call>
-      
-              <call function="'checktestRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase> 
-        
-          <!--- Test Case : Schema RFC Test 2247 -->
-          <testcase name="getTestCaseName('RFC 2247 1')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by rfc 2247'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc2247_1.ldif' % remote.data }
-              </call>
-      
-              <call function="'checktestRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>
-          
-          <!--- Test Case : Schema RFC Test 2247 -->
-          <testcase name="getTestCaseName('RFC 2247 2')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by rfc 2247'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc2247_2.ldif' % remote.data }
-              </call>
-      
-              <call function="'checktestRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>
-          
-          <!--- Test Case : Schema RFC Test 2247 -->
-          <testcase name="getTestCaseName('RFC 2247 3')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by rfc 2247'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc2247_3.ldif' % remote.data ,
-                  'expectedRC'       : 65
-                }
-              </call>
-
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>
-          
-          <!--- Test Case : Schema RFC 2247 -->
-          <testcase name="getTestCaseName('RFC 2247 4')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by rfc 2247'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc2247_4.ldif' % remote.data ,
-                  'expectedRC'       : 65
-                }
-              </call>
-
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>
-          
-          <!--- Test Case : Schema RFC 2247 -->
-          <testcase name="getTestCaseName('RFC 2247 5')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by rfc 2247'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc2247_5.ldif' % remote.data ,
-                  'expectedRC'       : 65
-                }
-              </call>
-
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>   
-      
-          <!--- Test Case : Schema RFC Test 2377 -->
-          <testcase name="getTestCaseName('RFC 2377')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by rfc 2377'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc2377.ldif' % remote.data }
-              </call>
-      
-              <call function="'checktestRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>
-          
-          <!--- Test Case : Schema RFC Test 2798 -->
-          <testcase name="getTestCaseName('RFC 2798')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by rfc 2798'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc2798.ldif' % remote.data }
-              </call>
-      
-              <call function="'checktestRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase> 
-          
-          <!--- Test Case : Schema RFC 3045 -->
-          <testcase name="getTestCaseName('RFC 3045 1')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Modify an entry that is covered by rfc 3045'
-              </message>
-              
-              <call function="'modifyEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeModified'   : '%s/schema/ldifs/rfc3045_1.ldif' % remote.data ,
-                  'expectedRC'       : 53
-                }
-              </call>
-
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>
-          
-          <!--- Test Case : Schema RFC 3045 -->
-          <testcase name="getTestCaseName('RFC 3045 2')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Modify an entry that is covered by rfc 3045'
-              </message>
-              
-              <call function="'modifyEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeModified'   : '%s/schema/ldifs/rfc3045_2.ldif' % remote.data ,
-                  'expectedRC'       : 53
-                }
-              </call>
-      
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>
-          
-          <!--- Test Case : Schema RFC 4403 -->
-          <testcase name="getTestCaseName('RFC 4403 1')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by rfc 4403'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc4403_1.ldif' % remote.data }
-              </call>
-      
-              <call function="'checktestRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>
-          
-          <!--- Test Case : Schema RFC 4403 -->
-          <testcase name="getTestCaseName('RFC 4403 2')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by rfc 4403'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc4403_2.ldif' % remote.data }
-              </call>
-      
-              <call function="'checktestRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>
-          
-          <!--- Test Case : Schema RFC Test 4403 -->
-          <testcase name="getTestCaseName('RFC 4403 3')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by rfc 4403'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc4403_3.ldif' % remote.data ,
-                  'expectedRC'       : 65
-                }
-              </call>
-      
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>  
-      
-          <!--- Test Case : Schema RFC Test 4403 -->
-          <testcase name="getTestCaseName('RFC 4403 4')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by rfc 4403'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc4403_4.ldif' % remote.data }
-              </call>
-      
-              <call function="'checktestRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>
-          
-          <!--- Test Case : Schema RFC Test 4403 -->
-          <testcase name="getTestCaseName('RFC 4403 5')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by rfc 4403'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc4403_5.ldif' % remote.data ,
-                  'expectedRC'       : 65
-                }
-              </call>
-
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>
-          
-          <!--- Test Case : Schema RFC Test 2307 -->
-          <testcase name="getTestCaseName('Draft Howard RFC 2307bis 1')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by draft-howard-rfc2307bis'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc2307bis_1.ldif' % remote.data }
-              </call>
-      
-              <call function="'checktestRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>
-          
-          <!--- Test Case : Schema RFC 2307 -->
-          <testcase name="getTestCaseName('Draft Howard RFC 2307bis 2')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by draft-howard-rfc2307bis'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc2307bis_2.ldif' % remote.data ,
-                  'expectedRC'       : 65
-                }
-              </call>
-              
-              <call function="'testCase_Postamble'"/>
-          
-            </sequence>
-          
-          </testcase>  
-  
-          <!--- Test Case : Schema RFC 2307 -->
-          <testcase name="getTestCaseName('Draft Howard RFC 2307bis 1')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by draft-howard-rfc2307bis'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc2307bis_3.ldif' % remote.data }
-              </call>
-      
-              <call function="'checktestRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>
-          
-          <!--- Test Case : Schema RFC Test 2307 -->
-          <testcase name="getTestCaseName('Draft Howard RFC 2307bis 1')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by draft-howard-rfc2307bis'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/rfc2307bis_4.ldif' % remote.data ,
-                  'expectedRC'       : 65
-                }
-              </call>
-      
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>  
-      
-          <!--- Test Case : Schema RFC draft-furseth-ldap-untypedobject -->
-          <testcase name="getTestCaseName('Draft Furseth LDAP Untypedobject')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by draft-furseth-ldap-untypedobject'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/untypedobject.ldif' % remote.data }
-              </call>
-      
-              <call function="'checktestRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase> 
-         
-          <!--- Test Case : Schema RFC draft-good-ldap-changelog -->
-          <testcase name="getTestCaseName('Draft Good LDAP Changelog 1')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by draft-good-ldap-changelog'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/changelog_1.ldif' % remote.data }
-              </call>
-      
-              <call function="'checktestRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>
-          
-          <!--- Test Case : Schema RFC draft-good-ldap-changelog -->
-          <testcase name="getTestCaseName('Draft Good LDAP Changelog 2')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by draft-good-ldap-changelog'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/changelog_2.ldif' % remote.data }
-              </call>
-      
-              <call function="'checktestRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>  
-      
-          <!--- Test Case : Schema RFC draft-good-ldap-changelog -->
-          <testcase name="getTestCaseName('Draft Good LDAP Changelog 2')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by draft-good-ldap-changelog'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/changelog_3.ldif' % remote.data }
-              </call>
-      
-              <call function="'checktestRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase> 
-      
-          <!--- Test Case : Schema RFC Test draft-howard-namedobject -->
-          <testcase name="getTestCaseName('Draft Howard NamedObject 1')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by draft-howard-namedobject'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/namedobject_1.ldif' % remote.data }
-              </call>
-      
-              <call function="'checktestRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-              <call function="'testCase_Postamble'"/>
-            </sequence>
-          </testcase>  
-        
-          <!--- Test Case : Schema RFC Test draft-howard-namedobject -->
-          <testcase name="getTestCaseName('Draft Howard NamedObject 2')">
-            <sequence>
-              <call function="'testCase_Preamble'"/>
-              <message>
-                 'Schema: Add an entry that is covered by draft-howard-namedobject'
-              </message>
-      
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/namedobject_2.ldif' % remote.data }
-            </call>
-    
-            <call function="'checktestRC'">
-                { 'returncode' : RC ,
-                  'result'     : STAXResult }
-            </call>
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase>  
-    
-        <!--- Test Case : Schema RFC Test draft-ietf-ldup-subentry -->
-        <testcase name="getTestCaseName('Draft IETF LDUP Subentry 1')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema: Add an entry that is covered by draft-ietf-ldup-subentry'
-            </message>
-    
-            <call function="'addEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/schema/ldifs/ldup_subentry_1.ldif' % remote.data }
-            </call>
-    
-            <call function="'checktestRC'">
-                { 'returncode' : RC ,
-                  'result'     : STAXResult }
-            </call>
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase> 
-        
-        <!--- Test Case : Schema RFC Test draft-ietf-ldup-subentry -->
-        <testcase name="getTestCaseName('Draft IETF LDUP Subentry 2')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema: Add an entry that is covered by draft-ietf-ldup-subentry'
-            </message>
-    
-            <call function="'addEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/schema/ldifs/ldup_subentry_2.ldif' % remote.data }
-            </call>
-    
-            <call function="'checktestRC'">
-                { 'returncode' : RC ,
-                  'result'     : STAXResult }
-            </call>
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase>
-    
-        <!--- Test Case : Schema RFC Test draft-ietf-ldup-subentry -->
-        <testcase name="getTestCaseName('Draft IETF LDUP Subentry 3')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema: Add an entry that is covered by draft-ietf-ldup-subentry'
-            </message>
-    
-            <call function="'addEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/schema/ldifs/ldup_subentry_3.ldif' % remote.data ,
-                'expectedRC'       : 53
-              }
-            </call>
-    
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase>  
-    
-        <!--- Test Case : Schema Disable Schema Checking -->
-        <testcase name="getTestCaseName('Disable Schema Checking')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema: Disable schema checking'
-            </message>
-                                                                               
-            <call function="'modifyGlobal'">
-                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
-                    'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
-                    'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'attributeName'          : 'check-schema' ,
-                    'attributeValue'         : 'false' }
-            </call> 
-    
-            <call function="'checktestRC'">
-                { 'returncode' : RC ,
-                  'result'     : STAXResult }
-            </call>
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase>
-        
-        <!--- Test Case : Schema: Enable Schema Checking' -->
-        <testcase name="getTestCaseName('Enable Schema Checking')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema: Enable Schema Checking'
-            </message>
-                                                                               
-            <call function="'modifyGlobal'">
-                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
-                    'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
-                    'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'attributeName'          : 'check-schema' ,
-                    'attributeValue'         : 'true' }
-            </call>
-    
-            <call function="'checktestRC'">
-                { 'returncode' : RC ,
-                  'result'     : STAXResult }
-            </call>
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase>
-                
-        <!--- Test Case : Schema: Disable Syntax Checking -->
-        <testcase name="getTestCaseName('Disable Syntax Checking')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema: Disable syntax checking'
-            </message>
-            
-            <call function="'dsconfig'">
-                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
-                    'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
-                    'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'subcommand'             : 'set-attribute-syntax-prop' ,
-                    'objectType'             : 'syntax-name' ,
-                    'objectName'             : 'Generalized Time',
-                    'optionsString'          : '--set enabled:false',
-                    'knownIssue'             : '2046'
-                    }
-            </call> 
-
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase>
-        
-        <!--- Test Case : Schema: Enable Syntax Checking -->
-        <testcase name="getTestCaseName('Enable Syntax Checking')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema:  Enable syntax checking'
-            </message>
-                        
-            <call function="'dsconfig'">
-                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
-                    'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
-                    'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'subcommand'             : 'set-attribute-syntax-prop' ,
-                    'objectType'             : 'syntax-name' ,
-                    'objectName'             : 'Generalized Time',
-                    'optionsString'          : '--set enabled:true'
-                    }
-            </call>
-    
-            <call function="'checktestRC'">
-                { 'returncode' : RC ,
-                  'result'     : STAXResult }
-            </call>
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase>
-        
-        <!--- Test Case : Schema RFC Test draft-ietf-zeilenga-ldap-cosine -->
-        <testcase name="getTestCaseName('Draft IETF Zeilenga LDAP COSINE 1')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema: Add an entry that is covered by draft-ietf-zeilenga-ldap-cosine'
-            </message>
-    
-            <call function="'addEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/schema/ldifs/ldap_cosine_1.ldif' % remote.data }
-            </call>
-    
-            <call function="'checktestRC'">
-                { 'returncode' : RC ,
-                  'result'     : STAXResult } 
-           </call>
-           <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase>
-        
-        <!--- Test Case : Schema RFC Test draft-ietf-zeilenga-ldap-cosine -->
-        <testcase name="getTestCaseName('Draft IETF Zeilenga LDAP COSINE 2')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema: Add an entry that is covered by draft-ietf-zeilenga-ldap-cosine'
-            </message>
-    
-            <call function="'addEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/schema/ldifs/ldap_cosine_2.ldif' % remote.data }
-            </call>
-    
-            <call function="'checktestRC'">
-                { 'returncode' : RC ,
-                  'result'     : STAXResult } 
-            </call>
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase>
-        
-        <!--- Test Case : Schema RFC Test draft-ietf-zeilenga-ldap-cosine -->
-        <testcase name="getTestCaseName('Draft IETF Zeilenga LDAP COSINE 3')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema: Add an entry that is covered by draft-ietf-zeilenga-ldap-cosine'
-            </message>
-    
-            <call function="'addEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/schema/ldifs/ldap_cosine_3.ldif' % remote.data ,
-                'expectedRC'       : 65
-                }
-            </call>
-    
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase>
-        
-        <testcase name="getTestCaseName('RFC 2739')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema: Add an entry that is covered by rfc 2739'
-            </message>
-    
-            <call function="'addEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/schema/ldifs/rfc2739.ldif' % remote.data }
-            </call>
-    
-            <if expr="RC != 0">
-                <tcstatus result="'fail'"/>
-            </if>
-    
-            <message>
-               'Search the entry just added and return calCalURI '
-            </message>
-    
-            <call function="'SearchObject'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsBaseDN'         : 'o=rfc tests,dc=example,dc=com' ,
-                'dsFilter'         : 'uid=tsmith' ,
-                'attributes'     : 'calCalURI' }
-                
-            </call>
-    
-            <call function="'checktestRC'">
-                { 'returncode' : RC ,
-                  'result'     : STAXResult }
-            </call>
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase>
-        
-        <testcase name="getTestCaseName('RFC 2714 1')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema: Add an entry that is covered by rfc 2714'
-            </message>
-    
-            <call function="'addEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/schema/ldifs/rfc2714.ldif' % remote.data ,
-                'expectedRC'       : 65
-                }
-            </call>
-            
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase>
-        
-        <testcase name="getTestCaseName('RFC 2714 2')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema: Add an entry that is covered by rfc 2714'
-            </message>
-    
-            <call function="'addEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/schema/ldifs/rfc2714_2.ldif' % remote.data }
-            </call>
-            
-            <if expr="RC != 0">
-                <tcstatus result="'fail'"/>
-            </if>
-    
-            <message>
-               'Search the entry just added and return corbaRepositoryId '
-            </message>
-    
-            <call function="'SearchObject'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsBaseDN'         : 'o=rfc tests,dc=example,dc=com' ,
-                'dsFilter'         : 'cn=corba1' ,
-                'attributes'     : 'corbaRepositoryId' }
-                
-            </call>
-            <call function="'checktestRC'">
-                { 'returncode' : RC ,
-                  'result'     : STAXResult }
-            </call>
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase>
-        
-        <testcase name="getTestCaseName('RFC 2713')">
-          <sequence>
-            <call function="'testCase_Preamble'"/>
-            <message>
-               'Schema: Add an entry that is covered by rfc 2713'
-            </message>
-    
-            <call function="'addEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/schema/ldifs/rfc2713.ldif' % remote.data }
-            </call>
-            
-            <if expr="RC != 0">
-                <tcstatus result="'fail'"/>
-            </if>
-    
-            <message>
-               'Search the entry just added and return javaClassName '
-            </message>
-    
-            <call function="'SearchObject'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsBaseDN'         : 'ou=java object,o=rfc tests,dc=example,dc=com' ,
-                'dsFilter'         : 'cn=java1' ,
-                'attributes'     : 'javaClassName' }
-                
-            </call>
-    
-            <call function="'checktestRC'">
-                { 'returncode' : RC ,
-                  'result'     : STAXResult }
-            </call>
-            <call function="'testCase_Postamble'"/>
-          </sequence>
-        </testcase>
-
-
-          <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/schema/schema_cleanup.xml' % (TESTS_DIR)"/>
-          <call function="'schema_cleanup'"/>
-
-                            
-        <call function="'testSuite_Postamble'"/>
-        
-        </sequence>
-    
-      </block>
-    
-    </sequence>
-
-  </function>
-
-</stax>
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_setup.xml b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_setup.xml
index a5df571..d73eafa 100644
--- a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_setup.xml
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/schema_setup.xml
@@ -34,88 +34,85 @@
     <sequence>
 
       <block name="'setup'">
-      
-        <sequence>
-              
-          
-      <block name="'Block Create DS Topology'">
-      <!-- Create the topology necessary to the test group/suite -->
-        <sequence>
-                
-              <message>
-                 'Create DS topology as described in config.py'
-              </message>
-          
-        <call function="'createTopology'">
-          { 'initialiseInstance' : True }
-        </call>
-                    
-        <call function="'checkRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-      
-            </sequence>      
-          <!--- End Block Create DS Topology -->  
-          </block>                    
 
-
-      <block name="'Block DS Process Active'">      
-          <!--- Start DS -->
-        <sequence>
-        
-              <message>
-                 'Start DS to run on port %s' % (DIRECTORY_INSTANCE_PORT)
-              </message>
-  
-              <!--- Start DS -->
-              <call function="'StartDsWithScript'">
-               { 'location'  : STAF_REMOTE_HOSTNAME }
-              </call>
-  
-              <call function="'checkRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-  
-              <!--- Check that DS started -->
-              <call function="'isAlive'">
-                { 'noOfLoops'        : 5 ,
-                  'noOfMilliSeconds' : 2000 }
-              </call>      
-        
-            </sequence>
-          <!--- End Block DS Process Active -->
-          </block>              
-            
-
-          <block name="'Block DS Load Data'">
-      <!-- Load the data needed by the test suite -->      
+        <try>
           <sequence>
-
-              <message>
-                 'Add entries that are required for the Schema Tests'
-              </message>
-    
-              <call function="'addEntry'">
-                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                  'entryToBeAdded'   : '%s/schema/ldifs/schema_start.ldif' % remote.data }
-              </call>
-    
-              <call function="'checkRC'">
-                  { 'returncode' : RC ,
-                    'result'     : STAXResult }
-              </call>
-
-                                              
-      </sequence>
-          <!-- End Block DS Load Data -->                                        
-          </block>
               
-        </sequence>        
+            <!-- Create the topology necessary to the test group/suite -->                
+            <call function="'runFunction'">
+              { 'functionName'      : 'createTopology'                  ,
+                'functionMessage'   : 'Create DS topology'              ,
+                'functionException' : 'Server.CreateTopologyException'  ,
+                'functionArguments' : { 'initialiseInstance' : True }
+              }
+            </call>
+  
+            <!-- Start the OpenDS Server -->                  
+            <call function="'runFunction'">
+              { 'functionName'      : 'StartDsWithScript'                   ,
+                'functionMessage'   : 'Start the Directory Server.'         ,
+                'functionException' : 'Server.StartException'               ,
+                'functionArguments' : { 'location' : STAF_REMOTE_HOSTNAME }
+              }
+            </call>
+  
+            <!--- Check that DS started -->
+            <call function="'runFunction'">
+              { 'functionName'      : 'isAlive'                       ,
+                'functionMessage'   : 'Start the Directory Server.'   ,
+                'functionException' : 'Server.StartException'         ,
+                'functionArguments' : { 'noOfLoops'        : 5        ,
+                                        'noOfMilliSeconds' : 2000 }
+              }
+            </call>     
+  
+            <!-- Load the data needed by the test suite -->
+            <script>
+              schemastartldif='%s/schema/ldifs/schema_start.ldif' % remote.data
+            </script>
+            <call function="'runFunction'">
+              { 'functionName'      : 'addEntry'                       ,
+                'functionMessage'   : 'Start the Directory Server.'   ,
+                'functionException' : 'LDAP.AddEntryException'  ,
+                'functionArguments' : { 'dsInstanceHost'   : server.host ,
+                                        'dsInstancePort'   : server.port ,
+                                        'dsInstanceDn'     : server.dn ,
+                                        'dsInstancePswd'   : server.password ,
+                                        'entryToBeAdded'   : schemastartldif }
+              }  
+            </call>
+              
+          </sequence>        
+
+          <catch exception="'STAXException.Server.CreateTopologyException'" typevar="eType" var="eInfo">
+            <sequence>
+            <message log="1" level="'fatal'">
+              '%s: Create topology failed. eInfo(%s)' % (eType,eInfo)
+            </message>
+            <throw exception="'STAFException.TestSuite.SetupException'" />
+            </sequence>
+          </catch>
+
+          <catch exception="'STAXException.Server.StartException'" typevar="eType" var="eInfo">
+            <sequence>
+            <message log="1" level="'fatal'">
+              '%s: Failed to start Directory Server. eInfo(%s)' % (eType,eInfo)
+            </message>
+            <throw exception="'STAFException.TestSuite.SetupException'" />
+            </sequence>
+          </catch>
+
+          <catch exception="'STAXException.LDAP.AddEntryException'" typevar="eType" var="eInfo">
+            <sequence>
+            <message log="1" level="'fatal'">
+              '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo)
+            </message>
+            <throw exception="'STAFException.TestSuite.SetupException'" />
+            </sequence>
+          </catch>          
+
+        </try>
+
       </block>
             
      </sequence>
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/solaris/schema_solaris.xml b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/solaris/schema_solaris.xml
new file mode 100644
index 0000000..da087c8
--- /dev/null
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/solaris/schema_solaris.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd">
+<!--
+ ! CDDL HEADER START
+ !
+ ! The contents of this file are subject to the terms of the
+ ! Common Development and Distribution License, Version 1.0 only
+ ! (the "License").  You may not use this file except in compliance
+ ! with the License.
+ !
+ ! You can obtain a copy of the license at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ ! See the License for the specific language governing permissions
+ ! and limitations under the License.
+ !
+ ! When distributing Covered Code, include this CDDL HEADER in each
+ ! file and include the License file at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+ ! add the following below this CDDL HEADER, with the fields enclosed
+ ! by brackets "[]" replaced with your own identifying information:
+ !      Portions Copyright [yyyy] [name of copyright owner]
+ !
+ ! CDDL HEADER END
+ !
+ !      Copyright 2008 Sun Microsystems, Inc.
+ ! -->
+<stax>
+  <defaultcall function="main_schema_solaris"/>
+  <function name="main_schema_solaris" scope="local">
+    <sequence>
+      <block name="'main_schema_solaris'">
+        <try>
+          <sequence>
+            <script>
+              CurrentTestPath['group']='schema'        
+              CurrentTestPath['suite']='solaris'
+              
+              __group=CurrentTestPath['group']
+              __groupdir='%s/testcases/%s' % (TESTS_DIR,__group)
+            </script>
+
+            <!--- Test Suite information
+            #@TestSuiteName       Native schema test suite
+            #@TestSuitePurpose    Verify LDAP Naming Services Schema Elements
+            #@TestSuiteID         Suite
+            #@TestSuiteGroup      Example
+            #@TestGroup           Example
+            #@TestScript          suite.xml
+            #@TestHTMLLink        http://opends.dev.java.net/
+            -->          
+            <call function="'testSuite_Preamble'"/>
+
+            <try>
+              <sequence> 
+ 
+                <!-- List of Import of Test Functions -->
+                <script>
+                  importList=[]
+                  importList.append('schema_setup')
+                  importList.append('solaris/schema_solaris_tests')
+                  importList.append('schema_cleanup')
+                </script>
+
+                <!-- Import the files for this test suite -->
+                <iterate var="__import" in="importList">
+                  <import machine="STAF_LOCAL_HOSTNAME"
+                    file="'%s/%s.xml' % (__groupdir,__import)"/>
+                </iterate>                                                                       
+
+                <!-- Test Suite Setup -->
+                <call function="'%s_setup' % __group"/>
+                                                    
+                <!-- List of Test Cases -->
+                <script>
+                  testsList=[]
+                  testsList.append('schema_solaris_001')
+                  testsList.append('schema_rfc4876_001')
+                </script>
+
+                <!-- Execute the Tests -->
+                <iterate var="__test" in="testsList">
+                  <sequence>
+                    <call function="'%s' % (__test)" />
+                  </sequence>
+                </iterate>                
+                                
+              </sequence>
+            <catch exception="'STAFException.TestSuite.SetupException'">
+              <sequence>
+                <message log="1" level="'fatal'">
+                  'Setup of test suite failed.'
+                </message>
+                <rethrow/>
+              </sequence>
+            </catch>
+
+            <finally>
+              <message>'Test Cases Completed.'</message>
+            </finally>
+
+            </try>
+
+          </sequence>
+          
+          <finally>
+            <sequence>
+              <!-- Test Suite Cleanup -->
+              <message>'Finally: Example Cleanup.'</message>
+              <call function="'%s_cleanup' % __group"/>
+              <call function="'testSuite_Postamble'"/>
+            </sequence>
+          </finally>
+ 
+        </try>
+      </block>
+    </sequence>
+  </function>
+</stax>
diff --git a/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/solaris/schema_solaris_tests.xml b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/solaris/schema_solaris_tests.xml
new file mode 100644
index 0000000..3e8b271
--- /dev/null
+++ b/opendj-sdk/opends/tests/staf-tests/functional-tests/testcases/schema/solaris/schema_solaris_tests.xml
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd">
+<!--
+ ! CDDL HEADER START
+ !
+ ! The contents of this file are subject to the terms of the
+ ! Common Development and Distribution License, Version 1.0 only
+ ! (the "License").  You may not use this file except in compliance
+ ! with the License.
+ !
+ ! You can obtain a copy of the license at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ ! See the License for the specific language governing permissions
+ ! and limitations under the License.
+ !
+ ! When distributing Covered Code, include this CDDL HEADER in each
+ ! file and include the License file at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+ ! add the following below this CDDL HEADER, with the fields enclosed
+ ! by brackets "[]" replaced with your own identifying information:
+ !      Portions Copyright [yyyy] [name of copyright owner]
+ !
+ ! CDDL HEADER END
+ !
+ !      Copyright 2008 Sun Microsystems, Inc.
+ ! -->
+<stax>
+               
+  <!-- Definition of Test Cases -->             
+
+  <!--- Test Case : Schema: Add Solaris Schema Entries -->          
+  <!--- Test Case information
+  #@TestMarker          Schema
+  #@TestName            Schema: Add Solaris Schema Entries
+  #@TestID              Test
+  #@TestPurpose         Add Solaris schema entries
+  #@TestPreamble
+  #@TestSteps           Add over LDAP protocol Solaris schema entries
+  #@TestPostamble
+  #@TestResult          Test is successful if the result code is 0
+  -->                           
+  <function name="schema_solaris_001" scope="local">
+    <testcase name="getTestCaseName('Add Solaris Schema Entries')">                     
+      <sequence> 
+        <try>
+          <sequence>                
+            <call function="'testCase_Preamble'"/>
+            <message>
+               'Test Name = %s' % STAXCurrentTestcase
+            </message>
+
+            <script>
+              solarisLdif='%s/schema/solaris/solaris.ldif' % remote.data
+            </script>
+            <call function="'runFunction'">
+              { 'functionName'      : 'ldapModifyWithScript'              ,
+                'functionMessage'   : 'Add solaris schema entries'        ,
+                'functionException' : 'LDAP.ModifyException'              ,
+                'functionArguments' : { 'location'      : server.location ,
+                                        'dsInstanceHost': server.host     ,
+                                        'dsInstancePort': server.port     ,
+                                        'dsInstanceDn'  : server.dn       ,
+                                        'dsInstancePswd': server.password ,
+                                        'dsAdd'         : 'TRUE'          ,
+                                        'dsFilename'    : solarisLdif }
+              }
+            </call>
+
+            <!-- TODO: Need to verify that the added entry is working as specified -->
+
+          </sequence>
+          <catch exception="'STAXException.LDAP.ModifyException'" typevar="eType" var="eInfo">
+            <message log="1" level="'fatal'">
+              '%s: LDAPModify failed. eInfo(%s)' % (eType,eInfo)
+            </message>
+          </catch>
+          <finally>
+            <call function="'testCase_Postamble'"/>
+          </finally>
+        </try>
+      </sequence>
+    </testcase>
+  </function>
+
+  <!--- Test Case : Schema: Add RFC 4876 Schema Entries -->          
+  <!--- Test Case information
+  #@TestMarker          Schema
+  #@TestName            Schema: Add RFC 4876 Schema Entries
+  #@TestID              Test
+  #@TestPurpose         Add RFC 4876 schema entries
+  #@TestPreamble
+  #@TestSteps           Add over LDAP protocol RFC 4876 schema entries
+  #@TestPostamble
+  #@TestResult          Test is successful if the result code is 0
+  -->                           
+  <function name="schema_rfc4876_001" scope="local">
+    <testcase name="getTestCaseName('Add RFC 4876 Schema Entries')">                     
+      <sequence> 
+        <try>
+          <sequence>                
+            <call function="'testCase_Preamble'"/>
+            <message>
+               'Test Name = %s' % STAXCurrentTestcase
+            </message>
+
+            <script>
+              rfc4876ldif='%s/schema/solaris/rfc4876.ldif ' % remote.data
+            </script>
+            <call function="'runFunction'">
+              { 'functionName'      : 'ldapModifyWithScript'              ,
+                'functionMessage'   : 'Add solaris schema entries'        ,
+                'functionException' : 'LDAP.ModifyException'              ,
+                'functionArguments' : { 'location'      : server.location ,
+                                        'dsInstanceHost': server.host     ,
+                                        'dsInstancePort': server.port     ,
+                                        'dsInstanceDn'  : server.dn       ,
+                                        'dsInstancePswd': server.password ,
+                                        'dsAdd'         : 'TRUE'          ,
+                                        'dsFilename'    : rfc4876ldif }
+              }
+            </call>
+
+            <!-- TODO: Need to verify that the added entry is working as specified -->
+
+          </sequence>
+          <catch exception="'STAXException.LDAP.ModifyException'" typevar="eType" var="eInfo">
+            <message log="1" level="'fatal'">
+              '%s: LDAPModify failed. eInfo(%s)' % (eType,eInfo)
+            </message>
+          </catch>
+          <finally>
+            <call function="'testCase_Postamble'"/>
+          </finally>
+        </try>
+      </sequence>
+    </testcase>
+  </function>
+   
+</stax>
diff --git a/opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml b/opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml
index e9b94e6..69a926b 100755
--- a/opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml
+++ b/opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml
@@ -254,6 +254,15 @@
         searchre = re.compile('%s' % expectedString)
       </script> 
 
+      <!-- Check that returnString is really a string -->
+      <if expr='returnString.__class__ is not org.python.core.PyString'>
+        <sequence>
+          <message log="1" level="'Error'">
+            'ERROR : Invalid returnString type (%s), requires org.python.core.PyString.' % returnString.__class__
+          </message>
+          <tcstatus result="'fail'"/>
+        </sequence>
+      </if>
       <if expr='re.search(searchre, returnString) != None'>
         <sequence>
           <tcstatus result="'pass'"/>      
@@ -1428,7 +1437,7 @@
     </sequence>
   </function>
   
-  <function name="runFunction">
+  <function name="runFunction" scope="local">
     <function-map-args>
       <function-arg-def name="functionName" type="required">
         <function-arg-description>
@@ -1523,7 +1532,9 @@
           
         if not True:
           True=1
-          
+
+        _expectedRC=int(expectedRC)         
+
         _throwException=False
         if functionException:
           _throwException=True
@@ -1541,20 +1552,27 @@
         if functionFailureTC:
           _createFailureTC=True
       </script>
-      <message log="1" level="'info'" if="_displayMessage == True">'%s' % functionMessage</message>
-      <message log="1" level="'debug'">'runFunction: %s: called with parameters [%s]' % (functionName,functionArguments)</message>
+      <message log="1" level="'info'" if="_displayMessage == True">
+        '%s' % functionMessage
+      </message>
+      <message log="1" level="'debug'">
+        'runFunction: %s: called with parameters [%s]' % (functionName,functionArguments)
+      </message>
       <call function="functionName">functionArguments</call>
       <script>
-        _functionRC = RC
+        _functionRC = int(RC)
+        _functionResult = STAXResult
       </script>
-      <message log="1" level="'debug'">'runFunction: %s: returned [%s] with [%s]' % (functionName,RC,STAXResult)</message>
+      <message log="1" level="'debug'">
+        'runFunction: %s: returned [%s] with [%s]' % (functionName,RC,STAXResult)
+      </message>
 
       <!-- this section handles the optional case when we need to set the 
            test case status
        -->
       <if expr="_doSetTCStatus == True">
         <sequence>
-          <if expr="_functionRC == expectedRC">
+          <if expr="_functionRC == _expectedRC">
             <script>_tcStatus='pass'</script>
           </if>
           <tcstatus result="_tcStatus" />
@@ -1565,7 +1583,7 @@
            exception upon unexpected function return code
        -->
       <if expr="_throwException == True" >
-        <if expr="_functionRC != expectedRC" >
+        <if expr="_functionRC != _expectedRC" >
           <throw exception="'STAXException.%s' % functionException" />
         </if>
       </if>
@@ -1574,7 +1592,7 @@
            test case status to fail to reflect the failure in the test report.
       -->
       <if expr="_createFailureTC == True" >
-        <if expr="_functionRC != expectedRC" >
+        <if expr="_functionRC != _expectedRC" >
           <testcase name="'!!! %s [%s]' % (functionFailureTC,functionName)">
             <tcstatus result="'fail'" />
           </testcase>
@@ -1584,8 +1602,8 @@
       <!-- TODO: implement the signal raising mechanism -->
       <!-- TODO: implement the call back function mechanism -->
       
-      <!-- bubble the function return code up one level -->
-      <return>_functionRC</return>
+      <!-- bubble the function return code and result up one level -->
+      <return>[_functionRC,_functionResult]</return>
     </sequence>
   </function>
   

--
Gitblit v1.10.0