diff --git a/src/main/java/org/openepics/names/rest/beans/NameElement.java b/src/main/java/org/openepics/names/rest/beans/NameElement.java
index 0505cb06c02a3ec6540493e609f18fba401a752b..b5b38a8154ad8bac393f0753ec5a60f2e0796082 100644
--- a/src/main/java/org/openepics/names/rest/beans/NameElement.java
+++ b/src/main/java/org/openepics/names/rest/beans/NameElement.java
@@ -138,6 +138,12 @@ public class NameElement extends NameStructureElement implements Serializable {
         this.name = name;
     }
 
+    // utility method
+    public void setNameAndIndex(String name, String index) {
+    	this.index = index;
+    	this.name = name;
+    }
+
     @Override
     public boolean equals(Object obj) {
         if (this == obj)
diff --git a/src/main/java/org/openepics/names/util/ValidateUtil.java b/src/main/java/org/openepics/names/util/ValidateUtil.java
index 460d40c3d6787d068d35f7c18578566588794705..67398bff11b5d9c9cc1e09afd26b81b267e210c0 100644
--- a/src/main/java/org/openepics/names/util/ValidateUtil.java
+++ b/src/main/java/org/openepics/names/util/ValidateUtil.java
@@ -1024,14 +1024,16 @@ public class ValidateUtil {
                 List<SystemGroup> systemGroups = holderRepositories.getSystemGroupRepository().readSystemGroups(Status.APPROVED, false, FieldStructure.UUID, structureElement.getParent().toString());
                 ValidateUtil.validateCondition(systemGroups != null && systemGroups.size() == 1, HttpStatus.BAD_REQUEST, message, details);
 
+                // parent
                 // mnemonic
                 message = ValidateUtil.SYSTEM + ValidateUtil.SPACE + ValidateUtil.IS_NOT_CORRECT;
-                List<System> systems = holderRepositories.getSystemRepository().readSystems(Status.APPROVED, false, FieldStructure.MNEMONIC, structureElement.getMnemonic());
+                List<System> systems = holderRepositories.getSystemRepository().readSystems(new Status[] {Status.APPROVED}, false, new FieldStructure[] {FieldStructure.PARENT, FieldStructure.MNEMONIC}, new String[] {systemGroups.get(0).getUuid().toString(), structureElement.getMnemonic()}, null, null, null, null);
                 validateConditionIfStructureChoice(StructureChoice.CREATE, structureChoice, systems == null || systems.isEmpty(),   HttpStatus.BAD_REQUEST, message, details);
                 validateConditionIfStructureChoice(StructureChoice.UPDATE, structureChoice, systems == null || systems.isEmpty() || systems.size() == 1 && systems.get(0).getUuid().equals(structureElement.getUuid()), HttpStatus.BAD_REQUEST, message, details);
 
+                // parent
                 // mnemonic equivalence
-                systems = holderRepositories.getSystemRepository().readSystems(Status.APPROVED, false, FieldStructure.MNEMONICEQUIVALENCE, namingConvention.equivalenceClassRepresentative(structureElement.getMnemonic()));
+                systems = holderRepositories.getSystemRepository().readSystems(new Status[] {Status.APPROVED}, false, new FieldStructure[] {FieldStructure.PARENT, FieldStructure.MNEMONICEQUIVALENCE}, new String[] {systemGroups.get(0).getUuid().toString(), namingConvention.equivalenceClassRepresentative(structureElement.getMnemonic())}, null, null, null, null);
                 validateConditionIfStructureChoice(StructureChoice.CREATE, structureChoice, systems == null || systems.isEmpty(),   HttpStatus.BAD_REQUEST, message, details);
                 validateConditionIfStructureChoice(StructureChoice.UPDATE, structureChoice, systems == null || systems.isEmpty() || systems.size() == 1 && systems.get(0).getUuid().equals(structureElement.getUuid()), HttpStatus.BAD_REQUEST, message, details);
             } else if (Type.SUBSYSTEM.equals(structureElement.getType())) {
@@ -1040,14 +1042,16 @@ public class ValidateUtil {
                 List<System> systems = holderRepositories.getSystemRepository().readSystems(Status.APPROVED, false, FieldStructure.UUID, structureElement.getParent().toString());
                 ValidateUtil.validateCondition(systems != null && systems.size() == 1, HttpStatus.BAD_REQUEST, message, details);
 
+                // parent
                 // mnemonic
                 message = ValidateUtil.SUBSYSTEM + ValidateUtil.SPACE + ValidateUtil.IS_NOT_CORRECT;
-                List<Subsystem> subsystems = holderRepositories.getSubsystemRepository().readSubsystems(Status.APPROVED, false, FieldStructure.MNEMONIC, structureElement.getMnemonic());
+                List<Subsystem> subsystems = holderRepositories.getSubsystemRepository().readSubsystems(new Status[] {Status.APPROVED}, false, new FieldStructure[] {FieldStructure.PARENT, FieldStructure.MNEMONIC}, new String[] {systems.get(0).getUuid().toString(), structureElement.getMnemonic()}, null, null, null, null);
                 validateConditionIfStructureChoice(StructureChoice.CREATE, structureChoice, subsystems == null || subsystems.isEmpty(), HttpStatus.BAD_REQUEST, message, details);
                 validateConditionIfStructureChoice(StructureChoice.UPDATE, structureChoice, subsystems == null || subsystems.isEmpty() || subsystems.size() == 1 && subsystems.get(0).getUuid().equals(structureElement.getUuid()), HttpStatus.BAD_REQUEST, message, details);
 
+                // parent
                 // mnemonic equivalence
-                subsystems = holderRepositories.getSubsystemRepository().readSubsystems(Status.APPROVED, false, FieldStructure.MNEMONICEQUIVALENCE, namingConvention.equivalenceClassRepresentative(structureElement.getMnemonic()));
+                subsystems = holderRepositories.getSubsystemRepository().readSubsystems(new Status[] {Status.APPROVED}, false, new FieldStructure[] {FieldStructure.PARENT, FieldStructure.MNEMONICEQUIVALENCE}, new String[] {systems.get(0).getUuid().toString(), namingConvention.equivalenceClassRepresentative(structureElement.getMnemonic())}, null, null, null, null);
                 validateConditionIfStructureChoice(StructureChoice.CREATE, structureChoice, subsystems == null || subsystems.isEmpty(),   HttpStatus.BAD_REQUEST, message, details);
                 validateConditionIfStructureChoice(StructureChoice.UPDATE, structureChoice, subsystems == null || subsystems.isEmpty() || subsystems.size() == 1 && subsystems.get(0).getUuid().equals(structureElement.getUuid()), HttpStatus.BAD_REQUEST, message, details);
             } else if (Type.DISCIPLINE.equals(structureElement.getType())) {
@@ -1078,14 +1082,15 @@ public class ValidateUtil {
                 List<DeviceGroup> deviceGroups = holderRepositories.getDeviceGroupRepository().readDeviceGroups(Status.APPROVED, false, FieldStructure.UUID, structureElement.getParent().toString());
                 ValidateUtil.validateCondition(deviceGroups != null && deviceGroups.size() == 1, HttpStatus.BAD_REQUEST, message, details);
 
+                // parent
                 // mnemonic
                 message = ValidateUtil.DEVICETYPE + ValidateUtil.SPACE + ValidateUtil.IS_NOT_CORRECT;
-                List<DeviceType> deviceTypes = holderRepositories.getDeviceTypeRepository().readDeviceTypes(Status.APPROVED, false, FieldStructure.MNEMONIC, structureElement.getMnemonic());
+                List<DeviceType> deviceTypes = holderRepositories.getDeviceTypeRepository().readDeviceTypes(new Status[] {Status.APPROVED}, false, new FieldStructure[] {FieldStructure.PARENT, FieldStructure.MNEMONIC}, new String[] {deviceGroups.get(0).getUuid().toString(), structureElement.getMnemonic()}, null, null, null, null);
                 validateConditionIfStructureChoice(StructureChoice.CREATE, structureChoice, deviceTypes == null || deviceTypes.isEmpty(), HttpStatus.BAD_REQUEST, message, details);
                 validateConditionIfStructureChoice(StructureChoice.UPDATE, structureChoice, deviceTypes == null || deviceTypes.isEmpty() || deviceTypes.size() == 1 && deviceTypes.get(0).getUuid().equals(structureElement.getUuid()), HttpStatus.BAD_REQUEST, message, details);
 
                 // mnemonic equivalence
-                deviceTypes = holderRepositories.getDeviceTypeRepository().readDeviceTypes(Status.APPROVED, false, FieldStructure.MNEMONICEQUIVALENCE, namingConvention.equivalenceClassRepresentative(structureElement.getMnemonic()));
+                deviceTypes = holderRepositories.getDeviceTypeRepository().readDeviceTypes(new Status[] {Status.APPROVED}, false, new FieldStructure[] {FieldStructure.PARENT, FieldStructure.MNEMONICEQUIVALENCE}, new String[] {deviceGroups.get(0).getUuid().toString(), namingConvention.equivalenceClassRepresentative(structureElement.getMnemonic())}, null, null, null, null);
                 validateConditionIfStructureChoice(StructureChoice.CREATE, structureChoice, deviceTypes == null || deviceTypes.isEmpty(),   HttpStatus.BAD_REQUEST, message, details);
                 validateConditionIfStructureChoice(StructureChoice.UPDATE, structureChoice, deviceTypes == null || deviceTypes.isEmpty() || deviceTypes.size() == 1 && deviceTypes.get(0).getUuid().equals(structureElement.getUuid()), HttpStatus.BAD_REQUEST, message, details);
             }
diff --git a/src/test/java/org/openepics/names/docker/ITUtilNameStructureElement.java b/src/test/java/org/openepics/names/docker/ITUtilNameStructureElement.java
index a51d9baa16879bdfccc64c14ab91f468a612a561..9ce80076d271cf49a0f98c8f5989b071f487b4f3 100644
--- a/src/test/java/org/openepics/names/docker/ITUtilNameStructureElement.java
+++ b/src/test/java/org/openepics/names/docker/ITUtilNameStructureElement.java
@@ -52,84 +52,41 @@ public class ITUtilNameStructureElement {
         throw new IllegalStateException("Utility class");
     }
 
-    /**
-     * Assert that array of structure elements has expected length.
-     *
-     * @param actual array of structure elements
-     * @param expectedLength expected length of array
-     */
-    static void assertContentLength(StructureElement[] actual, int expectedLength) {
-        assertNotNull(actual);
-        assertEquals(expectedLength, actual.length);
-    }
+    // ----------------------------------------------------------------------------------------------------
 
     /**
-     * Assert that array of structure elements has length one and structure element is available.
+     * Utility method to set name element attributes name and index and then validate create and assert expected response.
      *
-     * @param actual array of structure elements
-     * @return structure element
+     * @param nameElement name element
+     * @param name name
+     * @param index index
+     * @param expectedResponse expected response
      */
-    static StructureElement assertContentLengthOne(StructureElement[] actual) {
-        assertContentLength(actual, 1);
-        assertNotNull(actual[0]);
-        return actual[0];
+    static void assertValidateCreate(NameElement nameElement, String name, String index, Boolean expectedResponse) {
+    	nameElement.setNameAndIndex(name, index);
+    	assertValidateCreate(nameElement, expectedResponse);
     }
 
     /**
-     * Assert content of structure element.
+     * Utility method to validate create and assert expected response.
      *
-     * @param actual structure element
-     * @param expectedType expected type
-     * @param expectedUuid expected uuid
-     * @param expectedParent expected parent
-     * @param expectedName expected name
-     * @param expectedMnemonic expected mnemonic
-     * @param expectedMnemonicpath expected mnemonic path
-     * @param expectedLevel expected level
-     * @param expectedDescription expected description
-     * @param expectedStatus expected status
-     * @param expectedIsLatest expected latest
-     * @param expectedIsDeleted expected deleted
-     * @param expectedWho expected who
-     * @param expectedComment expected comment
+     * @param nameElement name element
+     * @param expectedResponse expected response
      */
-    static void assertContent(StructureElement actual,
-            Type expectedType, UUID expectedUuid, UUID expectedParent,
-            String expectedName, String expectedMnemonic, String expectedMnemonicpath, Integer expectedLevel,
-            String expectedDescription, Status expectedStatus, Boolean expectedIsLatest, Boolean expectedIsDeleted,
-            String expectedWho, String expectedComment) {
-        assertNotNull(actual);
-        assertEquals(expectedType, actual.getType());
-        assertEquals(expectedUuid, actual.getUuid());
-        assertEquals(expectedParent, actual.getParent());
-        assertEquals(expectedName, actual.getName());
-        assertEquals(expectedMnemonic, actual.getMnemonic());
-        assertEquals(expectedMnemonicpath, actual.getMnemonicpath());
-        assertEquals(expectedLevel, actual.getLevel());
-        assertEquals(expectedDescription, actual.getDescription());
-        assertEquals(expectedStatus, actual.getStatus());
-        assertEquals(expectedIsLatest, actual.isLatest());
-        assertEquals(expectedIsDeleted, actual.isDeleted());
-        assertNotNull(actual.getWhen());
-        assertEquals(expectedWho, actual.getWho());
-        assertEquals(expectedComment, actual.getComment());
-    }
+    static void assertValidateCreate(NameElement nameElement, Boolean expectedResponse) {
+    	try {
+            ObjectMapper mapper = new ObjectMapper();
+            String[] response = null;
 
-    /**
-     * Assert that arrays are equal with same length and same content in each array position.
-     *
-     * @param actual actual array of structure elements
-     * @param expected expected arbitrary number of structure elements
-     */
-    static void assertEqualsStructureElements(StructureElement[] actual, StructureElement... expected) {
-        if (expected != null) {
-            assertNotNull(actual);
-            assertEquals(expected.length, actual.length);
-            for (int i=0; i<expected.length; i++) {
-                assertTrue(expected[i].equals(actual[i]));
-            }
-        } else {
-            assertNull(actual);
+            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
+	        ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
+	        ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), expectedResponse);
+        } catch (IOException e) {
+            fail();
+        } catch (InterruptedException e) {
+            fail();
+        } catch (Exception e) {
+            fail();
         }
     }
 
@@ -369,6 +326,89 @@ public class ITUtilNameStructureElement {
 
     // ----------------------------------------------------------------------------------------------------
 
+    /**
+     * Assert that array of structure elements has expected length.
+     *
+     * @param actual array of structure elements
+     * @param expectedLength expected length of array
+     */
+    static void assertContentLength(StructureElement[] actual, int expectedLength) {
+        assertNotNull(actual);
+        assertEquals(expectedLength, actual.length);
+    }
+
+    /**
+     * Assert that array of structure elements has length one and structure element is available.
+     *
+     * @param actual array of structure elements
+     * @return structure element
+     */
+    static StructureElement assertContentLengthOne(StructureElement[] actual) {
+        assertContentLength(actual, 1);
+        assertNotNull(actual[0]);
+        return actual[0];
+    }
+
+    /**
+     * Assert content of structure element.
+     *
+     * @param actual structure element
+     * @param expectedType expected type
+     * @param expectedUuid expected uuid
+     * @param expectedParent expected parent
+     * @param expectedName expected name
+     * @param expectedMnemonic expected mnemonic
+     * @param expectedMnemonicpath expected mnemonic path
+     * @param expectedLevel expected level
+     * @param expectedDescription expected description
+     * @param expectedStatus expected status
+     * @param expectedIsLatest expected latest
+     * @param expectedIsDeleted expected deleted
+     * @param expectedWho expected who
+     * @param expectedComment expected comment
+     */
+    static void assertContent(StructureElement actual,
+            Type expectedType, UUID expectedUuid, UUID expectedParent,
+            String expectedName, String expectedMnemonic, String expectedMnemonicpath, Integer expectedLevel,
+            String expectedDescription, Status expectedStatus, Boolean expectedIsLatest, Boolean expectedIsDeleted,
+            String expectedWho, String expectedComment) {
+        assertNotNull(actual);
+        assertEquals(expectedType, actual.getType());
+        assertEquals(expectedUuid, actual.getUuid());
+        assertEquals(expectedParent, actual.getParent());
+        assertEquals(expectedName, actual.getName());
+        assertEquals(expectedMnemonic, actual.getMnemonic());
+        assertEquals(expectedMnemonicpath, actual.getMnemonicpath());
+        assertEquals(expectedLevel, actual.getLevel());
+        assertEquals(expectedDescription, actual.getDescription());
+        assertEquals(expectedStatus, actual.getStatus());
+        assertEquals(expectedIsLatest, actual.isLatest());
+        assertEquals(expectedIsDeleted, actual.isDeleted());
+        assertNotNull(actual.getWhen());
+        assertEquals(expectedWho, actual.getWho());
+        assertEquals(expectedComment, actual.getComment());
+    }
+
+    /**
+     * Assert that arrays are equal with same length and same content in each array position.
+     *
+     * @param actual actual array of structure elements
+     * @param expected expected arbitrary number of structure elements
+     */
+    static void assertEqualsStructureElements(StructureElement[] actual, StructureElement... expected) {
+        if (expected != null) {
+            assertNotNull(actual);
+            assertEquals(expected.length, actual.length);
+            for (int i=0; i<expected.length; i++) {
+                assertTrue(expected[i].equals(actual[i]));
+            }
+        } else {
+            assertNull(actual);
+        }
+    }
+
+    // ----------------------------------------------------------------------------------------------------
+
     /**
      * Utility method to create a structure element and assert result.
      *
diff --git a/src/test/java/org/openepics/names/docker/NamesInstanceIndexIT.java b/src/test/java/org/openepics/names/docker/NamesInstanceIndexIT.java
new file mode 100644
index 0000000000000000000000000000000000000000..babe625500fa009234c18052ef1e58b98c9269fe
--- /dev/null
+++ b/src/test/java/org/openepics/names/docker/NamesInstanceIndexIT.java
@@ -0,0 +1,1693 @@
+/*
+ * Copyright (C) 2022 European Spallation Source ERIC.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+package org.openepics.names.docker;
+
+import java.io.File;
+import java.util.UUID;
+
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.openepics.names.rest.beans.NameElement;
+import org.openepics.names.rest.beans.Status;
+import org.openepics.names.rest.beans.StructureElement;
+import org.openepics.names.rest.beans.Type;
+import org.testcontainers.containers.DockerComposeContainer;
+import org.testcontainers.containers.wait.strategy.Wait;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
+
+/**
+ * Integration tests for Naming and PostgreSQL that make use of existing dockerization
+ * with docker-compose.yml / Dockerfile.
+ *
+ * <p>
+ * Focus of this class is names endpoint and rules for disciplines P&ID and Scientific in particular.
+ * In practice, this class contains tests for instance index, en masse.
+ * </p>
+ *
+ * @author Lars Johansson
+ *
+ * @see NamingConventionUtil
+ */
+@SuppressWarnings("unused")
+@Testcontainers
+public class NamesInstanceIndexIT {
+
+	// note
+	//     disciplines
+	//         P&ID
+	//         Scientific
+	//     mnemonic path P&ID numeric
+	//     see NamingConventionUtil
+
+    @Container
+    public static final DockerComposeContainer<?> ENVIRONMENT =
+        new DockerComposeContainer<>(new File("docker-compose-it-db-schema-migration.yml"))
+            .waitingFor(ITUtil.NAMING, Wait.forLogMessage(".*Started NamingApplication.*", 1));
+
+    private static UUID systemGroupAcc  = null;
+    private static UUID systemRFQ       = null;
+    private static UUID subsystem010PRL = null;
+	private static UUID subsystem010    = null;
+    private static UUID subsystemN1U1   = null;
+
+    private static UUID disciplineCryo  = null;
+    private static UUID disciplineEMR   = null;
+    private static UUID disciplineHVAC  = null;
+    private static UUID disciplineProc  = null;
+    private static UUID disciplineSC    = null;
+    private static UUID disciplineVac   = null;
+    private static UUID disciplineWtrC  = null;
+    private static UUID disciplineBMD   = null;
+
+    private static UUID deviceGroupCryo = null;
+    private static UUID deviceGroupEMR  = null;
+    private static UUID deviceGroupHVAC = null;
+    private static UUID deviceGroupProc = null;
+    private static UUID deviceGroupSC   = null;
+    private static UUID deviceGroupVac  = null;
+    private static UUID deviceGroupWtrC = null;
+    private static UUID deviceGroupBMD  = null;
+
+    private static UUID deviceType_Cryo_FS  = null;
+    private static UUID deviceType_Cryo_IOC = null;
+    private static UUID deviceType_Cryo_RFA = null;
+    private static UUID deviceType_Cryo_TT  = null;
+
+    private static UUID deviceType_EMR_FS   = null;
+    private static UUID deviceType_EMR_IOC  = null;
+    private static UUID deviceType_EMR_RFA  = null;
+    private static UUID deviceType_EMR_TT   = null;
+
+    private static UUID deviceType_HVAC_FS  = null;
+    private static UUID deviceType_HVAC_IOC = null;
+    private static UUID deviceType_HVAC_RFA = null;
+    private static UUID deviceType_HVAC_TT  = null;
+
+    private static UUID deviceType_Proc_FS  = null;
+    private static UUID deviceType_Proc_IOC = null;
+    private static UUID deviceType_Proc_RFA = null;
+    private static UUID deviceType_Proc_TT  = null;
+
+    private static UUID deviceType_SC_FS    = null;
+    private static UUID deviceType_SC_IOC   = null;
+    private static UUID deviceType_SC_RFA   = null;
+    private static UUID deviceType_SC_TT    = null;
+
+    private static UUID deviceType_Vac_FS   = null;
+    private static UUID deviceType_Vac_IOC  = null;
+    private static UUID deviceType_Vac_RFA  = null;
+    private static UUID deviceType_Vac_TT   = null;
+
+    private static UUID deviceType_WtrC_FS  = null;
+    private static UUID deviceType_WtrC_IOC = null;
+    private static UUID deviceType_WtrC_RFA = null;
+    private static UUID deviceType_WtrC_TT  = null;
+
+    private static UUID deviceType_BMD_FS   = null;
+    private static UUID deviceType_BMD_IOC  = null;
+    private static UUID deviceType_BMD_RFA  = null;
+    private static UUID deviceType_BMD_TT   = null;
+
+    @BeforeAll
+    public static void initAll() {
+        // init system group, system, subsystem, discipline, device group, device type
+
+        StructureElement structureElement         = null;
+        StructureElement approvedStructureElement = null;
+
+        structureElement = new StructureElement(
+                Type.SYSTEMGROUP, null, null,
+                "Accelerator", "Acc", "Acc", 1,
+                "The ESS Linear Accelerator", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "approved by alfio");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        systemGroupAcc = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.SYSTEM, null, systemGroupAcc,
+                "Radio Frequency Quadrupole", "RFQ", "Acc-RFQ", 2,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        systemRFQ = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.SUBSYSTEM, null, systemRFQ,
+                "01 Phase Reference Line", "010PRL", "Acc-RFQ-010PRL", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "Approved by Daniel Piso");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        subsystem010PRL = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.SUBSYSTEM, null, systemRFQ,
+                "RFQ-010", "010", "Acc-RFQ-010", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "Approved by Daniel Piso");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        subsystem010 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.SUBSYSTEM, null, systemRFQ,
+                "Power switch board 01", "N1U1", "Acc-RFQ-N1U1", 3,
+                "Electrical power cabinets", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "Approved by Daniel Piso");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        subsystemN1U1 = approvedStructureElement.getUuid();
+
+        // ----------------------------------------------------------------------------------------------------
+
+        structureElement = new StructureElement(
+                Type.DISCIPLINE, null, null,
+                "Cryogenics", "Cryo", "Cryo", 1,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        disciplineCryo = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DISCIPLINE, null, null,
+                "Electromagnetic Resonators", "EMR", "EMR", 1,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        disciplineEMR = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DISCIPLINE, null, null,
+                "Heating, Cooling and Air Conditioning", "HVAC", "HVAC", 1,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        disciplineHVAC = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DISCIPLINE, null, null,
+                "General Process Control", "Proc", "Proc", 1,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        disciplineProc = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DISCIPLINE, null, null,
+                "Software Controllers", "SC", "SC", 1,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        disciplineSC = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DISCIPLINE, null, null,
+                "Vacuum", "Vac", "Vac", 1,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        disciplineVac = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DISCIPLINE, null, null,
+                "Water Cooling", "WtrC", "WtrC", 1,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        disciplineWtrC = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DISCIPLINE, null, null,
+                "Beam Magnets and Deflectors", "BMD", "BMD", 1,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        disciplineBMD = approvedStructureElement.getUuid();
+
+
+        // ----------------------------------------------------------------------------------------------------
+
+        structureElement = new StructureElement(
+                Type.DEVICEGROUP, null, disciplineCryo,
+                "empty", null, "Cryo", 2,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceGroupCryo = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICEGROUP, null, disciplineEMR,
+                "empty", null, "EMR", 2,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceGroupEMR = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICEGROUP, null, disciplineHVAC,
+                "empty", null, "HVAC", 2,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceGroupHVAC = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICEGROUP, null, disciplineProc,
+                "empty", null, "Proc", 2,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceGroupProc = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICEGROUP, null, disciplineSC,
+                "empty", null, "SC", 2,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceGroupSC = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICEGROUP, null, disciplineVac,
+                "empty", null, "Vac", 2,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceGroupVac = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICEGROUP, null, disciplineWtrC,
+                "empty", null, "WtrC", 2,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceGroupWtrC = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICEGROUP, null, disciplineBMD,
+                "empty", null, "BMD", 2,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceGroupBMD = approvedStructureElement.getUuid();
+
+        // ----------------------------------------------------------------------------------------------------
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupCryo,
+                "Flow Switch", "FS", "Cryo-FS", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_Cryo_FS = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupCryo,
+                "Input Output Controller", "IOC", "Cryo-IOC", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_Cryo_IOC = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupCryo,
+                "RF Antenna", "RFA", "Cryo-RFA", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_Cryo_RFA = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupCryo,
+                "Temperature Transmitter", "TT", "Cryo-TT", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_Cryo_TT = approvedStructureElement.getUuid();
+
+        // ----------------------------------------------------------------------------------------------------
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupEMR,
+                "Input Output Controller", "IOC", "EMR-IOC", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_EMR_IOC = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupEMR,
+                "Flow Switch", "FS", "EMR-FS", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_EMR_FS = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupEMR,
+                "RF Antenna", "RFA", "EMR-RFA", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_EMR_RFA = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupEMR,
+                "Temperature Transmitter", "TT", "EMR-TT", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_EMR_TT = approvedStructureElement.getUuid();
+
+        // ----------------------------------------------------------------------------------------------------
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupHVAC,
+                "Flow Switch", "FS", "HVAC-FS", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_HVAC_FS = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupHVAC,
+                "Input Output Controller", "IOC", "HVAC-IOC", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_HVAC_IOC = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupHVAC,
+                "RF Antenna", "RFA", "HVAC-RFA", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_HVAC_RFA = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupHVAC,
+                "Temperature Transmitter", "TT", "HVAC-TT", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_HVAC_TT = approvedStructureElement.getUuid();
+
+        // ----------------------------------------------------------------------------------------------------
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupProc,
+                "Flow Switch", "FS", "Proc-FS", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_Proc_FS = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupProc,
+                "Input Output Controller", "IOC", "Proc-IOC", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_Proc_IOC = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupProc,
+                "RF Antenna", "RFA", "Proc-RFA", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_Proc_RFA = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupProc,
+                "Temperature Transmitter", "TT", "Proc-TT", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_Proc_TT = approvedStructureElement.getUuid();
+
+        // ----------------------------------------------------------------------------------------------------
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupSC,
+                "Flow Switch", "FS", "SC-FS", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_SC_FS = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupSC,
+                "Input Output Controller", "IOC", "SC-IOC", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_SC_IOC = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupSC,
+                "RF Antenna", "RFA", "SC-RFA", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_SC_RFA = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupSC,
+                "Temperature Transmitter", "TT", "SC-TT", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_SC_TT = approvedStructureElement.getUuid();
+
+        // ----------------------------------------------------------------------------------------------------
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupVac,
+                "Flow Switch", "FS", "Vac-FS", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_Vac_FS = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupVac,
+                "Input Output Controller", "IOC", "Vac-IOC", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_Vac_IOC = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupVac,
+                "RF Antenna", "RFA", "Vac-RFA", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_Vac_RFA = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupVac,
+                "Temperature Transmitter", "TT", "Vac-TT", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_Vac_TT = approvedStructureElement.getUuid();
+
+        // ----------------------------------------------------------------------------------------------------
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupWtrC,
+                "Flow Switch", "FS", "WtrC-FS", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_WtrC_FS = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupWtrC,
+                "Input Output Controller", "IOC", "WtrC-IOC", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_WtrC_IOC = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupWtrC,
+                "RF Antenna", "RFA", "WtrC-RFA", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_WtrC_RFA = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupWtrC,
+                "Temperature Transmitter", "TT", "WtrC-TT", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_WtrC_TT = approvedStructureElement.getUuid();
+
+        // ----------------------------------------------------------------------------------------------------
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupBMD,
+                "Flow Switch", "FS", "BMD-FS", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_BMD_FS = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupBMD,
+                "Input Output Controller", "IOC", "BMD-IOC", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_BMD_IOC = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupBMD,
+                "RF Antenna", "RFA", "BMD-RFA", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_BMD_RFA = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElement(
+                Type.DEVICETYPE, null, deviceGroupBMD,
+                "Temperature Transmitter", "TT", "BMD-TT", 3,
+                "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                null, "test who", "empty");
+        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        deviceType_BMD_TT = approvedStructureElement.getUuid();
+    }
+
+  @Test
+  public void checkCreateInstanceIndex_Cryo() {
+      // purpose
+      //     test conditions for create name
+      //         not create itself
+      //
+      // what - combination of
+      //     read        validate create
+      //
+      // note
+      //     discipline Cryo
+      //     instance index
+
+      NameElement nameElement = new NameElement();
+      nameElement.setDescription("description");
+      nameElement.setComment("comment");
+      nameElement.setSubsystem(subsystem010PRL);
+
+      // ----------------------------------------------------------------------------------------------------
+
+      nameElement.setDevicetype(deviceType_Cryo_IOC);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-12",         "12",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-01",         "01",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-10",         "10",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-a!",         "a!",        Boolean.FALSE);
+
+      nameElement.setDevicetype(deviceType_Cryo_RFA);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-12",         "12",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-01",         "01",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-10",         "10",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-a!",         "a!",        Boolean.FALSE);
+  }
+
+  @Test
+  public void checkCreateInstanceIndex_EMR() {
+      // purpose
+      //     test conditions for create name
+      //         not create itself
+      //
+      // what - combination of
+      //     read        validate create
+      //
+      // note
+      //     discipline EMR
+      //     instance index
+
+      NameElement nameElement = new NameElement();
+      nameElement.setDescription("description");
+      nameElement.setComment("comment");
+      nameElement.setSubsystem(subsystem010PRL);
+
+      // ----------------------------------------------------------------------------------------------------
+
+      nameElement.setDevicetype(deviceType_EMR_IOC);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-12",         "12",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-01",         "01",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-10",         "10",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-a!",         "a!",        Boolean.FALSE);
+
+      nameElement.setDevicetype(deviceType_EMR_RFA);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-12",         "12",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-01",         "01",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-10",         "10",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-a!",         "a!",        Boolean.FALSE);
+  }
+
+  @Test
+  public void checkCreateInstanceIndex_HVAC() {
+      // purpose
+      //     test conditions for create name
+      //         not create itself
+      //
+      // what - combination of
+      //     read        validate create
+      //
+      // note
+      //     discipline HVAC
+      //     instance index
+
+      NameElement nameElement = new NameElement();
+      nameElement.setDescription("description");
+      nameElement.setComment("comment");
+      nameElement.setSubsystem(subsystem010PRL);
+
+      // ----------------------------------------------------------------------------------------------------
+
+      nameElement.setDevicetype(deviceType_HVAC_IOC);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-12",         "12",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-01",         "01",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-10",         "10",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-a!",         "a!",        Boolean.FALSE);
+
+      nameElement.setDevicetype(deviceType_HVAC_RFA);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-12",         "12",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-01",         "01",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-10",         "10",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-a!",         "a!",        Boolean.FALSE);
+  }
+
+  @Test
+  public void checkCreateInstanceIndex_Proc() {
+      // purpose
+      //     test conditions for create name
+      //         not create itself
+      //
+      // what - combination of
+      //     read        validate create
+      //
+      // note
+      //     discipline Proc
+      //     instance index
+
+      NameElement nameElement = new NameElement();
+      nameElement.setDescription("description");
+      nameElement.setComment("comment");
+      nameElement.setSubsystem(subsystem010PRL);
+
+      // ----------------------------------------------------------------------------------------------------
+
+      nameElement.setDevicetype(deviceType_Proc_IOC);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-12",         "12",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-01",         "01",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-10",         "10",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-a!",         "a!",        Boolean.FALSE);
+
+      nameElement.setDevicetype(deviceType_Proc_RFA);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-12",         "12",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-01",         "01",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-10",         "10",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-a!",         "a!",        Boolean.FALSE);
+  }
+
+  @Test
+  public void checkCreateInstanceIndex_SC() {
+      // purpose
+      //     test conditions for create name
+      //         not create itself
+      //
+      // what - combination of
+      //     read        validate create
+      //
+      // note
+      //     discipline SC
+      //     instance index
+
+      NameElement nameElement = new NameElement();
+      nameElement.setDescription("description");
+      nameElement.setComment("comment");
+      nameElement.setSubsystem(subsystem010PRL);
+
+      // ----------------------------------------------------------------------------------------------------
+
+      nameElement.setDevicetype(deviceType_SC_IOC);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-12",         "12",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000a",       "000a",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000ab",      "000ab",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000abc",     "000abc",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123a",       "123a",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123ab",      "123ab",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123abc",     "123abc",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-01",         "01",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-10",         "10",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-a!",         "a!",        Boolean.FALSE);
+
+      nameElement.setDevicetype(deviceType_SC_RFA);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-12",         "12",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-01",         "01",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-10",         "10",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-a!",         "a!",        Boolean.FALSE);
+  }
+
+  @Test
+  public void checkCreateInstanceIndex_Vac() {
+      // purpose
+      //     test conditions for create name
+      //         not create itself
+      //
+      // what - combination of
+      //     read        validate create
+      //
+      // note
+      //     discipline Vac
+      //     instance index
+
+      NameElement nameElement = new NameElement();
+      nameElement.setDescription("description");
+      nameElement.setComment("comment");
+      nameElement.setSubsystem(subsystem010PRL);
+
+      // ----------------------------------------------------------------------------------------------------
+
+      nameElement.setDevicetype(deviceType_Vac_IOC);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-12",         "12",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-01",         "01",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-10",         "10",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-a!",         "a!",        Boolean.FALSE);
+
+      nameElement.setDevicetype(deviceType_Vac_RFA);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-12",         "12",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-01",         "01",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-10",         "10",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-a!",         "a!",        Boolean.FALSE);
+  }
+
+  @Test
+  public void checkCreateInstanceIndex_WtrC() {
+      // purpose
+      //     test conditions for create name
+      //         not create itself
+      //
+      // what - combination of
+      //     read        validate create
+      //
+      // note
+      //     discipline WtrC
+      //     instance index
+
+      NameElement nameElement = new NameElement();
+      nameElement.setDescription("description");
+      nameElement.setComment("comment");
+      nameElement.setSubsystem(subsystem010PRL);
+
+      // ----------------------------------------------------------------------------------------------------
+
+      nameElement.setDevicetype(deviceType_WtrC_IOC);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-12",         "12",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-01",         "01",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-10",         "10",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-a!",         "a!",        Boolean.FALSE);
+
+      nameElement.setDevicetype(deviceType_WtrC_RFA);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-12",         "12",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-01",         "01",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-10",         "10",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-a!",         "a!",        Boolean.FALSE);
+  }
+
+  @Test
+  public void checkCreateInstanceIndex_BMD() {
+      // purpose
+      //     test conditions for create name
+      //         not create itself
+      //
+      // what - combination of
+      //     read        validate create
+      //
+      // note
+      //     discipline BMD
+      //     instance index
+
+      NameElement nameElement = new NameElement();
+      nameElement.setDescription("description");
+      nameElement.setComment("comment");
+      nameElement.setSubsystem(subsystem010PRL);
+
+      // ----------------------------------------------------------------------------------------------------
+
+      nameElement.setDevicetype(deviceType_BMD_IOC);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-1",          "1",         Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-12",         "12",        Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-1234",       "1234",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000a",       "000a",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000ab",      "000ab",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000abc",     "000abc",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123a",       "123a",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123ab",      "123ab",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123abc",     "123abc",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-1",          "1",         Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-01",         "01",        Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-0001",       "0001",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-0110",       "0110",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-10",         "10",        Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-1000",       "1000",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-a!",         "a!",        Boolean.FALSE);
+
+      nameElement.setDevicetype(deviceType_BMD_RFA);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-1",          "1",         Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-12",         "12",        Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-1234",       "1234",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000a",       "000a",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000ab",      "000ab",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000abc",     "000abc",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123a",       "123a",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123ab",      "123ab",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123abc",     "123abc",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-1",          "1",         Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-01",         "01",        Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-0001",       "0001",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-0110",       "0110",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-10",         "10",        Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-1000",       "1000",      Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA",            "",          Boolean.TRUE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-a!",         "a!",        Boolean.FALSE);
+  }
+
+}
diff --git a/src/test/java/org/openepics/names/util/EssNamingConventionTest.java b/src/test/java/org/openepics/names/util/EssNamingConventionTest.java
index 6ae55281c895a4785879caeed7a9061e97109560..41ef7451f234190892b9ff0580e0d17ab6fc7664 100644
--- a/src/test/java/org/openepics/names/util/EssNamingConventionTest.java
+++ b/src/test/java/org/openepics/names/util/EssNamingConventionTest.java
@@ -562,6 +562,46 @@ public class EssNamingConventionTest {
         assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure6 + "-" + "001"));
         assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure7 + "-" + "001"));
         assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure8 + "-" + "001"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure1 + "-" + "0001"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure2 + "-" + "0001"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure3 + "-" + "0001"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure4 + "-" + "0001"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure5 + "-" + "0001"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure6 + "-" + "0001"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure7 + "-" + "0001"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure8 + "-" + "0001"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure1 + "-" + "0110"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure2 + "-" + "0110"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure3 + "-" + "0110"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure4 + "-" + "0110"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure5 + "-" + "0110"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure6 + "-" + "0110"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure7 + "-" + "0110"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure8 + "-" + "0110"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure1 + "-" + "10"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure2 + "-" + "10"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure3 + "-" + "10"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure4 + "-" + "10"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure5 + "-" + "10"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure6 + "-" + "10"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure7 + "-" + "10"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure8 + "-" + "10"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure1 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure2 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure3 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure4 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure5 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure6 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure7 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure8 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure1 + "-" + "1000"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure2 + "-" + "1000"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure3 + "-" + "1000"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure4 + "-" + "1000"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure5 + "-" + "1000"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure6 + "-" + "1000"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure7 + "-" + "1000"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure8 + "-" + "1000"));
 
         assertFalse(namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure1 + "-" + _001a));
         assertTrue (namingConvention.isInstanceIndexValid(systemStructure + ":" + deviceStructure2 + "-" + _001a));
@@ -732,6 +772,46 @@ public class EssNamingConventionTest {
         assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure26 + "-" + "001"));
         assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure27 + "-" + "001"));
         assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure28 + "-" + "001"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure21 + "-" + "0001"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure22 + "-" + "0001"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure23 + "-" + "0001"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure24 + "-" + "0001"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure25 + "-" + "0001"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure26 + "-" + "0001"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure27 + "-" + "0001"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure28 + "-" + "0001"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure21 + "-" + "0110"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure22 + "-" + "0110"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure23 + "-" + "0110"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure24 + "-" + "0110"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure25 + "-" + "0110"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure26 + "-" + "0110"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure27 + "-" + "0110"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure28 + "-" + "0110"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure21 + "-" + "10"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure22 + "-" + "10"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure23 + "-" + "10"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure24 + "-" + "10"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure25 + "-" + "10"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure26 + "-" + "10"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure27 + "-" + "10"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure28 + "-" + "10"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure21 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure22 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure23 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure24 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure25 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure26 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure27 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure28 + "-" + "100"));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure21 + "-" + "1000"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure22 + "-" + "1000"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure23 + "-" + "1000"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure24 + "-" + "1000"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure25 + "-" + "1000"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure26 + "-" + "1000"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure27 + "-" + "1000"));
+        assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure28 + "-" + "1000"));
 
         assertFalse(namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure21 + "-" + _001a));
         assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure22 + "-" + _001a));
@@ -903,6 +983,46 @@ public class EssNamingConventionTest {
         assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure26 + "-" + "001",    true));
         assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure27 + "-" + "001",    true));
         assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure28 + "-" + "001",    true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure21 + "-" + "0001",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure22 + "-" + "0001",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure23 + "-" + "0001",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure24 + "-" + "0001",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure25 + "-" + "0001",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure26 + "-" + "0001",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure27 + "-" + "0001",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure28 + "-" + "0001",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure21 + "-" + "0110",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure22 + "-" + "0110",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure23 + "-" + "0110",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure24 + "-" + "0110",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure25 + "-" + "0110",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure26 + "-" + "0110",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure27 + "-" + "0110",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure28 + "-" + "0110",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure21 + "-" + "10",     true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure22 + "-" + "10",     true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure23 + "-" + "10",     true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure24 + "-" + "10",     true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure25 + "-" + "10",     true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure26 + "-" + "10",     true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure27 + "-" + "10",     true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure28 + "-" + "10",     true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure21 + "-" + "100",    true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure22 + "-" + "100",    true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure23 + "-" + "100",    true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure24 + "-" + "100",    true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure25 + "-" + "100",    true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure26 + "-" + "100",    true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure27 + "-" + "100",    true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure28 + "-" + "100",    true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure21 + "-" + "1000",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure22 + "-" + "1000",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure23 + "-" + "1000",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure24 + "-" + "1000",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure25 + "-" + "1000",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure26 + "-" + "1000",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure27 + "-" + "1000",   true));
+        assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure28 + "-" + "1000",   true));
 
         assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure21 + "-" + _001a,    true));
         assertTrue (namingConvention.isInstanceIndexValid(systemStructure2 + ":" + deviceStructure22 + "-" + _001a,    true));