Переглянути джерело

Compiler: new format, checkable by the mean of a XSD (will come soon)

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@1951 a333f486-631f-4898-b8df-5754b55c2be0
romainq 13 роки тому
батько
коміт
4d6f2ea93d

+ 7 - 7
datamodel/itop-attachments/datamodel.itop-attachments.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<itop_design>
+<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <classes>
     <class name="Attachment" category="addon,bizmodel" parent="DBObject" abstract="false" key_type="autoincrement" db_table="attachment" db_key_field="id" db_final_class_field="">
       <properties>
@@ -31,12 +31,12 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="expire" type="DateTime" sql="expire" default_value="" is_null_allowed="false"/>
-        <field name="temp_id" type="String" sql="temp_id" default_value="" is_null_allowed="true"/>
-        <field name="item_class" type="String" sql="item_class" default_value="" is_null_allowed="false"/>
-        <field name="item_id" type="String" sql="item_id" default_value="" is_null_allowed="true"/>
-        <field name="item_org_id" type="Integer" sql="item_org_id" default_value="0" is_null_allowed="true"/>
-        <field name="contents" type="Blob"/>
+        <field name="expire" xsi:type="AttributeDateTime" sql="expire" default_value="" is_null_allowed="false"/>
+        <field name="temp_id" xsi:type="AttributeString" sql="temp_id" default_value="" is_null_allowed="true"/>
+        <field name="item_class" xsi:type="AttributeString" sql="item_class" default_value="" is_null_allowed="false"/>
+        <field name="item_id" xsi:type="AttributeString" sql="item_id" default_value="" is_null_allowed="true"/>
+        <field name="item_org_id" xsi:type="AttributeInteger" sql="item_org_id" default_value="0" is_null_allowed="true"/>
+        <field name="contents" xsi:type="AttributeBlob"/>
       </fields>
       <methods>
         <method name="MapContextParam" static="true" access="public" type="Overload-ExNihilo"><comment><![CDATA[/**

+ 56 - 56
datamodel/itop-change-mgmt-1.0.0/datamodel.itop-change-mgmt.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<itop_design>
+<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <classes>
     <class name="Change" category="bizmodel,searchable,changemgmt" parent="Ticket" abstract="true" key_type="autoincrement" db_table="change" db_key_field="id" db_final_class_field="">
       <properties>
@@ -25,7 +25,7 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="status" type="Enum" sql="status" default_value="new" is_null_allowed="true">
+        <field name="status" xsi:type="AttributeEnum" sql="status" default_value="new" is_null_allowed="true">
           <values>
             <value>approved</value>
             <value>assigned</value>
@@ -39,52 +39,52 @@
             <value>validated</value>
           </values>
         </field>
-        <field name="reason" type="String" sql="reason" default_value="" is_null_allowed="true"/>
-        <field name="requestor_id" type="ExternalKey" target_class="Person" jointype="" filter="SELECT Person AS p WHERE p.org_id = :this-&gt;org_id" sql="requestor_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
+        <field name="reason" xsi:type="AttributeString" sql="reason" default_value="" is_null_allowed="true"/>
+        <field name="requestor_id" xsi:type="AttributeExternalKey" target_class="Person" jointype="" filter="SELECT Person AS p WHERE p.org_id = :this-&gt;org_id" sql="requestor_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="org_id"/>
           </dependencies>
         </field>
-        <field name="requestor_email" type="ExternalField" extkey_attcode="requestor_id" target_attcode="email"/>
-        <field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="org_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
-        <field name="workgroup_id" type="ExternalKey" target_class="Team" jointype="" sql="workgroup_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
-        <field name="workgroup_name" type="ExternalField" extkey_attcode="workgroup_id" target_attcode="name"/>
-        <field name="creation_date" type="DateTime" sql="creation_date" default_value="" is_null_allowed="true"/>
-        <field name="last_update" type="DateTime" sql="last_update" default_value="" is_null_allowed="true"/>
-        <field name="end_date" type="DateTime" sql="end_date" default_value="" is_null_allowed="true"/>
-        <field name="close_date" type="DateTime" sql="close_date" default_value="" is_null_allowed="true"/>
-        <field name="impact" type="String" sql="impact" default_value="" is_null_allowed="true"/>
-        <field name="agent_id" type="ExternalKey" target_class="Person" jointype="" filter="SELECT Person AS p JOIN lnkTeamToContact AS l ON l.contact_id=p.id JOIN Team AS t ON l.team_id=t.id WHERE t.id = :this-&gt;workgroup_id" sql="agent_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
+        <field name="requestor_email" xsi:type="AttributeExternalField" extkey_attcode="requestor_id" target_attcode="email"/>
+        <field name="org_id" xsi:type="AttributeExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="org_name" xsi:type="AttributeExternalField" extkey_attcode="org_id" target_attcode="name"/>
+        <field name="workgroup_id" xsi:type="AttributeExternalKey" target_class="Team" jointype="" sql="workgroup_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
+        <field name="workgroup_name" xsi:type="AttributeExternalField" extkey_attcode="workgroup_id" target_attcode="name"/>
+        <field name="creation_date" xsi:type="AttributeDateTime" sql="creation_date" default_value="" is_null_allowed="true"/>
+        <field name="last_update" xsi:type="AttributeDateTime" sql="last_update" default_value="" is_null_allowed="true"/>
+        <field name="end_date" xsi:type="AttributeDateTime" sql="end_date" default_value="" is_null_allowed="true"/>
+        <field name="close_date" xsi:type="AttributeDateTime" sql="close_date" default_value="" is_null_allowed="true"/>
+        <field name="impact" xsi:type="AttributeString" sql="impact" default_value="" is_null_allowed="true"/>
+        <field name="agent_id" xsi:type="AttributeExternalKey" target_class="Person" jointype="" filter="SELECT Person AS p JOIN lnkTeamToContact AS l ON l.contact_id=p.id JOIN Team AS t ON l.team_id=t.id WHERE t.id = :this-&gt;workgroup_id" sql="agent_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="workgroup_id"/>
           </dependencies>
         </field>
-        <field name="agent_name" type="ExternalField" extkey_attcode="agent_id" target_attcode="name"/>
-        <field name="agent_email" type="ExternalField" extkey_attcode="agent_id" target_attcode="email"/>
-        <field name="supervisor_group_id" type="ExternalKey" target_class="Team" jointype="" sql="supervisor_group_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
-        <field name="supervisor_group_name" type="ExternalField" extkey_attcode="supervisor_group_id" target_attcode="name"/>
-        <field name="supervisor_id" type="ExternalKey" target_class="Person" jointype="" filter="SELECT Person AS p JOIN lnkTeamToContact AS l ON l.contact_id=p.id JOIN Team AS t ON l.team_id=t.id WHERE t.id = :this-&gt;supervisor_group_id" sql="supervisor_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
+        <field name="agent_name" xsi:type="AttributeExternalField" extkey_attcode="agent_id" target_attcode="name"/>
+        <field name="agent_email" xsi:type="AttributeExternalField" extkey_attcode="agent_id" target_attcode="email"/>
+        <field name="supervisor_group_id" xsi:type="AttributeExternalKey" target_class="Team" jointype="" sql="supervisor_group_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
+        <field name="supervisor_group_name" xsi:type="AttributeExternalField" extkey_attcode="supervisor_group_id" target_attcode="name"/>
+        <field name="supervisor_id" xsi:type="AttributeExternalKey" target_class="Person" jointype="" filter="SELECT Person AS p JOIN lnkTeamToContact AS l ON l.contact_id=p.id JOIN Team AS t ON l.team_id=t.id WHERE t.id = :this-&gt;supervisor_group_id" sql="supervisor_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="supervisor_group_id"/>
           </dependencies>
         </field>
-        <field name="supervisor_email" type="ExternalField" extkey_attcode="supervisor_id" target_attcode="email"/>
-        <field name="manager_group_id" type="ExternalKey" target_class="Team" jointype="" sql="manager_group_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
-        <field name="manager_group_name" type="ExternalField" extkey_attcode="manager_group_id" target_attcode="name"/>
-        <field name="manager_id" type="ExternalKey" target_class="Person" jointype="" filter="SELECT Person AS p JOIN lnkTeamToContact AS l ON l.contact_id=p.id JOIN Team AS t ON l.team_id=t.id WHERE t.id = :this-&gt;manager_group_id" sql="manager_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
+        <field name="supervisor_email" xsi:type="AttributeExternalField" extkey_attcode="supervisor_id" target_attcode="email"/>
+        <field name="manager_group_id" xsi:type="AttributeExternalKey" target_class="Team" jointype="" sql="manager_group_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
+        <field name="manager_group_name" xsi:type="AttributeExternalField" extkey_attcode="manager_group_id" target_attcode="name"/>
+        <field name="manager_id" xsi:type="AttributeExternalKey" target_class="Person" jointype="" filter="SELECT Person AS p JOIN lnkTeamToContact AS l ON l.contact_id=p.id JOIN Team AS t ON l.team_id=t.id WHERE t.id = :this-&gt;manager_group_id" sql="manager_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="manager_group_id"/>
           </dependencies>
         </field>
-        <field name="manager_email" type="ExternalField" extkey_attcode="manager_id" target_attcode="email"/>
-        <field name="outage" type="Enum" sql="outage" default_value="no" is_null_allowed="false">
+        <field name="manager_email" xsi:type="AttributeExternalField" extkey_attcode="manager_id" target_attcode="email"/>
+        <field name="outage" xsi:type="AttributeEnum" sql="outage" default_value="no" is_null_allowed="false">
           <values>
             <value>yes</value>
             <value>no</value>
           </values>
         </field>
-        <field name="fallback" type="Text" sql="fallback" default_value="" is_null_allowed="true"/>
+        <field name="fallback" xsi:type="AttributeText" sql="fallback" default_value="" is_null_allowed="true"/>
       </fields>
       <lifecycle attribute="status">
         <stimuli>
@@ -1242,8 +1242,8 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="approval_date" type="DateTime" sql="approval_date" default_value="" is_null_allowed="true"/>
-        <field name="approval_comment" type="String" sql="approval_comment" default_value="" is_null_allowed="true"/>
+        <field name="approval_date" xsi:type="AttributeDateTime" sql="approval_date" default_value="" is_null_allowed="true"/>
+        <field name="approval_comment" xsi:type="AttributeString" sql="approval_comment" default_value="" is_null_allowed="true"/>
       </fields>
       <lifecycle attribute="status">
         <stimuli>
@@ -1770,8 +1770,8 @@
         </order>
       </properties>
       <fields>
-        <field name="acceptance_date" type="DateTime" sql="acceptance_date" default_value="" is_null_allowed="true"/>
-        <field name="acceptance_comment" type="String" sql="acceptance_comment" default_value="" is_null_allowed="true"/>
+        <field name="acceptance_date" xsi:type="AttributeDateTime" sql="acceptance_date" default_value="" is_null_allowed="true"/>
+        <field name="acceptance_comment" xsi:type="AttributeString" sql="acceptance_comment" default_value="" is_null_allowed="true"/>
       </fields>
       <lifecycle attribute="status">
         <stimuli>
@@ -2959,56 +2959,56 @@
     </class>
   </classes>
   <menus>
-    <menu id="ChangeManagement" type="MenuGroup">
+    <menu id="ChangeManagement" xsi:type="MenuGroup">
       <rank value="50"/>
     </menu>
-    <menu id="Change:Overview" type="TemplateMenuNode">
-      <template_file value="overview.html"/>
-      <parent value="ChangeManagement"/>
+    <menu id="Change:Overview" xsi:type="TemplateMenuNode">
       <rank value="0"/>
-    </menu>
-    <menu id="NewChange" type="NewObjectMenuNode">
-      <class value="Change"/>
       <parent value="ChangeManagement"/>
-      <rank value="1"/>
+      <template_file value="overview.html"/>
     </menu>
-    <menu id="SearchChanges" type="SearchMenuNode">
-      <class value="Change"/>
+    <menu id="NewChange" xsi:type="NewObjectMenuNode">
+      <rank value="1"/>
       <parent value="ChangeManagement"/>
-      <rank value="2"/>
+      <class value="Change"/>
     </menu>
-    <menu id="Change:Shortcuts" type="TemplateMenuNode">
-      <template_file value=""/>
+    <menu id="SearchChanges" xsi:type="SearchMenuNode">
+      <rank value="2"/>
       <parent value="ChangeManagement"/>
+      <class value="Change"/>
+    </menu>
+    <menu id="Change:Shortcuts" xsi:type="TemplateMenuNode">
       <rank value="3"/>
+      <parent value="ChangeManagement"/>
+      <template_file value=""/>
     </menu>
-    <menu id="MyChanges" type="OQLMenuNode">
+    <menu id="MyChanges" xsi:type="OQLMenuNode">
+      <rank value="1"/>
+      <parent value="Change:Shortcuts"/>
       <oql value="SELECT Change WHERE agent_id = :current_contact_id AND status NOT IN (&quot;closed&quot;, &quot;resolved&quot;)"/>
       <do_search value=""/>
       <auto_reload value="fast"/>
-      <parent value="Change:Shortcuts"/>
-      <rank value="1"/>
     </menu>
-    <menu id="Changes" type="OQLMenuNode">
+    <menu id="Changes" xsi:type="OQLMenuNode">
+      <rank value="2"/>
+      <parent value="Change:Shortcuts"/>
       <oql value="SELECT Change WHERE status != &quot;closed&quot;"/>
       <do_search value=""/>
       <auto_reload value="fast"/>
-      <parent value="Change:Shortcuts"/>
-      <rank value="2"/>
     </menu>
-    <menu id="WaitingApproval" type="OQLMenuNode">
+    <menu id="WaitingApproval" xsi:type="OQLMenuNode">
+      <rank value="3"/>
+      <parent value="Change:Shortcuts"/>
       <oql value="SELECT ApprovedChange WHERE status IN (&quot;plannedscheduled&quot;)"/>
       <do_search value=""/>
       <auto_reload value="fast"/>
-      <parent value="Change:Shortcuts"/>
-      <rank value="3"/>
     </menu>
-    <menu id="WaitingAcceptance" type="OQLMenuNode">
+    <menu id="WaitingAcceptance" xsi:type="OQLMenuNode">
+      <rank value="4"/>
+      <parent value="Change:Shortcuts"/>
       <oql value="SELECT NormalChange WHERE status IN (&quot;new&quot;)"/>
       <do_search value=""/>
       <auto_reload value="fast"/>
-      <parent value="Change:Shortcuts"/>
-      <rank value="4"/>
     </menu>
   </menus>
 </itop_design>

+ 276 - 276
datamodel/itop-config-mgmt-1.0.0/datamodel.itop-config-mgmt.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<itop_design>
+<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <classes>
     <class name="Organization" category="bizmodel,searchable,structure" parent="cmdbAbstractObject" abstract="false" key_type="autoincrement" db_table="organization" db_key_field="id" db_final_class_field="">
       <properties>
@@ -25,16 +25,16 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
-        <field name="code" type="String" sql="code" default_value="" is_null_allowed="true"/>
-        <field name="status" type="Enum" sql="status" default_value="active" is_null_allowed="true">
+        <field name="name" xsi:type="AttributeString" sql="name" default_value="" is_null_allowed="false"/>
+        <field name="code" xsi:type="AttributeString" sql="code" default_value="" is_null_allowed="true"/>
+        <field name="status" xsi:type="AttributeEnum" sql="status" default_value="active" is_null_allowed="true">
           <values>
             <value>active</value>
             <value>inactive</value>
           </values>
         </field>
-        <field name="parent_id" type="HierarchicalKey" sql="parent_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
-        <field name="parent_name" type="ExternalField" extkey_attcode="parent_id" target_attcode="name"/>
+        <field name="parent_id" xsi:type="AttributeHierarchicalKey" sql="parent_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
+        <field name="parent_name" xsi:type="AttributeExternalField" extkey_attcode="parent_id" target_attcode="name"/>
       </fields>
       <methods/>
       <presentation>
@@ -80,27 +80,27 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
-        <field name="status" type="Enum" sql="status" default_value="active" is_null_allowed="true">
+        <field name="name" xsi:type="AttributeString" sql="name" default_value="" is_null_allowed="false"/>
+        <field name="status" xsi:type="AttributeEnum" sql="status" default_value="active" is_null_allowed="true">
           <values>
             <value>active</value>
             <value>inactive</value>
           </values>
         </field>
-        <field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
-        <field name="org_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
-        <field name="address" type="Text" sql="address" default_value="" is_null_allowed="true"/>
-        <field name="postal_code" type="String" sql="postal_code" default_value="" is_null_allowed="true"/>
-        <field name="city" type="String" sql="city" default_value="" is_null_allowed="true"/>
-        <field name="country" type="String" sql="country" default_value="" is_null_allowed="true"/>
-        <field name="parent_id" type="HierarchicalKey" filter="SELECT Location AS L WHERE L.org_id = :this-&gt;org_id" sql="parent_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
+        <field name="org_id" xsi:type="AttributeExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
+        <field name="org_name" xsi:type="AttributeExternalField" extkey_attcode="org_id" target_attcode="name"/>
+        <field name="address" xsi:type="AttributeText" sql="address" default_value="" is_null_allowed="true"/>
+        <field name="postal_code" xsi:type="AttributeString" sql="postal_code" default_value="" is_null_allowed="true"/>
+        <field name="city" xsi:type="AttributeString" sql="city" default_value="" is_null_allowed="true"/>
+        <field name="country" xsi:type="AttributeString" sql="country" default_value="" is_null_allowed="true"/>
+        <field name="parent_id" xsi:type="AttributeHierarchicalKey" filter="SELECT Location AS L WHERE L.org_id = :this-&gt;org_id" sql="parent_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="org_id"/>
           </dependencies>
         </field>
-        <field name="parent_name" type="ExternalField" extkey_attcode="parent_id" target_attcode="name"/>
-        <field name="contact_list" type="LinkedSet" linked_class="Contact" ext_key_to_me="location_id" count_min="0" count_max="0"/>
-        <field name="infra_list" type="LinkedSet" linked_class="InfrastructureCI" ext_key_to_me="location_id" count_min="0" count_max="0"/>
+        <field name="parent_name" xsi:type="AttributeExternalField" extkey_attcode="parent_id" target_attcode="name"/>
+        <field name="contact_list" xsi:type="AttributeLinkedSet" linked_class="Contact" ext_key_to_me="location_id" count_min="0" count_max="0"/>
+        <field name="infra_list" xsi:type="AttributeLinkedSet" linked_class="InfrastructureCI" ext_key_to_me="location_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -157,28 +157,28 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
-        <field name="status" type="Enum" sql="status" default_value="active" is_null_allowed="false">
+        <field name="name" xsi:type="AttributeString" sql="name" default_value="" is_null_allowed="false"/>
+        <field name="status" xsi:type="AttributeEnum" sql="status" default_value="active" is_null_allowed="false">
           <values>
             <value>active</value>
             <value>inactive</value>
           </values>
         </field>
-        <field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
-        <field name="org_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
-        <field name="email" type="EmailAddress" sql="email" default_value="" is_null_allowed="false"/>
-        <field name="phone" type="String" sql="phone" default_value="" is_null_allowed="true"/>
-        <field name="location_id" type="ExternalKey" target_class="Location" jointype="" filter="SELECT Location AS L WHERE L.org_id = :this-&gt;org_id" sql="location_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
+        <field name="org_id" xsi:type="AttributeExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
+        <field name="org_name" xsi:type="AttributeExternalField" extkey_attcode="org_id" target_attcode="name"/>
+        <field name="email" xsi:type="AttributeEmailAddress" sql="email" default_value="" is_null_allowed="false"/>
+        <field name="phone" xsi:type="AttributeString" sql="phone" default_value="" is_null_allowed="true"/>
+        <field name="location_id" xsi:type="AttributeExternalKey" target_class="Location" jointype="" filter="SELECT Location AS L WHERE L.org_id = :this-&gt;org_id" sql="location_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="org_id"/>
           </dependencies>
         </field>
-        <field name="location_name" type="ExternalField" extkey_attcode="location_id" target_attcode="name"/>
-        <field name="contract_list" type="LinkedSetIndirect" linked_class="lnkContractToContact" ext_key_to_me="contact_id" ext_key_to_remote="contract_id" count_min="0" count_max="0"/>
-        <field name="service_list" type="LinkedSetIndirect" linked_class="lnkServiceToContact" ext_key_to_me="contact_id" ext_key_to_remote="service_id" count_min="0" count_max="0"/>
-        <field name="ticket_list" type="LinkedSetIndirect" linked_class="lnkTicketToContact" ext_key_to_me="contact_id" ext_key_to_remote="ticket_id" count_min="0" count_max="0"/>
-        <field name="ci_list" type="LinkedSetIndirect" linked_class="lnkCIToContact" ext_key_to_me="contact_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
-        <field name="team_list" type="LinkedSetIndirect" linked_class="lnkTeamToContact" ext_key_to_me="contact_id" ext_key_to_remote="team_id" count_min="0" count_max="0"/>
+        <field name="location_name" xsi:type="AttributeExternalField" extkey_attcode="location_id" target_attcode="name"/>
+        <field name="contract_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkContractToContact" ext_key_to_me="contact_id" ext_key_to_remote="contract_id" count_min="0" count_max="0"/>
+        <field name="service_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkServiceToContact" ext_key_to_me="contact_id" ext_key_to_remote="service_id" count_min="0" count_max="0"/>
+        <field name="ticket_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkTicketToContact" ext_key_to_me="contact_id" ext_key_to_remote="ticket_id" count_min="0" count_max="0"/>
+        <field name="ci_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkCIToContact" ext_key_to_me="contact_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
+        <field name="team_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkTeamToContact" ext_key_to_me="contact_id" ext_key_to_remote="team_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -239,8 +239,8 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="first_name" type="String" sql="first_name" default_value="" is_null_allowed="false"/>
-        <field name="employee_id" type="String" sql="employee_id" default_value="" is_null_allowed="true"/>
+        <field name="first_name" xsi:type="AttributeString" sql="first_name" default_value="" is_null_allowed="false"/>
+        <field name="employee_id" xsi:type="AttributeString" sql="employee_id" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -303,7 +303,7 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="member_list" type="LinkedSetIndirect" linked_class="lnkTeamToContact" ext_key_to_me="team_id" ext_key_to_remote="contact_id" count_min="0" count_max="0"/>
+        <field name="member_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkTeamToContact" ext_key_to_me="team_id" ext_key_to_remote="contact_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -360,15 +360,15 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="team_id" type="ExternalKey" target_class="Team" jointype="" sql="team_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="team_name" type="ExternalField" extkey_attcode="team_id" target_attcode="name"/>
-        <field name="contact_id" type="ExternalKey" target_class="Contact" jointype="" sql="contact_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="contact_name" type="ExternalField" extkey_attcode="contact_id" target_attcode="name"/>
-        <field name="contact_location_id" type="ExternalField" extkey_attcode="contact_id" target_attcode="location_id"/>
-        <field name="contact_location_name" type="ExternalField" extkey_attcode="contact_id" target_attcode="location_name"/>
-        <field name="contact_email" type="ExternalField" extkey_attcode="contact_id" target_attcode="email"/>
-        <field name="contact_phone" type="ExternalField" extkey_attcode="contact_id" target_attcode="phone"/>
-        <field name="role" type="String" sql="role" default_value="" is_null_allowed="true"/>
+        <field name="team_id" xsi:type="AttributeExternalKey" target_class="Team" jointype="" sql="team_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="team_name" xsi:type="AttributeExternalField" extkey_attcode="team_id" target_attcode="name"/>
+        <field name="contact_id" xsi:type="AttributeExternalKey" target_class="Contact" jointype="" sql="contact_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="contact_name" xsi:type="AttributeExternalField" extkey_attcode="contact_id" target_attcode="name"/>
+        <field name="contact_location_id" xsi:type="AttributeExternalField" extkey_attcode="contact_id" target_attcode="location_id"/>
+        <field name="contact_location_name" xsi:type="AttributeExternalField" extkey_attcode="contact_id" target_attcode="location_name"/>
+        <field name="contact_email" xsi:type="AttributeExternalField" extkey_attcode="contact_id" target_attcode="email"/>
+        <field name="contact_phone" xsi:type="AttributeExternalField" extkey_attcode="contact_id" target_attcode="phone"/>
+        <field name="role" xsi:type="AttributeString" sql="role" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -416,11 +416,11 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
-        <field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
-        <field name="org_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
-        <field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
-        <field name="type" type="Enum" sql="type" default_value="presentation" is_null_allowed="true">
+        <field name="name" xsi:type="AttributeString" sql="name" default_value="" is_null_allowed="false"/>
+        <field name="org_id" xsi:type="AttributeExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
+        <field name="org_name" xsi:type="AttributeExternalField" extkey_attcode="org_id" target_attcode="name"/>
+        <field name="description" xsi:type="AttributeText" sql="description" default_value="" is_null_allowed="true"/>
+        <field name="type" xsi:type="AttributeEnum" sql="type" default_value="presentation" is_null_allowed="true">
           <values>
             <value>contract</value>
             <value>networkmap</value>
@@ -430,17 +430,17 @@
             <value>workinginstructions</value>
           </values>
         </field>
-        <field name="status" type="Enum" sql="status" default_value="draft" is_null_allowed="false">
+        <field name="status" xsi:type="AttributeEnum" sql="status" default_value="draft" is_null_allowed="false">
           <values>
             <value>draft</value>
             <value>published</value>
             <value>obsolete</value>
           </values>
         </field>
-        <field name="contract_list" type="LinkedSetIndirect" linked_class="lnkContractToDoc" ext_key_to_me="document_id" ext_key_to_remote="contract_id" count_min="0" count_max="0"/>
-        <field name="service_list" type="LinkedSetIndirect" linked_class="lnkServiceToDoc" ext_key_to_me="document_id" ext_key_to_remote="service_id" count_min="0" count_max="0"/>
-        <field name="ticket_list" type="LinkedSetIndirect" linked_class="lnkTicketToDoc" ext_key_to_me="document_id" ext_key_to_remote="ticket_id" count_min="0" count_max="0"/>
-        <field name="ci_list" type="LinkedSetIndirect" linked_class="lnkCIToDoc" ext_key_to_me="document_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
+        <field name="contract_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkContractToDoc" ext_key_to_me="document_id" ext_key_to_remote="contract_id" count_min="0" count_max="0"/>
+        <field name="service_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkServiceToDoc" ext_key_to_me="document_id" ext_key_to_remote="service_id" count_min="0" count_max="0"/>
+        <field name="ticket_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkTicketToDoc" ext_key_to_me="document_id" ext_key_to_remote="ticket_id" count_min="0" count_max="0"/>
+        <field name="ci_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkCIToDoc" ext_key_to_me="document_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -493,7 +493,7 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="url" type="URL" target="_blank" sql="url" default_value="" is_null_allowed="false"/>
+        <field name="url" xsi:type="AttributeURL" target="_blank" sql="url" default_value="" is_null_allowed="false"/>
       </fields>
       <methods/>
       <presentation>
@@ -549,7 +549,7 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="note" type="Text" sql="note" default_value="" is_null_allowed="true"/>
+        <field name="note" xsi:type="AttributeText" sql="note" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -605,7 +605,7 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="contents" type="Blob"/>
+        <field name="contents" xsi:type="AttributeBlob"/>
       </fields>
       <methods>
         <method name="DisplayBareProperties" static="false" access="public" type="Overload-cmdbAbstractObject"><comment><![CDATA[/**
@@ -675,17 +675,17 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="provider" type="String" sql="provider" default_value="" is_null_allowed="false"/>
-        <field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
-        <field name="org_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
-        <field name="product" type="String" sql="product" default_value="" is_null_allowed="false"/>
-        <field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
-        <field name="start" type="Date" sql="start" default_value="" is_null_allowed="true"/>
-        <field name="end" type="Date" sql="end" default_value="" is_null_allowed="true"/>
-        <field name="licence_key" type="String" sql="licence_key" default_value="" is_null_allowed="true"/>
-        <field name="scope" type="Text" sql="scope" default_value="" is_null_allowed="true"/>
-        <field name="usage_limit" type="Integer" sql="usage_limit" default_value="" is_null_allowed="true"/>
-        <field name="usage_list" type="LinkedSet" linked_class="SoftwareInstance" ext_key_to_me="licence_id" count_min="0" count_max="0"/>
+        <field name="provider" xsi:type="AttributeString" sql="provider" default_value="" is_null_allowed="false"/>
+        <field name="org_id" xsi:type="AttributeExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
+        <field name="org_name" xsi:type="AttributeExternalField" extkey_attcode="org_id" target_attcode="name"/>
+        <field name="product" xsi:type="AttributeString" sql="product" default_value="" is_null_allowed="false"/>
+        <field name="name" xsi:type="AttributeString" sql="name" default_value="" is_null_allowed="false"/>
+        <field name="start" xsi:type="AttributeDate" sql="start" default_value="" is_null_allowed="true"/>
+        <field name="end" xsi:type="AttributeDate" sql="end" default_value="" is_null_allowed="true"/>
+        <field name="licence_key" xsi:type="AttributeString" sql="licence_key" default_value="" is_null_allowed="true"/>
+        <field name="scope" xsi:type="AttributeText" sql="scope" default_value="" is_null_allowed="true"/>
+        <field name="usage_limit" xsi:type="AttributeInteger" sql="usage_limit" default_value="" is_null_allowed="true"/>
+        <field name="usage_list" xsi:type="AttributeLinkedSet" linked_class="SoftwareInstance" ext_key_to_me="licence_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -746,11 +746,11 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
-        <field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
-        <field name="org_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
-        <field name="ip" type="IPAddress" sql="ip" default_value="" is_null_allowed="false"/>
-        <field name="ip_mask" type="IPAddress" sql="ip_mask" default_value="" is_null_allowed="false"/>
+        <field name="description" xsi:type="AttributeText" sql="description" default_value="" is_null_allowed="true"/>
+        <field name="org_id" xsi:type="AttributeExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
+        <field name="org_name" xsi:type="AttributeExternalField" extkey_attcode="org_id" target_attcode="name"/>
+        <field name="ip" xsi:type="AttributeIPAddress" sql="ip" default_value="" is_null_allowed="false"/>
+        <field name="ip_mask" xsi:type="AttributeIPAddress" sql="ip_mask" default_value="" is_null_allowed="false"/>
       </fields>
       <methods>
         <method name="DisplayBareRelations" static="false" access="public" type="Overload-cmdbAbstractObject"><![CDATA[	function DisplayBareRelations(WebPage $oPage, $bEditMode = false)
@@ -846,11 +846,11 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
-        <field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
-        <field name="target_sw" type="String" sql="target_sw" default_value="" is_null_allowed="true"/>
-        <field name="version" type="String" sql="version" default_value="" is_null_allowed="true"/>
-        <field name="type" type="Enum" sql="type" default_value="security" is_null_allowed="false">
+        <field name="name" xsi:type="AttributeString" sql="name" default_value="" is_null_allowed="false"/>
+        <field name="description" xsi:type="AttributeText" sql="description" default_value="" is_null_allowed="true"/>
+        <field name="target_sw" xsi:type="AttributeString" sql="target_sw" default_value="" is_null_allowed="true"/>
+        <field name="version" xsi:type="AttributeString" sql="version" default_value="" is_null_allowed="true"/>
+        <field name="type" xsi:type="AttributeEnum" sql="type" default_value="security" is_null_allowed="false">
           <values>
             <value>application</value>
             <value>os</value>
@@ -858,7 +858,7 @@
             <value>servicepack</value>
           </values>
         </field>
-        <field name="ci_list" type="LinkedSetIndirect" linked_class="lnkPatchToCI" ext_key_to_me="patch_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
+        <field name="ci_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkPatchToCI" ext_key_to_me="patch_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -906,8 +906,8 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
-        <field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
+        <field name="name" xsi:type="AttributeString" sql="name" default_value="" is_null_allowed="false"/>
+        <field name="description" xsi:type="AttributeText" sql="description" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -946,7 +946,7 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="instance_list" type="LinkedSet" linked_class="ApplicationInstance" ext_key_to_me="software_id" count_min="0" count_max="0"/>
+        <field name="instance_list" xsi:type="AttributeLinkedSet" linked_class="ApplicationInstance" ext_key_to_me="software_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -986,7 +986,7 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="instance_list" type="LinkedSet" linked_class="DBServerInstance" ext_key_to_me="software_id" count_min="0" count_max="0"/>
+        <field name="instance_list" xsi:type="AttributeLinkedSet" linked_class="DBServerInstance" ext_key_to_me="software_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -1027,11 +1027,11 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="patch_id" type="ExternalKey" target_class="Patch" jointype="" sql="patch_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="patch_name" type="ExternalField" extkey_attcode="patch_id" target_attcode="name"/>
-        <field name="ci_id" type="ExternalKey" target_class="Device" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="ci_name" type="ExternalField" extkey_attcode="ci_id" target_attcode="name"/>
-        <field name="ci_status" type="ExternalField" extkey_attcode="ci_id" target_attcode="status"/>
+        <field name="patch_id" xsi:type="AttributeExternalKey" target_class="Patch" jointype="" sql="patch_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="patch_name" xsi:type="AttributeExternalField" extkey_attcode="patch_id" target_attcode="name"/>
+        <field name="ci_id" xsi:type="AttributeExternalKey" target_class="Device" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="ci_name" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="name"/>
+        <field name="ci_status" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="status"/>
       </fields>
       <methods/>
       <presentation>
@@ -1075,28 +1075,28 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
-        <field name="status" type="Enum" sql="status" default_value="implementation" is_null_allowed="false">
+        <field name="name" xsi:type="AttributeString" sql="name" default_value="" is_null_allowed="false"/>
+        <field name="status" xsi:type="AttributeEnum" sql="status" default_value="implementation" is_null_allowed="false">
           <values>
             <value>implementation</value>
             <value>production</value>
             <value>obsolete</value>
           </values>
         </field>
-        <field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
-        <field name="owner_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
-        <field name="importance" type="Enum" sql="importance" default_value="medium" is_null_allowed="false">
+        <field name="org_id" xsi:type="AttributeExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
+        <field name="owner_name" xsi:type="AttributeExternalField" extkey_attcode="org_id" target_attcode="name"/>
+        <field name="importance" xsi:type="AttributeEnum" sql="importance" default_value="medium" is_null_allowed="false">
           <values>
             <value>low</value>
             <value>medium</value>
             <value>high</value>
           </values>
         </field>
-        <field name="contact_list" type="LinkedSetIndirect" linked_class="lnkCIToContact" ext_key_to_me="ci_id" ext_key_to_remote="contact_id" count_min="0" count_max="0"/>
-        <field name="document_list" type="LinkedSetIndirect" linked_class="lnkCIToDoc" ext_key_to_me="ci_id" ext_key_to_remote="document_id" count_min="0" count_max="0"/>
-        <field name="solution_list" type="LinkedSetIndirect" linked_class="lnkSolutionToCI" ext_key_to_me="ci_id" ext_key_to_remote="solution_id" count_min="0" count_max="0"/>
-        <field name="contract_list" type="LinkedSetIndirect" linked_class="lnkContractToCI" ext_key_to_me="ci_id" ext_key_to_remote="contract_id" count_min="0" count_max="0"/>
-        <field name="ticket_list" type="LinkedSetIndirect" linked_class="lnkTicketToCI" ext_key_to_me="ci_id" ext_key_to_remote="ticket_id" count_min="0" count_max="0"/>
+        <field name="contact_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkCIToContact" ext_key_to_me="ci_id" ext_key_to_remote="contact_id" count_min="0" count_max="0"/>
+        <field name="document_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkCIToDoc" ext_key_to_me="ci_id" ext_key_to_remote="document_id" count_min="0" count_max="0"/>
+        <field name="solution_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkSolutionToCI" ext_key_to_me="ci_id" ext_key_to_remote="solution_id" count_min="0" count_max="0"/>
+        <field name="contract_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkContractToCI" ext_key_to_me="ci_id" ext_key_to_remote="contract_id" count_min="0" count_max="0"/>
+        <field name="ticket_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkTicketToCI" ext_key_to_me="ci_id" ext_key_to_remote="ticket_id" count_min="0" count_max="0"/>
       </fields>
       <methods>
         <method name="GetRelationQueries" static="true" access="public" type="Overload-DBObject"><![CDATA[	public static function GetRelationQueries($sRelCode)
@@ -1168,20 +1168,20 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="device_id" type="ExternalKey" target_class="Device" jointype="" filter="SELECT Device WHERE org_id = :this-&gt;org_id" sql="device_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
+        <field name="device_id" xsi:type="AttributeExternalKey" target_class="Device" jointype="" filter="SELECT Device WHERE org_id = :this-&gt;org_id" sql="device_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="org_id"/>
           </dependencies>
         </field>
-        <field name="device_name" type="ExternalField" extkey_attcode="device_id" target_attcode="name"/>
-        <field name="licence_id" type="ExternalKey" target_class="Licence" jointype="" filter="SELECT Licence WHERE org_id = :this-&gt;org_id" sql="licence_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
+        <field name="device_name" xsi:type="AttributeExternalField" extkey_attcode="device_id" target_attcode="name"/>
+        <field name="licence_id" xsi:type="AttributeExternalKey" target_class="Licence" jointype="" filter="SELECT Licence WHERE org_id = :this-&gt;org_id" sql="licence_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="org_id"/>
           </dependencies>
         </field>
-        <field name="licence_name" type="ExternalField" extkey_attcode="licence_id" target_attcode="name"/>
-        <field name="version" type="String" sql="version" default_value="" is_null_allowed="true"/>
-        <field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
+        <field name="licence_name" xsi:type="AttributeExternalField" extkey_attcode="licence_id" target_attcode="name"/>
+        <field name="version" xsi:type="AttributeString" sql="version" default_value="" is_null_allowed="true"/>
+        <field name="description" xsi:type="AttributeText" sql="description" default_value="" is_null_allowed="true"/>
       </fields>
       <methods>
         <method name="ComputeValues" static="false" access="public" type="Overload-DBObject"><![CDATA[	public function ComputeValues()
@@ -1274,9 +1274,9 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="software_id" type="ExternalKey" target_class="DBServer" jointype="" sql="software_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
-        <field name="software_name" type="ExternalField" extkey_attcode="software_id" target_attcode="name"/>
-        <field name="dbinstance_list" type="LinkedSet" linked_class="DatabaseInstance" ext_key_to_me="db_server_instance_id" count_min="0" count_max="0"/>
+        <field name="software_id" xsi:type="AttributeExternalKey" target_class="DBServer" jointype="" sql="software_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
+        <field name="software_name" xsi:type="AttributeExternalField" extkey_attcode="software_id" target_attcode="name"/>
+        <field name="dbinstance_list" xsi:type="AttributeLinkedSet" linked_class="DatabaseInstance" ext_key_to_me="db_server_instance_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -1345,8 +1345,8 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="software_id" type="ExternalKey" target_class="Application" jointype="" sql="software_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
-        <field name="software_name" type="ExternalField" extkey_attcode="software_id" target_attcode="name"/>
+        <field name="software_id" xsi:type="AttributeExternalKey" target_class="Application" jointype="" sql="software_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
+        <field name="software_name" xsi:type="AttributeExternalField" extkey_attcode="software_id" target_attcode="name"/>
       </fields>
       <methods/>
       <presentation>
@@ -1412,14 +1412,14 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="db_server_instance_id" type="ExternalKey" target_class="DBServerInstance" jointype="" filter="SELECT DBServerInstance WHERE org_id = :this-&gt;org_id" sql="db_server_instance_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
+        <field name="db_server_instance_id" xsi:type="AttributeExternalKey" target_class="DBServerInstance" jointype="" filter="SELECT DBServerInstance WHERE org_id = :this-&gt;org_id" sql="db_server_instance_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="org_id"/>
           </dependencies>
         </field>
-        <field name="db_server_instance_name" type="ExternalField" extkey_attcode="db_server_instance_id" target_attcode="name"/>
-        <field name="db_server_instance_version" type="ExternalField" extkey_attcode="db_server_instance_id" target_attcode="version"/>
-        <field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
+        <field name="db_server_instance_name" xsi:type="AttributeExternalField" extkey_attcode="db_server_instance_id" target_attcode="name"/>
+        <field name="db_server_instance_version" xsi:type="AttributeExternalField" extkey_attcode="db_server_instance_id" target_attcode="version"/>
+        <field name="description" xsi:type="AttributeText" sql="description" default_value="" is_null_allowed="true"/>
       </fields>
       <methods>
         <method name="GetRelationQueries" static="true" access="public" type="Overload-DBObject"><![CDATA[	public static function GetRelationQueries($sRelCode)
@@ -1494,9 +1494,9 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
-        <field name="ci_list" type="LinkedSetIndirect" linked_class="lnkSolutionToCI" ext_key_to_me="solution_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
-        <field name="process_list" type="LinkedSetIndirect" linked_class="lnkProcessToSolution" ext_key_to_me="solution_id" ext_key_to_remote="process_id" count_min="0" count_max="0"/>
+        <field name="description" xsi:type="AttributeText" sql="description" default_value="" is_null_allowed="true"/>
+        <field name="ci_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkSolutionToCI" ext_key_to_me="solution_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
+        <field name="process_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkProcessToSolution" ext_key_to_me="solution_id" ext_key_to_remote="process_id" count_min="0" count_max="0"/>
       </fields>
       <methods>
         <method name="GetRelationQueries" static="true" access="public" type="Overload-DBObject"><![CDATA[	public static function GetRelationQueries($sRelCode)
@@ -1574,8 +1574,8 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
-        <field name="used_solution_list" type="LinkedSetIndirect" linked_class="lnkProcessToSolution" ext_key_to_me="process_id" ext_key_to_remote="solution_id" count_min="0" count_max="0"/>
+        <field name="description" xsi:type="AttributeText" sql="description" default_value="" is_null_allowed="true"/>
+        <field name="used_solution_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkProcessToSolution" ext_key_to_me="process_id" ext_key_to_remote="solution_id" count_min="0" count_max="0"/>
       </fields>
       <methods>
         <method name="GetRelationQueries" static="true" access="public" type="Overload-DBObject"><![CDATA[	public static function GetRelationQueries($sRelCode)
@@ -1645,10 +1645,10 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="brand" type="String" sql="brand" default_value="" is_null_allowed="true"/>
-        <field name="model" type="String" sql="model" default_value="" is_null_allowed="true"/>
-        <field name="serial_number" type="String" sql="serial_number" default_value="" is_null_allowed="true"/>
-        <field name="asset_ref" type="String" sql="asset_ref" default_value="" is_null_allowed="true"/>
+        <field name="brand" xsi:type="AttributeString" sql="brand" default_value="" is_null_allowed="true"/>
+        <field name="model" xsi:type="AttributeString" sql="model" default_value="" is_null_allowed="true"/>
+        <field name="serial_number" xsi:type="AttributeString" sql="serial_number" default_value="" is_null_allowed="true"/>
+        <field name="asset_ref" xsi:type="AttributeString" sql="asset_ref" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -1715,13 +1715,13 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="device_id" type="ExternalKey" target_class="Device" jointype="" filter="SELECT Device WHERE org_id = :this-&gt;org_id" sql="device_id" is_null_allowed="false" on_target_delete="DEL_AUTO">
+        <field name="device_id" xsi:type="AttributeExternalKey" target_class="Device" jointype="" filter="SELECT Device WHERE org_id = :this-&gt;org_id" sql="device_id" is_null_allowed="false" on_target_delete="DEL_AUTO">
           <dependencies>
             <attribute name="org_id"/>
           </dependencies>
         </field>
-        <field name="device_name" type="ExternalField" extkey_attcode="device_id" target_attcode="name"/>
-        <field name="logical_type" type="Enum" sql="logical_type" default_value="primary" is_null_allowed="false">
+        <field name="device_name" xsi:type="AttributeExternalField" extkey_attcode="device_id" target_attcode="name"/>
+        <field name="logical_type" xsi:type="AttributeEnum" sql="logical_type" default_value="primary" is_null_allowed="false">
           <values>
             <value>backup</value>
             <value>logical</value>
@@ -1730,7 +1730,7 @@
             <value>secondary</value>
           </values>
         </field>
-        <field name="physical_type" type="Enum" sql="physical_type" default_value="ethernet" is_null_allowed="false">
+        <field name="physical_type" xsi:type="AttributeEnum" sql="physical_type" default_value="ethernet" is_null_allowed="false">
           <values>
             <value>atm</value>
             <value>ethernet</value>
@@ -1738,11 +1738,11 @@
             <value>vlan</value>
           </values>
         </field>
-        <field name="ip_address" type="IPAddress" sql="ip_address" default_value="" is_null_allowed="true"/>
-        <field name="ip_mask" type="IPAddress" sql="ip_mask" default_value="" is_null_allowed="true"/>
-        <field name="mac_address" type="String" sql="mac_address" default_value="" is_null_allowed="true"/>
-        <field name="speed" type="Integer" sql="speed" default_value="" is_null_allowed="true"/>
-        <field name="duplex" type="Enum" sql="duplex" default_value="full" is_null_allowed="true">
+        <field name="ip_address" xsi:type="AttributeIPAddress" sql="ip_address" default_value="" is_null_allowed="true"/>
+        <field name="ip_mask" xsi:type="AttributeIPAddress" sql="ip_mask" default_value="" is_null_allowed="true"/>
+        <field name="mac_address" xsi:type="AttributeString" sql="mac_address" default_value="" is_null_allowed="true"/>
+        <field name="speed" xsi:type="AttributeInteger" sql="speed" default_value="" is_null_allowed="true"/>
+        <field name="duplex" xsi:type="AttributeEnum" sql="duplex" default_value="full" is_null_allowed="true">
           <values>
             <value>full</value>
             <value>half</value>
@@ -1750,21 +1750,21 @@
             <value>unknown</value>
           </values>
         </field>
-        <field name="connected_if" type="ExternalKey" target_class="NetworkInterface" jointype="" filter="SELECT NetworkInterface WHERE org_id = :this-&gt;org_id" sql="connected_if" is_null_allowed="true" on_target_delete="DEL_AUTO">
+        <field name="connected_if" xsi:type="AttributeExternalKey" target_class="NetworkInterface" jointype="" filter="SELECT NetworkInterface WHERE org_id = :this-&gt;org_id" sql="connected_if" is_null_allowed="true" on_target_delete="DEL_AUTO">
           <dependencies>
             <attribute name="org_id"/>
           </dependencies>
         </field>
-        <field name="connected_name" type="ExternalField" extkey_attcode="connected_if" target_attcode="name"/>
-        <field name="connected_if_device_id" type="ExternalField" extkey_attcode="connected_if" target_attcode="device_id"/>
-        <field name="connected_if_device_id_name" type="ExternalField" extkey_attcode="connected_if" target_attcode="device_name"/>
-        <field name="link_type" type="Enum" sql="link_type" default_value="uplink" is_null_allowed="false">
+        <field name="connected_name" xsi:type="AttributeExternalField" extkey_attcode="connected_if" target_attcode="name"/>
+        <field name="connected_if_device_id" xsi:type="AttributeExternalField" extkey_attcode="connected_if" target_attcode="device_id"/>
+        <field name="connected_if_device_id_name" xsi:type="AttributeExternalField" extkey_attcode="connected_if" target_attcode="device_name"/>
+        <field name="link_type" xsi:type="AttributeEnum" sql="link_type" default_value="uplink" is_null_allowed="false">
           <values>
             <value>uplink</value>
             <value>downlink</value>
           </values>
         </field>
-        <field name="connected_if_device_id_friendlyname" type="ExternalField" extkey_attcode="connected_if" target_attcode="device_id_friendlyname" is_null_allowed="true"/>
+        <field name="connected_if_device_id_friendlyname" xsi:type="AttributeExternalField" extkey_attcode="connected_if" target_attcode="device_id_friendlyname" is_null_allowed="true"/>
       </fields>
       <methods>
         <method name="GetRelationQueries" static="true" access="public" type="Overload-DBObject"><![CDATA[	public static function GetRelationQueries($sRelCode)
@@ -1920,7 +1920,7 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="nwinterface_list" type="LinkedSet" linked_class="NetworkInterface" ext_key_to_me="device_id" count_min="0" count_max="0"/>
+        <field name="nwinterface_list" xsi:type="AttributeLinkedSet" linked_class="NetworkInterface" ext_key_to_me="device_id" count_min="0" count_max="0"/>
       </fields>
       <methods>
         <method name="GetRelationQueries" static="true" access="public" type="Overload-DBObject"><![CDATA[	public static function GetRelationQueries($sRelCode)
@@ -2010,13 +2010,13 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="cpu" type="String" sql="cpu" default_value="" is_null_allowed="true"/>
-        <field name="ram" type="String" sql="ram" default_value="" is_null_allowed="true"/>
-        <field name="hdd" type="String" sql="hdd" default_value="" is_null_allowed="true"/>
-        <field name="os_family" type="String" sql="os_family" default_value="" is_null_allowed="true"/>
-        <field name="os_version" type="String" sql="os_version" default_value="" is_null_allowed="true"/>
-        <field name="application_list" type="LinkedSet" linked_class="SoftwareInstance" ext_key_to_me="device_id" count_min="0" count_max="0"/>
-        <field name="patch_list" type="LinkedSetIndirect" linked_class="lnkPatchToCI" ext_key_to_me="ci_id" ext_key_to_remote="patch_id" count_min="0" count_max="0"/>
+        <field name="cpu" xsi:type="AttributeString" sql="cpu" default_value="" is_null_allowed="true"/>
+        <field name="ram" xsi:type="AttributeString" sql="ram" default_value="" is_null_allowed="true"/>
+        <field name="hdd" xsi:type="AttributeString" sql="hdd" default_value="" is_null_allowed="true"/>
+        <field name="os_family" xsi:type="AttributeString" sql="os_family" default_value="" is_null_allowed="true"/>
+        <field name="os_version" xsi:type="AttributeString" sql="os_version" default_value="" is_null_allowed="true"/>
+        <field name="application_list" xsi:type="AttributeLinkedSet" linked_class="SoftwareInstance" ext_key_to_me="device_id" count_min="0" count_max="0"/>
+        <field name="patch_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkPatchToCI" ext_key_to_me="ci_id" ext_key_to_remote="patch_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -2150,9 +2150,9 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="number" type="String" sql="number" default_value="" is_null_allowed="true"/>
-        <field name="imei" type="String" sql="IMIE" default_value="" is_null_allowed="true"/>
-        <field name="hw_pin" type="String" sql="hw_pin" default_value="" is_null_allowed="true"/>
+        <field name="number" xsi:type="AttributeString" sql="number" default_value="" is_null_allowed="true"/>
+        <field name="imei" xsi:type="AttributeString" sql="IMIE" default_value="" is_null_allowed="true"/>
+        <field name="hw_pin" xsi:type="AttributeString" sql="hw_pin" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -2222,16 +2222,16 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
-        <field name="location_id" type="ExternalKey" target_class="Location" jointype="" filter="SELECT Location AS l WHERE l.org_id = :this-&gt;org_id" sql="location_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
+        <field name="description" xsi:type="AttributeText" sql="description" default_value="" is_null_allowed="true"/>
+        <field name="location_id" xsi:type="AttributeExternalKey" target_class="Location" jointype="" filter="SELECT Location AS l WHERE l.org_id = :this-&gt;org_id" sql="location_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="org_id"/>
           </dependencies>
         </field>
-        <field name="location_name" type="ExternalField" extkey_attcode="location_id" target_attcode="name"/>
-        <field name="location_details" type="Text" sql="location_details" default_value="" is_null_allowed="true"/>
-        <field name="management_ip" type="IPAddress" sql="management_ip" default_value="" is_null_allowed="true"/>
-        <field name="default_gateway" type="String" sql="default_gateway" default_value="" is_null_allowed="true"/>
+        <field name="location_name" xsi:type="AttributeExternalField" extkey_attcode="location_id" target_attcode="name"/>
+        <field name="location_details" xsi:type="AttributeText" sql="location_details" default_value="" is_null_allowed="true"/>
+        <field name="management_ip" xsi:type="AttributeIPAddress" sql="management_ip" default_value="" is_null_allowed="true"/>
+        <field name="default_gateway" xsi:type="AttributeString" sql="default_gateway" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -2305,7 +2305,7 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="type" type="Enum" sql="type" default_value="switch" is_null_allowed="true">
+        <field name="type" xsi:type="AttributeEnum" sql="type" default_value="switch" is_null_allowed="true">
           <values>
             <value>wanaccelerator</value>
             <value>firewall</value>
@@ -2315,10 +2315,10 @@
             <value>switch</value>
           </values>
         </field>
-        <field name="ios_version" type="String" sql="ios_version" default_value="" is_null_allowed="true"/>
-        <field name="ram" type="String" sql="ram" default_value="" is_null_allowed="true"/>
-        <field name="snmp_read" type="String" sql="snmp_read" default_value="" is_null_allowed="true"/>
-        <field name="snmp_write" type="String" sql="snmp_write" default_value="" is_null_allowed="true"/>
+        <field name="ios_version" xsi:type="AttributeString" sql="ios_version" default_value="" is_null_allowed="true"/>
+        <field name="ram" xsi:type="AttributeString" sql="ram" default_value="" is_null_allowed="true"/>
+        <field name="snmp_read" xsi:type="AttributeString" sql="snmp_read" default_value="" is_null_allowed="true"/>
+        <field name="snmp_write" xsi:type="AttributeString" sql="snmp_write" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -2400,13 +2400,13 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="cpu" type="String" sql="cpu" default_value="" is_null_allowed="true"/>
-        <field name="ram" type="String" sql="ram" default_value="" is_null_allowed="true"/>
-        <field name="hdd" type="String" sql="hdd" default_value="" is_null_allowed="true"/>
-        <field name="os_family" type="String" sql="os_family" default_value="" is_null_allowed="true"/>
-        <field name="os_version" type="String" sql="os_version" default_value="" is_null_allowed="true"/>
-        <field name="application_list" type="LinkedSet" linked_class="SoftwareInstance" ext_key_to_me="device_id" count_min="0" count_max="0"/>
-        <field name="patch_list" type="LinkedSetIndirect" linked_class="lnkPatchToCI" ext_key_to_me="ci_id" ext_key_to_remote="patch_id" count_min="0" count_max="0"/>
+        <field name="cpu" xsi:type="AttributeString" sql="cpu" default_value="" is_null_allowed="true"/>
+        <field name="ram" xsi:type="AttributeString" sql="ram" default_value="" is_null_allowed="true"/>
+        <field name="hdd" xsi:type="AttributeString" sql="hdd" default_value="" is_null_allowed="true"/>
+        <field name="os_family" xsi:type="AttributeString" sql="os_family" default_value="" is_null_allowed="true"/>
+        <field name="os_version" xsi:type="AttributeString" sql="os_version" default_value="" is_null_allowed="true"/>
+        <field name="application_list" xsi:type="AttributeLinkedSet" linked_class="SoftwareInstance" ext_key_to_me="device_id" count_min="0" count_max="0"/>
+        <field name="patch_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkPatchToCI" ext_key_to_me="ci_id" ext_key_to_remote="patch_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -2490,13 +2490,13 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="type" type="Enum" sql="type" default_value="printer" is_null_allowed="true">
+        <field name="type" xsi:type="AttributeEnum" sql="type" default_value="printer" is_null_allowed="true">
           <values>
             <value>mopier</value>
             <value>printer</value>
           </values>
         </field>
-        <field name="technology" type="Enum" sql="technology" default_value="laser" is_null_allowed="true">
+        <field name="technology" xsi:type="AttributeEnum" sql="technology" default_value="laser" is_null_allowed="true">
           <values>
             <value>laser</value>
             <value>inkjet</value>
@@ -2586,25 +2586,25 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
-        <field name="status" type="Enum" sql="status" default_value="implementation" is_null_allowed="false">
+        <field name="name" xsi:type="AttributeString" sql="name" default_value="" is_null_allowed="false"/>
+        <field name="status" xsi:type="AttributeEnum" sql="status" default_value="implementation" is_null_allowed="false">
           <values>
             <value>production</value>
             <value>implementation</value>
             <value>obsolete</value>
           </values>
         </field>
-        <field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
-        <field name="owner_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
-        <field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
-        <field name="type" type="String" sql="type" default_value="" is_null_allowed="true"/>
-        <field name="parent_id" type="HierarchicalKey" sql="parent_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
+        <field name="org_id" xsi:type="AttributeExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
+        <field name="owner_name" xsi:type="AttributeExternalField" extkey_attcode="org_id" target_attcode="name"/>
+        <field name="description" xsi:type="AttributeText" sql="description" default_value="" is_null_allowed="true"/>
+        <field name="type" xsi:type="AttributeString" sql="type" default_value="" is_null_allowed="true"/>
+        <field name="parent_id" xsi:type="AttributeHierarchicalKey" sql="parent_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="org_id"/>
           </dependencies>
         </field>
-        <field name="parent_name" type="ExternalField" extkey_attcode="parent_id" target_attcode="name"/>
-        <field name="ci_list" type="LinkedSetIndirect" linked_class="lnkGroupToCI" ext_key_to_me="group_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
+        <field name="parent_name" xsi:type="AttributeExternalField" extkey_attcode="parent_id" target_attcode="name"/>
+        <field name="ci_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkGroupToCI" ext_key_to_me="group_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -2654,12 +2654,12 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="group_id" type="ExternalKey" target_class="Group" jointype="" sql="group_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
-        <field name="group_name" type="ExternalField" extkey_attcode="group_id" target_attcode="name"/>
-        <field name="ci_id" type="ExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
-        <field name="ci_name" type="ExternalField" extkey_attcode="ci_id" target_attcode="name"/>
-        <field name="ci_status" type="ExternalField" extkey_attcode="ci_id" target_attcode="status"/>
-        <field name="reason" type="String" sql="reason" default_value="" is_null_allowed="true"/>
+        <field name="group_id" xsi:type="AttributeExternalKey" target_class="Group" jointype="" sql="group_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
+        <field name="group_name" xsi:type="AttributeExternalField" extkey_attcode="group_id" target_attcode="name"/>
+        <field name="ci_id" xsi:type="AttributeExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
+        <field name="ci_name" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="name"/>
+        <field name="ci_status" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="status"/>
+        <field name="reason" xsi:type="AttributeString" sql="reason" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -2705,13 +2705,13 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="ci_id" type="ExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="ci_name" type="ExternalField" extkey_attcode="ci_id" target_attcode="name"/>
-        <field name="ci_status" type="ExternalField" extkey_attcode="ci_id" target_attcode="status"/>
-        <field name="document_id" type="ExternalKey" target_class="Document" jointype="" sql="document_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="document_name" type="ExternalField" extkey_attcode="document_id" target_attcode="name"/>
-        <field name="document_type" type="ExternalField" extkey_attcode="document_id" target_attcode="type"/>
-        <field name="document_status" type="ExternalField" extkey_attcode="document_id" target_attcode="status"/>
+        <field name="ci_id" xsi:type="AttributeExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="ci_name" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="name"/>
+        <field name="ci_status" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="status"/>
+        <field name="document_id" xsi:type="AttributeExternalKey" target_class="Document" jointype="" sql="document_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="document_name" xsi:type="AttributeExternalField" extkey_attcode="document_id" target_attcode="name"/>
+        <field name="document_type" xsi:type="AttributeExternalField" extkey_attcode="document_id" target_attcode="type"/>
+        <field name="document_status" xsi:type="AttributeExternalField" extkey_attcode="document_id" target_attcode="status"/>
       </fields>
       <methods/>
       <presentation>
@@ -2758,13 +2758,13 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="ci_id" type="ExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="ci_name" type="ExternalField" extkey_attcode="ci_id" target_attcode="name"/>
-        <field name="ci_status" type="ExternalField" extkey_attcode="ci_id" target_attcode="status"/>
-        <field name="contact_id" type="ExternalKey" target_class="Contact" jointype="" sql="contact_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="contact_name" type="ExternalField" extkey_attcode="contact_id" target_attcode="name"/>
-        <field name="contact_email" type="ExternalField" extkey_attcode="contact_id" target_attcode="email"/>
-        <field name="role" type="String" sql="role" default_value="" is_null_allowed="true"/>
+        <field name="ci_id" xsi:type="AttributeExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="ci_name" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="name"/>
+        <field name="ci_status" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="status"/>
+        <field name="contact_id" xsi:type="AttributeExternalKey" target_class="Contact" jointype="" sql="contact_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="contact_name" xsi:type="AttributeExternalField" extkey_attcode="contact_id" target_attcode="name"/>
+        <field name="contact_email" xsi:type="AttributeExternalField" extkey_attcode="contact_id" target_attcode="email"/>
+        <field name="role" xsi:type="AttributeString" sql="role" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -2812,12 +2812,12 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="solution_id" type="ExternalKey" target_class="ApplicationSolution" jointype="" sql="solution_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="solution_name" type="ExternalField" extkey_attcode="solution_id" target_attcode="name"/>
-        <field name="ci_id" type="ExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="ci_name" type="ExternalField" extkey_attcode="ci_id" target_attcode="name"/>
-        <field name="ci_status" type="ExternalField" extkey_attcode="ci_id" target_attcode="status"/>
-        <field name="utility" type="String" sql="utility" default_value="" is_null_allowed="true"/>
+        <field name="solution_id" xsi:type="AttributeExternalKey" target_class="ApplicationSolution" jointype="" sql="solution_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="solution_name" xsi:type="AttributeExternalField" extkey_attcode="solution_id" target_attcode="name"/>
+        <field name="ci_id" xsi:type="AttributeExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="ci_name" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="name"/>
+        <field name="ci_status" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="status"/>
+        <field name="utility" xsi:type="AttributeString" sql="utility" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -2863,11 +2863,11 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="solution_id" type="ExternalKey" target_class="ApplicationSolution" jointype="" sql="solution_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="solution_name" type="ExternalField" extkey_attcode="solution_id" target_attcode="name"/>
-        <field name="process_id" type="ExternalKey" target_class="BusinessProcess" jointype="" sql="process_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="process_name" type="ExternalField" extkey_attcode="process_id" target_attcode="name"/>
-        <field name="reason" type="String" sql="reason" default_value="" is_null_allowed="true"/>
+        <field name="solution_id" xsi:type="AttributeExternalKey" target_class="ApplicationSolution" jointype="" sql="solution_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="solution_name" xsi:type="AttributeExternalField" extkey_attcode="solution_id" target_attcode="name"/>
+        <field name="process_id" xsi:type="AttributeExternalKey" target_class="BusinessProcess" jointype="" sql="process_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="process_name" xsi:type="AttributeExternalField" extkey_attcode="process_id" target_attcode="name"/>
+        <field name="reason" xsi:type="AttributeString" sql="reason" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -2896,137 +2896,137 @@
     </class>
   </classes>
   <menus>
-    <menu id="DataAdministration" type="MenuGroup">
+    <menu id="DataAdministration" xsi:type="MenuGroup">
+      <rank value="70"/>
       <enable_class value="Organization"/>
       <enable_action value="UR_ACTION_MODIFY"/>
       <enable_permission value="UR_ALLOWED_YES"/>
       <enable_stimulus value=""/>
-      <rank value="70"/>
     </menu>
-    <menu id="Audit" type="WebPageMenuNode">
-      <url value="$pages/audit.php"/>
-      <parent value="DataAdministration"/>
+    <menu id="Audit" xsi:type="WebPageMenuNode">
       <rank value="33"/>
-    </menu>
-    <menu id="Catalogs" type="TemplateMenuNode">
-      <template_file value=""/>
       <parent value="DataAdministration"/>
+      <url value="$pages/audit.php"/>
+    </menu>
+    <menu id="Catalogs" xsi:type="TemplateMenuNode">
       <rank value="50"/>
+      <parent value="DataAdministration"/>
+      <template_file value=""/>
     </menu>
-    <menu id="Organization" type="OQLMenuNode">
+    <menu id="Organization" xsi:type="OQLMenuNode">
+      <rank value="10"/>
+      <parent value="Catalogs"/>
       <oql value="SELECT Organization"/>
       <do_search value="1"/>
-      <parent value="Catalogs"/>
-      <rank value="10"/>
     </menu>
-    <menu id="Application" type="OQLMenuNode">
+    <menu id="Application" xsi:type="OQLMenuNode">
+      <rank value="20"/>
+      <parent value="Catalogs"/>
       <oql value="SELECT Application"/>
       <do_search value=""/>
-      <parent value="Catalogs"/>
-      <rank value="20"/>
     </menu>
-    <menu id="DBServer" type="OQLMenuNode">
+    <menu id="DBServer" xsi:type="OQLMenuNode">
+      <rank value="40"/>
+      <parent value="Catalogs"/>
       <oql value="SELECT DBServer"/>
       <do_search value=""/>
-      <parent value="Catalogs"/>
-      <rank value="40"/>
     </menu>
-    <menu id="ConfigManagement" type="MenuGroup">
+    <menu id="ConfigManagement" xsi:type="MenuGroup">
       <rank value="20"/>
     </menu>
-    <menu id="ConfigManagementOverview" type="TemplateMenuNode">
-      <template_file value="overview.html"/>
-      <parent value="ConfigManagement"/>
+    <menu id="ConfigManagementOverview" xsi:type="TemplateMenuNode">
       <rank value="0"/>
-    </menu>
-    <menu id="Contact" type="TemplateMenuNode">
-      <template_file value="contacts_menu.html"/>
       <parent value="ConfigManagement"/>
-      <rank value="1"/>
+      <template_file value="overview.html"/>
     </menu>
-    <menu id="NewContact" type="NewObjectMenuNode">
-      <class value="Contact"/>
-      <parent value="Contact"/>
+    <menu id="Contact" xsi:type="TemplateMenuNode">
       <rank value="1"/>
+      <parent value="ConfigManagement"/>
+      <template_file value="contacts_menu.html"/>
     </menu>
-    <menu id="SearchContacts" type="SearchMenuNode">
-      <class value="Contact"/>
+    <menu id="NewContact" xsi:type="NewObjectMenuNode">
+      <rank value="1"/>
       <parent value="Contact"/>
+      <class value="Contact"/>
+    </menu>
+    <menu id="SearchContacts" xsi:type="SearchMenuNode">
       <rank value="2"/>
+      <parent value="Contact"/>
+      <class value="Contact"/>
     </menu>
-    <menu id="Document" type="OQLMenuNode">
+    <menu id="Document" xsi:type="OQLMenuNode">
+      <rank value="2"/>
+      <parent value="ConfigManagement"/>
       <oql value="SELECT Document"/>
       <do_search value="1"/>
-      <parent value="ConfigManagement"/>
-      <rank value="2"/>
     </menu>
-    <menu id="Location" type="OQLMenuNode">
+    <menu id="Location" xsi:type="OQLMenuNode">
+      <rank value="3"/>
+      <parent value="ConfigManagement"/>
       <oql value="SELECT Location"/>
       <do_search value="1"/>
-      <parent value="ConfigManagement"/>
-      <rank value="3"/>
     </menu>
-    <menu id="Group" type="OQLMenuNode">
+    <menu id="Group" xsi:type="OQLMenuNode">
+      <rank value="4"/>
+      <parent value="ConfigManagement"/>
       <oql value="SELECT Group"/>
       <do_search value="1"/>
-      <parent value="ConfigManagement"/>
-      <rank value="4"/>
     </menu>
-    <menu id="ConfigManagementCI" type="TemplateMenuNode">
-      <template_file value="cis_menu.html"/>
-      <parent value="ConfigManagement"/>
+    <menu id="ConfigManagementCI" xsi:type="TemplateMenuNode">
       <rank value="5"/>
+      <parent value="ConfigManagement"/>
+      <template_file value="cis_menu.html"/>
     </menu>
-    <menu id="NewCI" type="NewObjectMenuNode">
-      <class value="FunctionalCI"/>
-      <parent value="ConfigManagementCI"/>
+    <menu id="NewCI" xsi:type="NewObjectMenuNode">
       <rank value="0"/>
-    </menu>
-    <menu id="SearchCIs" type="SearchMenuNode">
-      <class value="FunctionalCI"/>
       <parent value="ConfigManagementCI"/>
+      <class value="FunctionalCI"/>
+    </menu>
+    <menu id="SearchCIs" xsi:type="SearchMenuNode">
       <rank value="1"/>
+      <parent value="ConfigManagementCI"/>
+      <class value="FunctionalCI"/>
     </menu>
-    <menu id="ConfigManagement:Shortcuts" type="TemplateMenuNode">
-      <template_file value=""/>
-      <parent value="ConfigManagement"/>
+    <menu id="ConfigManagement:Shortcuts" xsi:type="TemplateMenuNode">
       <rank value="6"/>
+      <parent value="ConfigManagement"/>
+      <template_file value=""/>
     </menu>
-    <menu id="Server" type="OQLMenuNode">
+    <menu id="Server" xsi:type="OQLMenuNode">
+      <rank value="1"/>
+      <parent value="ConfigManagement:Shortcuts"/>
       <oql value="SELECT Server"/>
       <do_search value=""/>
-      <parent value="ConfigManagement:Shortcuts"/>
-      <rank value="1"/>
     </menu>
-    <menu id="NetworkDevice" type="OQLMenuNode">
+    <menu id="NetworkDevice" xsi:type="OQLMenuNode">
+      <rank value="2"/>
+      <parent value="ConfigManagement:Shortcuts"/>
       <oql value="SELECT NetworkDevice"/>
       <do_search value=""/>
-      <parent value="ConfigManagement:Shortcuts"/>
-      <rank value="2"/>
     </menu>
-    <menu id="Printer" type="OQLMenuNode">
+    <menu id="Printer" xsi:type="OQLMenuNode">
+      <rank value="3"/>
+      <parent value="ConfigManagement:Shortcuts"/>
       <oql value="SELECT Printer"/>
       <do_search value=""/>
-      <parent value="ConfigManagement:Shortcuts"/>
-      <rank value="3"/>
     </menu>
-    <menu id="PC" type="OQLMenuNode">
+    <menu id="PC" xsi:type="OQLMenuNode">
+      <rank value="4"/>
+      <parent value="ConfigManagement:Shortcuts"/>
       <oql value="SELECT PC"/>
       <do_search value=""/>
-      <parent value="ConfigManagement:Shortcuts"/>
-      <rank value="4"/>
     </menu>
-    <menu id="BusinessProcess" type="OQLMenuNode">
+    <menu id="BusinessProcess" xsi:type="OQLMenuNode">
+      <rank value="5"/>
+      <parent value="ConfigManagement:Shortcuts"/>
       <oql value="SELECT BusinessProcess"/>
       <do_search value=""/>
-      <parent value="ConfigManagement:Shortcuts"/>
-      <rank value="5"/>
     </menu>
-    <menu id="ApplicationSolution" type="OQLMenuNode">
+    <menu id="ApplicationSolution" xsi:type="OQLMenuNode">
+      <rank value="6"/>
+      <parent value="ConfigManagement:Shortcuts"/>
       <oql value="SELECT ApplicationSolution"/>
       <do_search value=""/>
-      <parent value="ConfigManagement:Shortcuts"/>
-      <rank value="6"/>
     </menu>
   </menus>
 </itop_design>

+ 28 - 28
datamodel/itop-incident-mgmt-1.0.0/datamodel.itop-incident-mgmt.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<itop_design>
+<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <classes>
     <class name="Incident" category="bizmodel,searchable,incidentmgmt" parent="ResponseTicket" abstract="false" key_type="autoincrement" db_table="ticket_incident" db_key_field="id" db_final_class_field="">
       <properties>
@@ -676,11 +676,11 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="ticket_id" type="ExternalKey" target_class="Ticket" jointype="" sql="ticket_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="ticket_ref" type="ExternalField" extkey_attcode="ticket_id" target_attcode="ref"/>
-        <field name="incident_id" type="ExternalKey" target_class="Incident" jointype="" sql="incident_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="incident_ref" type="ExternalField" extkey_attcode="incident_id" target_attcode="ref"/>
-        <field name="reason" type="String" sql="reason" default_value="" is_null_allowed="true"/>
+        <field name="ticket_id" xsi:type="AttributeExternalKey" target_class="Ticket" jointype="" sql="ticket_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="ticket_ref" xsi:type="AttributeExternalField" extkey_attcode="ticket_id" target_attcode="ref"/>
+        <field name="incident_id" xsi:type="AttributeExternalKey" target_class="Incident" jointype="" sql="incident_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="incident_ref" xsi:type="AttributeExternalField" extkey_attcode="incident_id" target_attcode="ref"/>
+        <field name="reason" xsi:type="AttributeString" sql="reason" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -708,49 +708,49 @@
     </class>
   </classes>
   <menus>
-    <menu id="IncidentManagement" type="MenuGroup">
+    <menu id="IncidentManagement" xsi:type="MenuGroup">
       <rank value="40"/>
     </menu>
-    <menu id="Incident:Overview" type="TemplateMenuNode">
-      <template_file value="overview.html"/>
-      <parent value="IncidentManagement"/>
+    <menu id="Incident:Overview" xsi:type="TemplateMenuNode">
       <rank value="0"/>
-    </menu>
-    <menu id="NewIncident" type="NewObjectMenuNode">
-      <class value="Incident"/>
       <parent value="IncidentManagement"/>
-      <rank value="1"/>
+      <template_file value="overview.html"/>
     </menu>
-    <menu id="SearchIncidents" type="SearchMenuNode">
-      <class value="Incident"/>
+    <menu id="NewIncident" xsi:type="NewObjectMenuNode">
+      <rank value="1"/>
       <parent value="IncidentManagement"/>
-      <rank value="2"/>
+      <class value="Incident"/>
     </menu>
-    <menu id="Incident:Shortcuts" type="TemplateMenuNode">
-      <template_file value=""/>
+    <menu id="SearchIncidents" xsi:type="SearchMenuNode">
+      <rank value="2"/>
       <parent value="IncidentManagement"/>
+      <class value="Incident"/>
+    </menu>
+    <menu id="Incident:Shortcuts" xsi:type="TemplateMenuNode">
       <rank value="3"/>
+      <parent value="IncidentManagement"/>
+      <template_file value=""/>
     </menu>
-    <menu id="Incident:MyIncidents" type="OQLMenuNode">
+    <menu id="Incident:MyIncidents" xsi:type="OQLMenuNode">
+      <rank value="1"/>
+      <parent value="Incident:Shortcuts"/>
       <oql value="SELECT Incident WHERE agent_id = :current_contact_id AND status NOT IN (&quot;closed&quot;, &quot;resolved&quot;)"/>
       <do_search value=""/>
       <auto_reload value="fast"/>
-      <parent value="Incident:Shortcuts"/>
-      <rank value="1"/>
     </menu>
-    <menu id="Incident:EscalatedIncidents" type="OQLMenuNode">
+    <menu id="Incident:EscalatedIncidents" xsi:type="OQLMenuNode">
+      <rank value="2"/>
+      <parent value="Incident:Shortcuts"/>
       <oql value="SELECT Incident WHERE status IN (&quot;escalated_tto&quot;, &quot;escalated_ttr&quot;)"/>
       <do_search value=""/>
       <auto_reload value="fast"/>
-      <parent value="Incident:Shortcuts"/>
-      <rank value="2"/>
     </menu>
-    <menu id="Incident:OpenIncidents" type="OQLMenuNode">
+    <menu id="Incident:OpenIncidents" xsi:type="OQLMenuNode">
+      <rank value="3"/>
+      <parent value="Incident:Shortcuts"/>
       <oql value="SELECT Incident WHERE status IN (&quot;new&quot;, &quot;assigned&quot;, &quot;escalated_tto&quot;, &quot;escalated_ttr&quot;, &quot;resolved&quot;)"/>
       <do_search value=""/>
       <auto_reload value="standard"/>
-      <parent value="Incident:Shortcuts"/>
-      <rank value="3"/>
     </menu>
   </menus>
 </itop_design>

+ 41 - 41
datamodel/itop-knownerror-mgmt-1.0.0/datamodel.itop-knownerror-mgmt.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<itop_design>
+<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <classes>
     <class name="KnownError" category="bizmodel,searchable,knownerrormgmt" parent="cmdbAbstractObject" abstract="false" key_type="autoincrement" db_table="known_error" db_key_field="id" db_final_class_field="">
       <properties>
@@ -21,17 +21,17 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
-        <field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="cust_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
-        <field name="cust_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
-        <field name="problem_id" type="ExternalKey" target_class="Problem" jointype="" sql="problem_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
-        <field name="problem_ref" type="ExternalField" extkey_attcode="problem_id" target_attcode="ref"/>
-        <field name="symptom" type="Text" sql="symptom" default_value="" is_null_allowed="false"/>
-        <field name="root_cause" type="Text" sql="rootcause" default_value="" is_null_allowed="true"/>
-        <field name="workaround" type="Text" sql="workaround" default_value="" is_null_allowed="true"/>
-        <field name="solution" type="Text" sql="solution" default_value="" is_null_allowed="true"/>
-        <field name="error_code" type="String" sql="error_code" default_value="" is_null_allowed="true"/>
-        <field name="domain" type="Enum" sql="domain" default_value="Application" is_null_allowed="false">
+        <field name="name" xsi:type="AttributeString" sql="name" default_value="" is_null_allowed="false"/>
+        <field name="org_id" xsi:type="AttributeExternalKey" target_class="Organization" jointype="" sql="cust_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
+        <field name="cust_name" xsi:type="AttributeExternalField" extkey_attcode="org_id" target_attcode="name"/>
+        <field name="problem_id" xsi:type="AttributeExternalKey" target_class="Problem" jointype="" sql="problem_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
+        <field name="problem_ref" xsi:type="AttributeExternalField" extkey_attcode="problem_id" target_attcode="ref"/>
+        <field name="symptom" xsi:type="AttributeText" sql="symptom" default_value="" is_null_allowed="false"/>
+        <field name="root_cause" xsi:type="AttributeText" sql="rootcause" default_value="" is_null_allowed="true"/>
+        <field name="workaround" xsi:type="AttributeText" sql="workaround" default_value="" is_null_allowed="true"/>
+        <field name="solution" xsi:type="AttributeText" sql="solution" default_value="" is_null_allowed="true"/>
+        <field name="error_code" xsi:type="AttributeString" sql="error_code" default_value="" is_null_allowed="true"/>
+        <field name="domain" xsi:type="AttributeEnum" sql="domain" default_value="Application" is_null_allowed="false">
           <values>
             <value>Network</value>
             <value>Server</value>
@@ -39,11 +39,11 @@
             <value>Desktop</value>
           </values>
         </field>
-        <field name="vendor" type="String" sql="vendor" default_value="" is_null_allowed="true"/>
-        <field name="model" type="String" sql="model" default_value="" is_null_allowed="true"/>
-        <field name="version" type="String" sql="version" default_value="" is_null_allowed="true"/>
-        <field name="ci_list" type="LinkedSetIndirect" linked_class="lnkInfraError" ext_key_to_me="error_id" ext_key_to_remote="infra_id" count_min="0" count_max="0"/>
-        <field name="document_list" type="LinkedSetIndirect" linked_class="lnkDocumentError" ext_key_to_me="error_id" ext_key_to_remote="doc_id" count_min="0" count_max="0"/>
+        <field name="vendor" xsi:type="AttributeString" sql="vendor" default_value="" is_null_allowed="true"/>
+        <field name="model" xsi:type="AttributeString" sql="model" default_value="" is_null_allowed="true"/>
+        <field name="version" xsi:type="AttributeString" sql="version" default_value="" is_null_allowed="true"/>
+        <field name="ci_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkInfraError" ext_key_to_me="error_id" ext_key_to_remote="infra_id" count_min="0" count_max="0"/>
+        <field name="document_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkDocumentError" ext_key_to_me="error_id" ext_key_to_remote="doc_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -103,12 +103,12 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="infra_id" type="ExternalKey" target_class="FunctionalCI" jointype="" sql="infra_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="infra_name" type="ExternalField" extkey_attcode="infra_id" target_attcode="name"/>
-        <field name="infra_status" type="ExternalField" extkey_attcode="infra_id" target_attcode="status"/>
-        <field name="error_id" type="ExternalKey" target_class="KnownError" jointype="" sql="error_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="error_name" type="ExternalField" extkey_attcode="error_id" target_attcode="name"/>
-        <field name="reason" type="String" sql="dummy" default_value="" is_null_allowed="true"/>
+        <field name="infra_id" xsi:type="AttributeExternalKey" target_class="FunctionalCI" jointype="" sql="infra_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="infra_name" xsi:type="AttributeExternalField" extkey_attcode="infra_id" target_attcode="name"/>
+        <field name="infra_status" xsi:type="AttributeExternalField" extkey_attcode="infra_id" target_attcode="status"/>
+        <field name="error_id" xsi:type="AttributeExternalKey" target_class="KnownError" jointype="" sql="error_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="error_name" xsi:type="AttributeExternalField" extkey_attcode="error_id" target_attcode="name"/>
+        <field name="reason" xsi:type="AttributeString" sql="dummy" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -155,11 +155,11 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="doc_id" type="ExternalKey" target_class="Document" jointype="" sql="doc_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="doc_name" type="ExternalField" extkey_attcode="doc_id" target_attcode="name"/>
-        <field name="error_id" type="ExternalKey" target_class="KnownError" jointype="" sql="error_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="error_name" type="ExternalField" extkey_attcode="error_id" target_attcode="name"/>
-        <field name="link_type" type="String" sql="link_type" default_value="" is_null_allowed="true"/>
+        <field name="doc_id" xsi:type="AttributeExternalKey" target_class="Document" jointype="" sql="doc_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="doc_name" xsi:type="AttributeExternalField" extkey_attcode="doc_id" target_attcode="name"/>
+        <field name="error_id" xsi:type="AttributeExternalKey" target_class="KnownError" jointype="" sql="error_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="error_name" xsi:type="AttributeExternalField" extkey_attcode="error_id" target_attcode="name"/>
+        <field name="link_type" xsi:type="AttributeString" sql="link_type" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -181,29 +181,29 @@
     </class>
   </classes>
   <menus>
-    <menu id="ProblemManagement" type="MenuGroup">
+    <menu id="ProblemManagement" xsi:type="MenuGroup">
       <rank value="42"/>
     </menu>
-    <menu id="NewError" type="NewObjectMenuNode">
-      <class value="KnownError"/>
-      <parent value="ProblemManagement"/>
+    <menu id="NewError" xsi:type="NewObjectMenuNode">
       <rank value="3"/>
-    </menu>
-    <menu id="SearchError" type="SearchMenuNode">
-      <class value="KnownError"/>
       <parent value="ProblemManagement"/>
-      <rank value="4"/>
+      <class value="KnownError"/>
     </menu>
-    <menu id="Problem:Shortcuts" type="TemplateMenuNode">
-      <template_file value=""/>
+    <menu id="SearchError" xsi:type="SearchMenuNode">
+      <rank value="4"/>
       <parent value="ProblemManagement"/>
+      <class value="KnownError"/>
+    </menu>
+    <menu id="Problem:Shortcuts" xsi:type="TemplateMenuNode">
       <rank value="5"/>
+      <parent value="ProblemManagement"/>
+      <template_file value=""/>
     </menu>
-    <menu id="Problem:KnownErrors" type="OQLMenuNode">
+    <menu id="Problem:KnownErrors" xsi:type="OQLMenuNode">
+      <rank value="3"/>
+      <parent value="Problem:Shortcuts"/>
       <oql value="SELECT KnownError"/>
       <do_search value="1"/>
-      <parent value="Problem:Shortcuts"/>
-      <rank value="3"/>
     </menu>
   </menus>
 </itop_design>

+ 39 - 39
datamodel/itop-problem-mgmt-1.0.0/datamodel.itop-problem-mgmt.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<itop_design>
+<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <classes>
     <class name="Problem" category="bizmodel,searchable,problemmgmt" parent="Ticket" abstract="false" key_type="autoincrement" db_table="ticket_problem" db_key_field="id" db_final_class_field="">
       <properties>
@@ -30,7 +30,7 @@
         </order>
       </properties>
       <fields>
-        <field name="status" type="Enum" sql="status" default_value="new" is_null_allowed="false">
+        <field name="status" xsi:type="AttributeEnum" sql="status" default_value="new" is_null_allowed="false">
           <values>
             <value>new</value>
             <value>assigned</value>
@@ -38,63 +38,63 @@
             <value>closed</value>
           </values>
         </field>
-        <field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="org_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
-        <field name="service_id" type="ExternalKey" target_class="Service" jointype="" filter="SELECT Service AS s JOIN SLA AS sla ON sla.service_id=s.id JOIN lnkContractToSLA AS ln ON ln.sla_id=sla.id JOIN CustomerContract AS cc ON ln.contract_id=cc.id WHERE cc.org_id =:this-&gt;org_id" sql="service_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
+        <field name="org_id" xsi:type="AttributeExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="org_name" xsi:type="AttributeExternalField" extkey_attcode="org_id" target_attcode="name"/>
+        <field name="service_id" xsi:type="AttributeExternalKey" target_class="Service" jointype="" filter="SELECT Service AS s JOIN SLA AS sla ON sla.service_id=s.id JOIN lnkContractToSLA AS ln ON ln.sla_id=sla.id JOIN CustomerContract AS cc ON ln.contract_id=cc.id WHERE cc.org_id =:this-&gt;org_id" sql="service_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="org_id"/>
           </dependencies>
         </field>
-        <field name="service_name" type="ExternalField" extkey_attcode="service_id" target_attcode="name"/>
-        <field name="servicesubcategory_id" type="ExternalKey" target_class="ServiceSubcategory" jointype="" filter="SELECT ServiceSubcategory WHERE service_id = :this-&gt;service_id" sql="servicesubcategory_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
+        <field name="service_name" xsi:type="AttributeExternalField" extkey_attcode="service_id" target_attcode="name"/>
+        <field name="servicesubcategory_id" xsi:type="AttributeExternalKey" target_class="ServiceSubcategory" jointype="" filter="SELECT ServiceSubcategory WHERE service_id = :this-&gt;service_id" sql="servicesubcategory_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="service_id"/>
           </dependencies>
         </field>
-        <field name="servicesubcategory_name" type="ExternalField" extkey_attcode="servicesubcategory_id" target_attcode="name"/>
-        <field name="product" type="String" sql="product" default_value="" is_null_allowed="true"/>
-        <field name="impact" type="Enum" sql="impact" default_value="1" is_null_allowed="false">
+        <field name="servicesubcategory_name" xsi:type="AttributeExternalField" extkey_attcode="servicesubcategory_id" target_attcode="name"/>
+        <field name="product" xsi:type="AttributeString" sql="product" default_value="" is_null_allowed="true"/>
+        <field name="impact" xsi:type="AttributeEnum" sql="impact" default_value="1" is_null_allowed="false">
           <values>
             <value>1</value>
             <value>2</value>
             <value>3</value>
           </values>
         </field>
-        <field name="urgency" type="Enum" sql="urgency" default_value="1" is_null_allowed="false">
+        <field name="urgency" xsi:type="AttributeEnum" sql="urgency" default_value="1" is_null_allowed="false">
           <values>
             <value>1</value>
             <value>2</value>
             <value>3</value>
           </values>
         </field>
-        <field name="priority" type="Enum" sql="priority" default_value="1" is_null_allowed="false">
+        <field name="priority" xsi:type="AttributeEnum" sql="priority" default_value="1" is_null_allowed="false">
           <values>
             <value>1</value>
             <value>2</value>
             <value>3</value>
           </values>
         </field>
-        <field name="workgroup_id" type="ExternalKey" target_class="Team" jointype="" filter="SELECT Team AS t JOIN CustomerContract AS cc ON cc.support_team_id=t.id JOIN lnkContractToSLA AS ln ON ln.contract_id=cc.id JOIN SLA AS sla ON ln.sla_id=sla.id WHERE sla.service_id = :this-&gt;service_id AND cc.org_id = :this-&gt;org_id" sql="workgroup_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
+        <field name="workgroup_id" xsi:type="AttributeExternalKey" target_class="Team" jointype="" filter="SELECT Team AS t JOIN CustomerContract AS cc ON cc.support_team_id=t.id JOIN lnkContractToSLA AS ln ON ln.contract_id=cc.id JOIN SLA AS sla ON ln.sla_id=sla.id WHERE sla.service_id = :this-&gt;service_id AND cc.org_id = :this-&gt;org_id" sql="workgroup_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="org_id"/>
             <attribute name="service_id"/>
           </dependencies>
         </field>
-        <field name="workgroup_name" type="ExternalField" extkey_attcode="workgroup_id" target_attcode="name"/>
-        <field name="agent_id" type="ExternalKey" target_class="Person" jointype="" filter="SELECT Person AS p JOIN lnkTeamToContact AS l ON l.contact_id=p.id JOIN Team AS t ON l.team_id=t.id WHERE t.id = :this-&gt;workgroup_id" sql="agent_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
+        <field name="workgroup_name" xsi:type="AttributeExternalField" extkey_attcode="workgroup_id" target_attcode="name"/>
+        <field name="agent_id" xsi:type="AttributeExternalKey" target_class="Person" jointype="" filter="SELECT Person AS p JOIN lnkTeamToContact AS l ON l.contact_id=p.id JOIN Team AS t ON l.team_id=t.id WHERE t.id = :this-&gt;workgroup_id" sql="agent_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="workgroup_id"/>
           </dependencies>
         </field>
-        <field name="agent_name" type="ExternalField" extkey_attcode="agent_id" target_attcode="name"/>
-        <field name="agent_email" type="ExternalField" extkey_attcode="agent_id" target_attcode="email"/>
-        <field name="related_change_id" type="ExternalKey" target_class="Change" jointype="" sql="related_change_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
-        <field name="related_change_ref" type="ExternalField" extkey_attcode="related_change_id" target_attcode="ref"/>
-        <field name="close_date" type="DateTime" sql="close_date" default_value="" is_null_allowed="true"/>
-        <field name="last_update" type="DateTime" sql="last_update" default_value="" is_null_allowed="true"/>
-        <field name="assignment_date" type="DateTime" sql="assignment_date" default_value="" is_null_allowed="true"/>
-        <field name="resolution_date" type="DateTime" sql="resolution_date" default_value="" is_null_allowed="true"/>
-        <field name="knownerrors_list" type="LinkedSet" linked_class="KnownError" ext_key_to_me="problem_id" count_min="0" count_max="0"/>
+        <field name="agent_name" xsi:type="AttributeExternalField" extkey_attcode="agent_id" target_attcode="name"/>
+        <field name="agent_email" xsi:type="AttributeExternalField" extkey_attcode="agent_id" target_attcode="email"/>
+        <field name="related_change_id" xsi:type="AttributeExternalKey" target_class="Change" jointype="" sql="related_change_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
+        <field name="related_change_ref" xsi:type="AttributeExternalField" extkey_attcode="related_change_id" target_attcode="ref"/>
+        <field name="close_date" xsi:type="AttributeDateTime" sql="close_date" default_value="" is_null_allowed="true"/>
+        <field name="last_update" xsi:type="AttributeDateTime" sql="last_update" default_value="" is_null_allowed="true"/>
+        <field name="assignment_date" xsi:type="AttributeDateTime" sql="assignment_date" default_value="" is_null_allowed="true"/>
+        <field name="resolution_date" xsi:type="AttributeDateTime" sql="resolution_date" default_value="" is_null_allowed="true"/>
+        <field name="knownerrors_list" xsi:type="AttributeLinkedSet" linked_class="KnownError" ext_key_to_me="problem_id" count_min="0" count_max="0"/>
       </fields>
       <lifecycle attribute="status">
         <stimuli>
@@ -433,32 +433,32 @@
     </class>
   </classes>
   <menus>
-    <menu id="Problem:Overview" type="TemplateMenuNode">
-      <template_file value="overview.html"/>
-      <parent value="ProblemManagement"/>
+    <menu id="Problem:Overview" xsi:type="TemplateMenuNode">
       <rank value="0"/>
-    </menu>
-    <menu id="NewProblem" type="NewObjectMenuNode">
-      <class value="Problem"/>
       <parent value="ProblemManagement"/>
-      <rank value="1"/>
+      <template_file value="overview.html"/>
     </menu>
-    <menu id="SearchProblems" type="SearchMenuNode">
-      <class value="Problem"/>
+    <menu id="NewProblem" xsi:type="NewObjectMenuNode">
+      <rank value="1"/>
       <parent value="ProblemManagement"/>
+      <class value="Problem"/>
+    </menu>
+    <menu id="SearchProblems" xsi:type="SearchMenuNode">
       <rank value="2"/>
+      <parent value="ProblemManagement"/>
+      <class value="Problem"/>
     </menu>
-    <menu id="Problem:MyProblems" type="OQLMenuNode">
+    <menu id="Problem:MyProblems" xsi:type="OQLMenuNode">
+      <rank value="1"/>
+      <parent value="Problem:Shortcuts"/>
       <oql value="SELECT Problem WHERE agent_id = :current_contact_id AND status NOT IN (&quot;closed&quot;, &quot;resolved&quot;)"/>
       <do_search value=""/>
-      <parent value="Problem:Shortcuts"/>
-      <rank value="1"/>
     </menu>
-    <menu id="Problem:OpenProblems" type="OQLMenuNode">
+    <menu id="Problem:OpenProblems" xsi:type="OQLMenuNode">
+      <rank value="2"/>
+      <parent value="Problem:Shortcuts"/>
       <oql value="SELECT Problem WHERE status IN (&quot;new&quot;, &quot;assigned&quot;, &quot;resolved&quot;)"/>
       <do_search value=""/>
-      <parent value="Problem:Shortcuts"/>
-      <rank value="2"/>
     </menu>
   </menus>
 </itop_design>

+ 25 - 25
datamodel/itop-request-mgmt-1.0.0/datamodel.itop-request-mgmt.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<itop_design>
+<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <classes>
     <class name="UserRequest" category="bizmodel,searchable,requestmgmt" parent="ResponseTicket" abstract="false" key_type="autoincrement" db_table="ticket_request" db_key_field="id" db_final_class_field="">
       <properties>
@@ -30,14 +30,14 @@
         </order>
       </properties>
       <fields>
-        <field name="request_type" type="Enum" sql="request_type" default_value="service request" is_null_allowed="false">
+        <field name="request_type" xsi:type="AttributeEnum" sql="request_type" default_value="service request" is_null_allowed="false">
           <values>
             <value>service request</value>
             <value>issue</value>
             <value>information</value>
           </values>
         </field>
-        <field name="freeze_reason" type="String" sql="freeze_reason" default_value="" is_null_allowed="true"/>
+        <field name="freeze_reason" xsi:type="AttributeString" sql="freeze_reason" default_value="" is_null_allowed="true"/>
       </fields>
       <lifecycle attribute="status">
         <stimuli>
@@ -670,49 +670,49 @@
     </class>
   </classes>
   <menus>
-    <menu id="RequestManagement" type="MenuGroup">
+    <menu id="RequestManagement" xsi:type="MenuGroup">
       <rank value="30"/>
     </menu>
-    <menu id="UserRequest:Overview" type="TemplateMenuNode">
-      <template_file value="overview.html"/>
-      <parent value="RequestManagement"/>
+    <menu id="UserRequest:Overview" xsi:type="TemplateMenuNode">
       <rank value="0"/>
-    </menu>
-    <menu id="NewUserRequest" type="NewObjectMenuNode">
-      <class value="UserRequest"/>
       <parent value="RequestManagement"/>
-      <rank value="1"/>
+      <template_file value="overview.html"/>
     </menu>
-    <menu id="SearchUserRequests" type="SearchMenuNode">
-      <class value="UserRequest"/>
+    <menu id="NewUserRequest" xsi:type="NewObjectMenuNode">
+      <rank value="1"/>
       <parent value="RequestManagement"/>
-      <rank value="2"/>
+      <class value="UserRequest"/>
     </menu>
-    <menu id="UserRequest:Shortcuts" type="TemplateMenuNode">
-      <template_file value=""/>
+    <menu id="SearchUserRequests" xsi:type="SearchMenuNode">
+      <rank value="2"/>
       <parent value="RequestManagement"/>
+      <class value="UserRequest"/>
+    </menu>
+    <menu id="UserRequest:Shortcuts" xsi:type="TemplateMenuNode">
       <rank value="3"/>
+      <parent value="RequestManagement"/>
+      <template_file value=""/>
     </menu>
-    <menu id="UserRequest:MyRequests" type="OQLMenuNode">
+    <menu id="UserRequest:MyRequests" xsi:type="OQLMenuNode">
+      <rank value="1"/>
+      <parent value="UserRequest:Shortcuts"/>
       <oql value="SELECT UserRequest WHERE agent_id = :current_contact_id AND status NOT IN (&quot;closed&quot;,&quot;resolved&quot;)"/>
       <do_search value=""/>
       <auto_reload value="fast"/>
-      <parent value="UserRequest:Shortcuts"/>
-      <rank value="1"/>
     </menu>
-    <menu id="UserRequest:EscalatedRequests" type="OQLMenuNode">
+    <menu id="UserRequest:EscalatedRequests" xsi:type="OQLMenuNode">
+      <rank value="2"/>
+      <parent value="UserRequest:Shortcuts"/>
       <oql value="SELECT UserRequest WHERE status IN (&quot;escalated_tto&quot;, &quot;escalated_ttr&quot;)"/>
       <do_search value=""/>
       <auto_reload value="fast"/>
-      <parent value="UserRequest:Shortcuts"/>
-      <rank value="2"/>
     </menu>
-    <menu id="UserRequest:OpenRequests" type="OQLMenuNode">
+    <menu id="UserRequest:OpenRequests" xsi:type="OQLMenuNode">
+      <rank value="3"/>
+      <parent value="UserRequest:Shortcuts"/>
       <oql value="SELECT UserRequest WHERE status IN (&quot;new&quot;, &quot;assigned&quot;, &quot;escalated_tto&quot;, &quot;escalated_ttr&quot;, &quot;frozen&quot;, &quot;resolved&quot;)"/>
       <do_search value=""/>
       <auto_reload value="fast"/>
-      <parent value="UserRequest:Shortcuts"/>
-      <rank value="3"/>
     </menu>
   </menus>
 </itop_design>

+ 126 - 126
datamodel/itop-service-mgmt-1.0.0/datamodel.itop-service-mgmt.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<itop_design>
+<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <classes>
     <class name="Contract" category="bizmodel,searchable,servicemgmt" parent="cmdbAbstractObject" abstract="true" key_type="autoincrement" db_table="contract" db_key_field="id" db_final_class_field="finalclass">
       <properties>
@@ -25,22 +25,22 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
-        <field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
-        <field name="start_date" type="DateTime" sql="start_date" default_value="" is_null_allowed="true"/>
-        <field name="end_date" type="DateTime" sql="end_date" default_value="" is_null_allowed="true"/>
-        <field name="cost" type="Integer" sql="cost" default_value="" is_null_allowed="true"/>
-        <field name="cost_currency" type="Enum" sql="cost_currency" default_value="euros" is_null_allowed="true">
+        <field name="name" xsi:type="AttributeString" sql="name" default_value="" is_null_allowed="false"/>
+        <field name="description" xsi:type="AttributeText" sql="description" default_value="" is_null_allowed="true"/>
+        <field name="start_date" xsi:type="AttributeDateTime" sql="start_date" default_value="" is_null_allowed="true"/>
+        <field name="end_date" xsi:type="AttributeDateTime" sql="end_date" default_value="" is_null_allowed="true"/>
+        <field name="cost" xsi:type="AttributeInteger" sql="cost" default_value="" is_null_allowed="true"/>
+        <field name="cost_currency" xsi:type="AttributeEnum" sql="cost_currency" default_value="euros" is_null_allowed="true">
           <values>
             <value>dollars</value>
             <value>euros</value>
           </values>
         </field>
-        <field name="cost_unit" type="String" sql="cost_unit" default_value="" is_null_allowed="true"/>
-        <field name="billing_frequency" type="String" sql="billing_frequency" default_value="" is_null_allowed="true"/>
-        <field name="contact_list" type="LinkedSetIndirect" linked_class="lnkContractToContact" ext_key_to_me="contract_id" ext_key_to_remote="contact_id" count_min="0" count_max="0"/>
-        <field name="document_list" type="LinkedSetIndirect" linked_class="lnkContractToDoc" ext_key_to_me="contract_id" ext_key_to_remote="document_id" count_min="0" count_max="0"/>
-        <field name="ci_list" type="LinkedSetIndirect" linked_class="lnkContractToCI" ext_key_to_me="contract_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
+        <field name="cost_unit" xsi:type="AttributeString" sql="cost_unit" default_value="" is_null_allowed="true"/>
+        <field name="billing_frequency" xsi:type="AttributeString" sql="billing_frequency" default_value="" is_null_allowed="true"/>
+        <field name="contact_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkContractToContact" ext_key_to_me="contract_id" ext_key_to_remote="contact_id" count_min="0" count_max="0"/>
+        <field name="document_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkContractToDoc" ext_key_to_me="contract_id" ext_key_to_remote="document_id" count_min="0" count_max="0"/>
+        <field name="ci_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkContractToCI" ext_key_to_me="contract_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -101,10 +101,10 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="provider_id" type="ExternalKey" target_class="Organization" jointype="" sql="provider_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="provider_name" type="ExternalField" extkey_attcode="provider_id" target_attcode="name"/>
-        <field name="sla" type="String" sql="sla" default_value="" is_null_allowed="true"/>
-        <field name="coverage" type="String" sql="coverage" default_value="" is_null_allowed="true"/>
+        <field name="provider_id" xsi:type="AttributeExternalKey" target_class="Organization" jointype="" sql="provider_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="provider_name" xsi:type="AttributeExternalField" extkey_attcode="provider_id" target_attcode="name"/>
+        <field name="sla" xsi:type="AttributeString" sql="sla" default_value="" is_null_allowed="true"/>
+        <field name="coverage" xsi:type="AttributeString" sql="coverage" default_value="" is_null_allowed="true"/>
       </fields>
       <methods>
         <method name="MapContextParam" static="true" access="public" type="Overload-iDisplay"><comment><![CDATA[/**
@@ -186,18 +186,18 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="org_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
-        <field name="provider_id" type="ExternalKey" target_class="Organization" jointype="" sql="provider_id" is_null_allowed="true" on_target_delete="DEL_AUTO"/>
-        <field name="provider_name" type="ExternalField" extkey_attcode="provider_id" target_attcode="name"/>
-        <field name="support_team_id" type="ExternalKey" target_class="Team" jointype="" filter="SELECT Team WHERE Team.org_id = :this-&gt;provider_id" sql="support_team_id" is_null_allowed="false" on_target_delete="DEL_AUTO">
+        <field name="org_id" xsi:type="AttributeExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="org_name" xsi:type="AttributeExternalField" extkey_attcode="org_id" target_attcode="name"/>
+        <field name="provider_id" xsi:type="AttributeExternalKey" target_class="Organization" jointype="" sql="provider_id" is_null_allowed="true" on_target_delete="DEL_AUTO"/>
+        <field name="provider_name" xsi:type="AttributeExternalField" extkey_attcode="provider_id" target_attcode="name"/>
+        <field name="support_team_id" xsi:type="AttributeExternalKey" target_class="Team" jointype="" filter="SELECT Team WHERE Team.org_id = :this-&gt;provider_id" sql="support_team_id" is_null_allowed="false" on_target_delete="DEL_AUTO">
           <dependencies>
             <attribute name="provider_id"/>
           </dependencies>
         </field>
-        <field name="support_team_name" type="ExternalField" extkey_attcode="support_team_id" target_attcode="name"/>
-        <field name="sla_list" type="LinkedSetIndirect" linked_class="lnkContractToSLA" ext_key_to_me="contract_id" ext_key_to_remote="sla_id" count_min="0" count_max="0"/>
-        <field name="provider_list" type="LinkedSetIndirect" linked_class="lnkCustomerContractToProviderContract" ext_key_to_me="customer_contract_id" ext_key_to_remote="provider_contract_id" count_min="0" count_max="0"/>
+        <field name="support_team_name" xsi:type="AttributeExternalField" extkey_attcode="support_team_id" target_attcode="name"/>
+        <field name="sla_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkContractToSLA" ext_key_to_me="contract_id" ext_key_to_remote="sla_id" count_min="0" count_max="0"/>
+        <field name="provider_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkCustomerContractToProviderContract" ext_key_to_me="customer_contract_id" ext_key_to_remote="provider_contract_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -264,12 +264,12 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="customer_contract_id" type="ExternalKey" target_class="CustomerContract" jointype="" sql="customer_contract_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="customer_contract_name" type="ExternalField" extkey_attcode="customer_contract_id" target_attcode="name"/>
-        <field name="provider_contract_id" type="ExternalKey" target_class="ProviderContract" jointype="" sql="provider_contract_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="provider_contract_name" type="ExternalField" extkey_attcode="provider_contract_id" target_attcode="name"/>
-        <field name="provider_sla" type="ExternalField" extkey_attcode="provider_contract_id" target_attcode="sla"/>
-        <field name="provider_coverage" type="ExternalField" extkey_attcode="provider_contract_id" target_attcode="coverage"/>
+        <field name="customer_contract_id" xsi:type="AttributeExternalKey" target_class="CustomerContract" jointype="" sql="customer_contract_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="customer_contract_name" xsi:type="AttributeExternalField" extkey_attcode="customer_contract_id" target_attcode="name"/>
+        <field name="provider_contract_id" xsi:type="AttributeExternalKey" target_class="ProviderContract" jointype="" sql="provider_contract_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="provider_contract_name" xsi:type="AttributeExternalField" extkey_attcode="provider_contract_id" target_attcode="name"/>
+        <field name="provider_sla" xsi:type="AttributeExternalField" extkey_attcode="provider_contract_id" target_attcode="sla"/>
+        <field name="provider_coverage" xsi:type="AttributeExternalField" extkey_attcode="provider_contract_id" target_attcode="coverage"/>
       </fields>
       <methods/>
       <presentation>
@@ -314,12 +314,12 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="contract_id" type="ExternalKey" target_class="CustomerContract" jointype="" sql="contract_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="contract_name" type="ExternalField" extkey_attcode="contract_id" target_attcode="name"/>
-        <field name="sla_id" type="ExternalKey" target_class="SLA" jointype="" sql="sla_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="sla_name" type="ExternalField" extkey_attcode="sla_id" target_attcode="name"/>
-        <field name="sla_service_name" type="ExternalField" extkey_attcode="sla_id" target_attcode="service_name"/>
-        <field name="coverage" type="String" sql="coverage" default_value="" is_null_allowed="true"/>
+        <field name="contract_id" xsi:type="AttributeExternalKey" target_class="CustomerContract" jointype="" sql="contract_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="contract_name" xsi:type="AttributeExternalField" extkey_attcode="contract_id" target_attcode="name"/>
+        <field name="sla_id" xsi:type="AttributeExternalKey" target_class="SLA" jointype="" sql="sla_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="sla_name" xsi:type="AttributeExternalField" extkey_attcode="sla_id" target_attcode="name"/>
+        <field name="sla_service_name" xsi:type="AttributeExternalField" extkey_attcode="sla_id" target_attcode="service_name"/>
+        <field name="coverage" xsi:type="AttributeString" sql="coverage" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -365,12 +365,12 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="contract_id" type="ExternalKey" target_class="Contract" jointype="" sql="contract_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="contract_name" type="ExternalField" extkey_attcode="contract_id" target_attcode="name"/>
-        <field name="document_id" type="ExternalKey" target_class="Document" jointype="" sql="document_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="document_name" type="ExternalField" extkey_attcode="document_id" target_attcode="name"/>
-        <field name="document_type" type="ExternalField" extkey_attcode="document_id" target_attcode="type"/>
-        <field name="document_status" type="ExternalField" extkey_attcode="document_id" target_attcode="status"/>
+        <field name="contract_id" xsi:type="AttributeExternalKey" target_class="Contract" jointype="" sql="contract_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="contract_name" xsi:type="AttributeExternalField" extkey_attcode="contract_id" target_attcode="name"/>
+        <field name="document_id" xsi:type="AttributeExternalKey" target_class="Document" jointype="" sql="document_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="document_name" xsi:type="AttributeExternalField" extkey_attcode="document_id" target_attcode="name"/>
+        <field name="document_type" xsi:type="AttributeExternalField" extkey_attcode="document_id" target_attcode="type"/>
+        <field name="document_status" xsi:type="AttributeExternalField" extkey_attcode="document_id" target_attcode="status"/>
       </fields>
       <methods/>
       <presentation>
@@ -417,12 +417,12 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="contract_id" type="ExternalKey" target_class="Contract" jointype="" sql="contract_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="contract_name" type="ExternalField" extkey_attcode="contract_id" target_attcode="name"/>
-        <field name="contact_id" type="ExternalKey" target_class="Contact" jointype="" sql="contact_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="contact_name" type="ExternalField" extkey_attcode="contact_id" target_attcode="name"/>
-        <field name="contact_email" type="ExternalField" extkey_attcode="contact_id" target_attcode="email"/>
-        <field name="role" type="String" sql="role" default_value="" is_null_allowed="true"/>
+        <field name="contract_id" xsi:type="AttributeExternalKey" target_class="Contract" jointype="" sql="contract_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="contract_name" xsi:type="AttributeExternalField" extkey_attcode="contract_id" target_attcode="name"/>
+        <field name="contact_id" xsi:type="AttributeExternalKey" target_class="Contact" jointype="" sql="contact_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="contact_name" xsi:type="AttributeExternalField" extkey_attcode="contact_id" target_attcode="name"/>
+        <field name="contact_email" xsi:type="AttributeExternalField" extkey_attcode="contact_id" target_attcode="email"/>
+        <field name="role" xsi:type="AttributeString" sql="role" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -469,11 +469,11 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="contract_id" type="ExternalKey" target_class="Contract" jointype="" sql="contract_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="contract_name" type="ExternalField" extkey_attcode="contract_id" target_attcode="name"/>
-        <field name="ci_id" type="ExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="ci_name" type="ExternalField" extkey_attcode="ci_id" target_attcode="name"/>
-        <field name="ci_status" type="ExternalField" extkey_attcode="ci_id" target_attcode="status"/>
+        <field name="contract_id" xsi:type="AttributeExternalKey" target_class="Contract" jointype="" sql="contract_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="contract_name" xsi:type="AttributeExternalField" extkey_attcode="contract_id" target_attcode="name"/>
+        <field name="ci_id" xsi:type="AttributeExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="ci_name" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="name"/>
+        <field name="ci_status" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="status"/>
       </fields>
       <methods/>
       <presentation>
@@ -517,27 +517,27 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="provider_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
-        <field name="name" type="String" sql="name" default_value="" is_null_allowed="true"/>
-        <field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
-        <field name="type" type="Enum" sql="type" default_value="IncidentManagement" is_null_allowed="true">
+        <field name="org_id" xsi:type="AttributeExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="provider_name" xsi:type="AttributeExternalField" extkey_attcode="org_id" target_attcode="name"/>
+        <field name="name" xsi:type="AttributeString" sql="name" default_value="" is_null_allowed="true"/>
+        <field name="description" xsi:type="AttributeText" sql="description" default_value="" is_null_allowed="true"/>
+        <field name="type" xsi:type="AttributeEnum" sql="type" default_value="IncidentManagement" is_null_allowed="true">
           <values>
             <value>RequestManagement</value>
             <value>IncidentManagement</value>
           </values>
         </field>
-        <field name="status" type="Enum" sql="status" default_value="design" is_null_allowed="true">
+        <field name="status" xsi:type="AttributeEnum" sql="status" default_value="design" is_null_allowed="true">
           <values>
             <value>design</value>
             <value>production</value>
             <value>obsolete</value>
           </values>
         </field>
-        <field name="subcategory_list" type="LinkedSet" linked_class="ServiceSubcategory" ext_key_to_me="service_id" count_min="0" count_max="0"/>
-        <field name="sla_list" type="LinkedSet" linked_class="SLA" ext_key_to_me="service_id" count_min="0" count_max="0"/>
-        <field name="document_list" type="LinkedSetIndirect" linked_class="lnkServiceToDoc" ext_key_to_me="service_id" ext_key_to_remote="document_id" count_min="0" count_max="0"/>
-        <field name="contact_list" type="LinkedSetIndirect" linked_class="lnkServiceToContact" ext_key_to_me="service_id" ext_key_to_remote="contact_id" count_min="0" count_max="0"/>
+        <field name="subcategory_list" xsi:type="AttributeLinkedSet" linked_class="ServiceSubcategory" ext_key_to_me="service_id" count_min="0" count_max="0"/>
+        <field name="sla_list" xsi:type="AttributeLinkedSet" linked_class="SLA" ext_key_to_me="service_id" count_min="0" count_max="0"/>
+        <field name="document_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkServiceToDoc" ext_key_to_me="service_id" ext_key_to_remote="document_id" count_min="0" count_max="0"/>
+        <field name="contact_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkServiceToContact" ext_key_to_me="service_id" ext_key_to_remote="contact_id" count_min="0" count_max="0"/>
       </fields>
       <methods>
         <method name="DisplayBareRelations" static="false" access="public" type="Overload-cmdbAbstractObject"><![CDATA[	function DisplayBareRelations(WebPage $oPage, $bEditMode = false)
@@ -603,12 +603,12 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="name" type="String" sql="name" default_value="" is_null_allowed="true"/>
-        <field name="description" type="String" sql="description" default_value="" is_null_allowed="true"/>
-        <field name="service_id" type="ExternalKey" target_class="Service" jointype="" sql="service_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
-        <field name="service_name" type="ExternalField" extkey_attcode="service_id" target_attcode="name"/>
-        <field name="org_id" type="ExternalField" extkey_attcode="service_id" target_attcode="org_id"/>
-        <field name="provider_name" type="ExternalField" extkey_attcode="service_id" target_attcode="provider_name"/>
+        <field name="name" xsi:type="AttributeString" sql="name" default_value="" is_null_allowed="true"/>
+        <field name="description" xsi:type="AttributeString" sql="description" default_value="" is_null_allowed="true"/>
+        <field name="service_id" xsi:type="AttributeExternalKey" target_class="Service" jointype="" sql="service_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
+        <field name="service_name" xsi:type="AttributeExternalField" extkey_attcode="service_id" target_attcode="name"/>
+        <field name="org_id" xsi:type="AttributeExternalField" extkey_attcode="service_id" target_attcode="org_id"/>
+        <field name="provider_name" xsi:type="AttributeExternalField" extkey_attcode="service_id" target_attcode="provider_name"/>
       </fields>
       <methods/>
       <presentation>
@@ -653,10 +653,10 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="name" type="String" sql="name" default_value="" is_null_allowed="true"/>
-        <field name="service_id" type="ExternalKey" target_class="Service" jointype="" sql="service_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
-        <field name="service_name" type="ExternalField" extkey_attcode="service_id" target_attcode="name"/>
-        <field name="slt_list" type="LinkedSetIndirect" linked_class="lnkSLTToSLA" ext_key_to_me="sla_id" ext_key_to_remote="slt_id" count_min="0" count_max="0"/>
+        <field name="name" xsi:type="AttributeString" sql="name" default_value="" is_null_allowed="true"/>
+        <field name="service_id" xsi:type="AttributeExternalKey" target_class="Service" jointype="" sql="service_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
+        <field name="service_name" xsi:type="AttributeExternalField" extkey_attcode="service_id" target_attcode="name"/>
+        <field name="slt_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkSLTToSLA" ext_key_to_me="sla_id" ext_key_to_remote="slt_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -696,29 +696,29 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="name" type="String" sql="name" default_value="" is_null_allowed="true"/>
-        <field name="metric" type="Enum" sql="metric" default_value="TTO" is_null_allowed="false">
+        <field name="name" xsi:type="AttributeString" sql="name" default_value="" is_null_allowed="true"/>
+        <field name="metric" xsi:type="AttributeEnum" sql="metric" default_value="TTO" is_null_allowed="false">
           <values>
             <value>TTO</value>
             <value>TTR</value>
           </values>
         </field>
-        <field name="ticket_priority" type="Enum" sql="ticket_priority" default_value="1" is_null_allowed="true">
+        <field name="ticket_priority" xsi:type="AttributeEnum" sql="ticket_priority" default_value="1" is_null_allowed="true">
           <values>
             <value>1</value>
             <value>2</value>
             <value>3</value>
           </values>
         </field>
-        <field name="value" type="Integer" sql="value" default_value="" is_null_allowed="true"/>
-        <field name="value_unit" type="Enum" sql="value_unit" default_value="hours" is_null_allowed="true">
+        <field name="value" xsi:type="AttributeInteger" sql="value" default_value="" is_null_allowed="true"/>
+        <field name="value_unit" xsi:type="AttributeEnum" sql="value_unit" default_value="hours" is_null_allowed="true">
           <values>
             <value>days</value>
             <value>hours</value>
             <value>minutes</value>
           </values>
         </field>
-        <field name="sla_list" type="LinkedSetIndirect" linked_class="lnkSLTToSLA" ext_key_to_me="slt_id" ext_key_to_remote="sla_id" count_min="0" count_max="0"/>
+        <field name="sla_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkSLTToSLA" ext_key_to_me="slt_id" ext_key_to_remote="sla_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -768,14 +768,14 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="sla_id" type="ExternalKey" target_class="SLA" jointype="" sql="sla_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="sla_name" type="ExternalField" extkey_attcode="sla_id" target_attcode="name"/>
-        <field name="slt_id" type="ExternalKey" target_class="SLT" jointype="" sql="slt_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="slt_name" type="ExternalField" extkey_attcode="slt_id" target_attcode="name"/>
-        <field name="slt_metric" type="ExternalField" extkey_attcode="slt_id" target_attcode="metric"/>
-        <field name="slt_ticket_priority" type="ExternalField" extkey_attcode="slt_id" target_attcode="ticket_priority"/>
-        <field name="slt_value" type="ExternalField" extkey_attcode="slt_id" target_attcode="value"/>
-        <field name="slt_value_unit" type="ExternalField" extkey_attcode="slt_id" target_attcode="value_unit"/>
+        <field name="sla_id" xsi:type="AttributeExternalKey" target_class="SLA" jointype="" sql="sla_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="sla_name" xsi:type="AttributeExternalField" extkey_attcode="sla_id" target_attcode="name"/>
+        <field name="slt_id" xsi:type="AttributeExternalKey" target_class="SLT" jointype="" sql="slt_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="slt_name" xsi:type="AttributeExternalField" extkey_attcode="slt_id" target_attcode="name"/>
+        <field name="slt_metric" xsi:type="AttributeExternalField" extkey_attcode="slt_id" target_attcode="metric"/>
+        <field name="slt_ticket_priority" xsi:type="AttributeExternalField" extkey_attcode="slt_id" target_attcode="ticket_priority"/>
+        <field name="slt_value" xsi:type="AttributeExternalField" extkey_attcode="slt_id" target_attcode="value"/>
+        <field name="slt_value_unit" xsi:type="AttributeExternalField" extkey_attcode="slt_id" target_attcode="value_unit"/>
       </fields>
       <methods/>
       <presentation>
@@ -828,12 +828,12 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="service_id" type="ExternalKey" target_class="Service" jointype="" sql="service_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="service_name" type="ExternalField" extkey_attcode="service_id" target_attcode="name"/>
-        <field name="document_id" type="ExternalKey" target_class="Document" jointype="" sql="document_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="document_name" type="ExternalField" extkey_attcode="document_id" target_attcode="name"/>
-        <field name="document_type" type="ExternalField" extkey_attcode="document_id" target_attcode="type"/>
-        <field name="document_status" type="ExternalField" extkey_attcode="document_id" target_attcode="status"/>
+        <field name="service_id" xsi:type="AttributeExternalKey" target_class="Service" jointype="" sql="service_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="service_name" xsi:type="AttributeExternalField" extkey_attcode="service_id" target_attcode="name"/>
+        <field name="document_id" xsi:type="AttributeExternalKey" target_class="Document" jointype="" sql="document_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="document_name" xsi:type="AttributeExternalField" extkey_attcode="document_id" target_attcode="name"/>
+        <field name="document_type" xsi:type="AttributeExternalField" extkey_attcode="document_id" target_attcode="type"/>
+        <field name="document_status" xsi:type="AttributeExternalField" extkey_attcode="document_id" target_attcode="status"/>
       </fields>
       <methods/>
       <presentation>
@@ -880,12 +880,12 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="service_id" type="ExternalKey" target_class="Service" jointype="" sql="service_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="service_name" type="ExternalField" extkey_attcode="service_id" target_attcode="name"/>
-        <field name="contact_id" type="ExternalKey" target_class="Contact" jointype="" sql="contact_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="contact_name" type="ExternalField" extkey_attcode="contact_id" target_attcode="name"/>
-        <field name="contact_email" type="ExternalField" extkey_attcode="contact_id" target_attcode="email"/>
-        <field name="role" type="String" sql="role" default_value="" is_null_allowed="true"/>
+        <field name="service_id" xsi:type="AttributeExternalKey" target_class="Service" jointype="" sql="service_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="service_name" xsi:type="AttributeExternalField" extkey_attcode="service_id" target_attcode="name"/>
+        <field name="contact_id" xsi:type="AttributeExternalKey" target_class="Contact" jointype="" sql="contact_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="contact_name" xsi:type="AttributeExternalField" extkey_attcode="contact_id" target_attcode="name"/>
+        <field name="contact_email" xsi:type="AttributeExternalField" extkey_attcode="contact_id" target_attcode="email"/>
+        <field name="role" xsi:type="AttributeString" sql="role" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -932,11 +932,11 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="service_id" type="ExternalKey" target_class="Service" jointype="" sql="service_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="service_name" type="ExternalField" extkey_attcode="service_id" target_attcode="name"/>
-        <field name="ci_id" type="ExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="ci_name" type="ExternalField" extkey_attcode="ci_id" target_attcode="name"/>
-        <field name="ci_status" type="ExternalField" extkey_attcode="ci_id" target_attcode="status"/>
+        <field name="service_id" xsi:type="AttributeExternalKey" target_class="Service" jointype="" sql="service_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="service_name" xsi:type="AttributeExternalField" extkey_attcode="service_id" target_attcode="name"/>
+        <field name="ci_id" xsi:type="AttributeExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="ci_name" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="name"/>
+        <field name="ci_status" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="status"/>
       </fields>
       <methods/>
       <presentation>
@@ -965,49 +965,49 @@
     </class>
   </classes>
   <menus>
-    <menu id="ServiceManagement" type="MenuGroup">
+    <menu id="ServiceManagement" xsi:type="MenuGroup">
       <rank value="60"/>
     </menu>
-    <menu id="Service:Overview" type="TemplateMenuNode">
-      <template_file value="overview.html"/>
-      <parent value="ServiceManagement"/>
+    <menu id="Service:Overview" xsi:type="TemplateMenuNode">
       <rank value="0"/>
+      <parent value="ServiceManagement"/>
+      <template_file value="overview.html"/>
     </menu>
-    <menu id="ProviderContract" type="OQLMenuNode">
+    <menu id="ProviderContract" xsi:type="OQLMenuNode">
+      <rank value="1"/>
+      <parent value="ServiceManagement"/>
       <oql value="SELECT ProviderContract"/>
       <do_search value="1"/>
-      <parent value="ServiceManagement"/>
-      <rank value="1"/>
     </menu>
-    <menu id="CustomerContract" type="OQLMenuNode">
+    <menu id="CustomerContract" xsi:type="OQLMenuNode">
+      <rank value="2"/>
+      <parent value="ServiceManagement"/>
       <oql value="SELECT CustomerContract"/>
       <do_search value="1"/>
-      <parent value="ServiceManagement"/>
-      <rank value="2"/>
     </menu>
-    <menu id="Service" type="OQLMenuNode">
+    <menu id="Service" xsi:type="OQLMenuNode">
+      <rank value="3"/>
+      <parent value="ServiceManagement"/>
       <oql value="SELECT Service"/>
       <do_search value="1"/>
-      <parent value="ServiceManagement"/>
-      <rank value="3"/>
     </menu>
-    <menu id="ServiceSubcategory" type="OQLMenuNode">
+    <menu id="ServiceSubcategory" xsi:type="OQLMenuNode">
+      <rank value="4"/>
+      <parent value="ServiceManagement"/>
       <oql value="SELECT ServiceSubcategory"/>
       <do_search value="1"/>
-      <parent value="ServiceManagement"/>
-      <rank value="4"/>
     </menu>
-    <menu id="SLA" type="OQLMenuNode">
+    <menu id="SLA" xsi:type="OQLMenuNode">
+      <rank value="5"/>
+      <parent value="ServiceManagement"/>
       <oql value="SELECT SLA"/>
       <do_search value="1"/>
-      <parent value="ServiceManagement"/>
-      <rank value="5"/>
     </menu>
-    <menu id="SLT" type="OQLMenuNode">
+    <menu id="SLT" xsi:type="OQLMenuNode">
+      <rank value="6"/>
+      <parent value="ServiceManagement"/>
       <oql value="SELECT SLT"/>
       <do_search value="1"/>
-      <parent value="ServiceManagement"/>
-      <rank value="6"/>
     </menu>
   </menus>
 </itop_design>

+ 59 - 59
datamodel/itop-tickets-1.0.0/datamodel.itop-tickets.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<itop_design>
+<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <classes>
     <class name="Ticket" category="bizmodel,searchable" parent="cmdbAbstractObject" abstract="true" key_type="autoincrement" db_table="ticket" db_key_field="id" db_final_class_field="finalclass">
       <properties>
@@ -25,15 +25,15 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="ref" type="String" sql="ref" default_value="" is_null_allowed="true"/>
-        <field name="title" type="String" sql="title" default_value="" is_null_allowed="false"/>
-        <field name="description" type="Text" sql="description" default_value="" is_null_allowed="false"/>
-        <field name="ticket_log" type="CaseLog" sql="ticket_log" default_value="" is_null_allowed="true"/>
-        <field name="start_date" type="DateTime" sql="start_date" default_value="" is_null_allowed="false"/>
-        <field name="document_list" type="LinkedSetIndirect" linked_class="lnkTicketToDoc" ext_key_to_me="ticket_id" ext_key_to_remote="document_id" count_min="0" count_max="0"/>
-        <field name="ci_list" type="LinkedSetIndirect" linked_class="lnkTicketToCI" ext_key_to_me="ticket_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
-        <field name="contact_list" type="LinkedSetIndirect" linked_class="lnkTicketToContact" ext_key_to_me="ticket_id" ext_key_to_remote="contact_id" count_min="0" count_max="0"/>
-        <field name="incident_list" type="LinkedSetIndirect" linked_class="lnkTicketToIncident" ext_key_to_me="ticket_id" ext_key_to_remote="incident_id" count_min="0" count_max="0"/>
+        <field name="ref" xsi:type="AttributeString" sql="ref" default_value="" is_null_allowed="true"/>
+        <field name="title" xsi:type="AttributeString" sql="title" default_value="" is_null_allowed="false"/>
+        <field name="description" xsi:type="AttributeText" sql="description" default_value="" is_null_allowed="false"/>
+        <field name="ticket_log" xsi:type="AttributeCaseLog" sql="ticket_log" default_value="" is_null_allowed="true"/>
+        <field name="start_date" xsi:type="AttributeDateTime" sql="start_date" default_value="" is_null_allowed="false"/>
+        <field name="document_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkTicketToDoc" ext_key_to_me="ticket_id" ext_key_to_remote="document_id" count_min="0" count_max="0"/>
+        <field name="ci_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkTicketToCI" ext_key_to_me="ticket_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
+        <field name="contact_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkTicketToContact" ext_key_to_me="ticket_id" ext_key_to_remote="contact_id" count_min="0" count_max="0"/>
+        <field name="incident_list" xsi:type="AttributeLinkedSetIndirect" linked_class="lnkTicketToIncident" ext_key_to_me="ticket_id" ext_key_to_remote="incident_id" count_min="0" count_max="0"/>
       </fields>
       <methods/>
       <presentation>
@@ -84,7 +84,7 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="status" type="Enum" sql="status" default_value="new" is_null_allowed="false">
+        <field name="status" xsi:type="AttributeEnum" sql="status" default_value="new" is_null_allowed="false">
           <values>
             <value>new</value>
             <value>assigned</value>
@@ -95,74 +95,74 @@
             <value>closed</value>
           </values>
         </field>
-        <field name="caller_id" type="ExternalKey" target_class="Person" jointype="" filter="SELECT Person WHERE org_id = :this-&gt;org_id" sql="caller_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
+        <field name="caller_id" xsi:type="AttributeExternalKey" target_class="Person" jointype="" filter="SELECT Person WHERE org_id = :this-&gt;org_id" sql="caller_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="org_id"/>
           </dependencies>
         </field>
-        <field name="caller_email" type="ExternalField" extkey_attcode="caller_id" target_attcode="email"/>
-        <field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="org_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
-        <field name="service_id" type="ExternalKey" target_class="Service" jointype="" filter="SELECT Service AS s JOIN SLA AS sla ON sla.service_id=s.id JOIN lnkContractToSLA AS ln ON ln.sla_id=sla.id JOIN CustomerContract AS cc ON ln.contract_id=cc.id WHERE cc.org_id =:this-&gt;org_id" sql="service_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
+        <field name="caller_email" xsi:type="AttributeExternalField" extkey_attcode="caller_id" target_attcode="email"/>
+        <field name="org_id" xsi:type="AttributeExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="org_name" xsi:type="AttributeExternalField" extkey_attcode="org_id" target_attcode="name"/>
+        <field name="service_id" xsi:type="AttributeExternalKey" target_class="Service" jointype="" filter="SELECT Service AS s JOIN SLA AS sla ON sla.service_id=s.id JOIN lnkContractToSLA AS ln ON ln.sla_id=sla.id JOIN CustomerContract AS cc ON ln.contract_id=cc.id WHERE cc.org_id =:this-&gt;org_id" sql="service_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="org_id"/>
           </dependencies>
         </field>
-        <field name="service_name" type="ExternalField" extkey_attcode="service_id" target_attcode="name"/>
-        <field name="servicesubcategory_id" type="ExternalKey" target_class="ServiceSubcategory" jointype="" filter="SELECT ServiceSubcategory WHERE service_id = :this-&gt;service_id" sql="servicesubcategory_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
+        <field name="service_name" xsi:type="AttributeExternalField" extkey_attcode="service_id" target_attcode="name"/>
+        <field name="servicesubcategory_id" xsi:type="AttributeExternalKey" target_class="ServiceSubcategory" jointype="" filter="SELECT ServiceSubcategory WHERE service_id = :this-&gt;service_id" sql="servicesubcategory_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="service_id"/>
           </dependencies>
         </field>
-        <field name="servicesubcategory_name" type="ExternalField" extkey_attcode="servicesubcategory_id" target_attcode="name"/>
-        <field name="product" type="String" sql="product" default_value="" is_null_allowed="true"/>
-        <field name="impact" type="Enum" sql="impact" default_value="1" is_null_allowed="false">
+        <field name="servicesubcategory_name" xsi:type="AttributeExternalField" extkey_attcode="servicesubcategory_id" target_attcode="name"/>
+        <field name="product" xsi:type="AttributeString" sql="product" default_value="" is_null_allowed="true"/>
+        <field name="impact" xsi:type="AttributeEnum" sql="impact" default_value="1" is_null_allowed="false">
           <values>
             <value>1</value>
             <value>2</value>
             <value>3</value>
           </values>
         </field>
-        <field name="urgency" type="Enum" sql="urgency" default_value="1" is_null_allowed="false">
+        <field name="urgency" xsi:type="AttributeEnum" sql="urgency" default_value="1" is_null_allowed="false">
           <values>
             <value>1</value>
             <value>2</value>
             <value>3</value>
           </values>
         </field>
-        <field name="priority" type="Enum" sql="priority" default_value="1" is_null_allowed="false">
+        <field name="priority" xsi:type="AttributeEnum" sql="priority" default_value="1" is_null_allowed="false">
           <values>
             <value>1</value>
             <value>2</value>
             <value>3</value>
           </values>
         </field>
-        <field name="workgroup_id" type="ExternalKey" target_class="Team" jointype="" filter="SELECT Team AS t JOIN CustomerContract AS cc ON cc.support_team_id=t.id JOIN lnkContractToSLA AS ln ON ln.contract_id=cc.id JOIN SLA AS sla ON ln.sla_id=sla.id WHERE sla.service_id = :this-&gt;service_id AND cc.org_id = :this-&gt;org_id" sql="workgroup_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
+        <field name="workgroup_id" xsi:type="AttributeExternalKey" target_class="Team" jointype="" filter="SELECT Team AS t JOIN CustomerContract AS cc ON cc.support_team_id=t.id JOIN lnkContractToSLA AS ln ON ln.contract_id=cc.id JOIN SLA AS sla ON ln.sla_id=sla.id WHERE sla.service_id = :this-&gt;service_id AND cc.org_id = :this-&gt;org_id" sql="workgroup_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="org_id"/>
             <attribute name="service_id"/>
           </dependencies>
         </field>
-        <field name="workgroup_name" type="ExternalField" extkey_attcode="workgroup_id" target_attcode="name"/>
-        <field name="agent_id" type="ExternalKey" target_class="Person" jointype="" filter="SELECT Person AS p JOIN lnkTeamToContact AS l ON l.contact_id=p.id JOIN Team AS t ON l.team_id=t.id WHERE t.id = :this-&gt;workgroup_id" sql="agent_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
+        <field name="workgroup_name" xsi:type="AttributeExternalField" extkey_attcode="workgroup_id" target_attcode="name"/>
+        <field name="agent_id" xsi:type="AttributeExternalKey" target_class="Person" jointype="" filter="SELECT Person AS p JOIN lnkTeamToContact AS l ON l.contact_id=p.id JOIN Team AS t ON l.team_id=t.id WHERE t.id = :this-&gt;workgroup_id" sql="agent_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
           <dependencies>
             <attribute name="workgroup_id"/>
           </dependencies>
         </field>
-        <field name="agent_name" type="ExternalField" extkey_attcode="agent_id" target_attcode="name"/>
-        <field name="agent_email" type="ExternalField" extkey_attcode="agent_id" target_attcode="email"/>
-        <field name="related_problem_id" type="ExternalKey" target_class="Problem" jointype="" sql="related_problem_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
-        <field name="related_problem_ref" type="ExternalField" extkey_attcode="related_problem_id" target_attcode="ref"/>
-        <field name="related_change_id" type="ExternalKey" target_class="Change" jointype="" sql="related_change_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
-        <field name="related_change_ref" type="ExternalField" extkey_attcode="related_change_id" target_attcode="ref"/>
-        <field name="close_date" type="DateTime" sql="close_date" default_value="" is_null_allowed="true"/>
-        <field name="last_update" type="DateTime" sql="last_update" default_value="" is_null_allowed="true"/>
-        <field name="assignment_date" type="DateTime" sql="assignment_date" default_value="" is_null_allowed="true"/>
-        <field name="resolution_date" type="DateTime" sql="resolution_date" default_value="" is_null_allowed="true"/>
-        <field name="tto_escalation_deadline" type="Deadline" sql="tto_escalation_deadline" default_value="" is_null_allowed="true"/>
-        <field name="ttr_escalation_deadline" type="Deadline" sql="ttr_escalation_deadline" default_value="" is_null_allowed="true"/>
-        <field name="closure_deadline" type="Deadline" sql="closure_deadline" default_value="" is_null_allowed="true"/>
-        <field name="resolution_code" type="Enum" sql="resolution_code" default_value="fixed" is_null_allowed="true">
+        <field name="agent_name" xsi:type="AttributeExternalField" extkey_attcode="agent_id" target_attcode="name"/>
+        <field name="agent_email" xsi:type="AttributeExternalField" extkey_attcode="agent_id" target_attcode="email"/>
+        <field name="related_problem_id" xsi:type="AttributeExternalKey" target_class="Problem" jointype="" sql="related_problem_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
+        <field name="related_problem_ref" xsi:type="AttributeExternalField" extkey_attcode="related_problem_id" target_attcode="ref"/>
+        <field name="related_change_id" xsi:type="AttributeExternalKey" target_class="Change" jointype="" sql="related_change_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
+        <field name="related_change_ref" xsi:type="AttributeExternalField" extkey_attcode="related_change_id" target_attcode="ref"/>
+        <field name="close_date" xsi:type="AttributeDateTime" sql="close_date" default_value="" is_null_allowed="true"/>
+        <field name="last_update" xsi:type="AttributeDateTime" sql="last_update" default_value="" is_null_allowed="true"/>
+        <field name="assignment_date" xsi:type="AttributeDateTime" sql="assignment_date" default_value="" is_null_allowed="true"/>
+        <field name="resolution_date" xsi:type="AttributeDateTime" sql="resolution_date" default_value="" is_null_allowed="true"/>
+        <field name="tto_escalation_deadline" xsi:type="AttributeDeadline" sql="tto_escalation_deadline" default_value="" is_null_allowed="true"/>
+        <field name="ttr_escalation_deadline" xsi:type="AttributeDeadline" sql="ttr_escalation_deadline" default_value="" is_null_allowed="true"/>
+        <field name="closure_deadline" xsi:type="AttributeDeadline" sql="closure_deadline" default_value="" is_null_allowed="true"/>
+        <field name="resolution_code" xsi:type="AttributeEnum" sql="resolution_code" default_value="fixed" is_null_allowed="true">
           <values>
             <value>fixed</value>
             <value>duplicate</value>
@@ -170,8 +170,8 @@
             <value>irrelevant</value>
           </values>
         </field>
-        <field name="solution" type="Text" sql="solution" default_value="" is_null_allowed="true"/>
-        <field name="user_satisfaction" type="Enum" sql="user_satisfaction" default_value="1" is_null_allowed="true">
+        <field name="solution" xsi:type="AttributeText" sql="solution" default_value="" is_null_allowed="true"/>
+        <field name="user_satisfaction" xsi:type="AttributeEnum" sql="user_satisfaction" default_value="1" is_null_allowed="true">
           <values>
             <value>1</value>
             <value>2</value>
@@ -179,7 +179,7 @@
             <value>4</value>
           </values>
         </field>
-        <field name="user_commment" type="Text" sql="user_commment" default_value="" is_null_allowed="true"/>
+        <field name="user_commment" xsi:type="AttributeText" sql="user_commment" default_value="" is_null_allowed="true"/>
       </fields>
       <lifecycle attribute="status">
         <stimuli>
@@ -870,10 +870,10 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="ticket_id" type="ExternalKey" target_class="Ticket" jointype="" sql="ticket_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="ticket_ref" type="ExternalField" extkey_attcode="ticket_id" target_attcode="ref"/>
-        <field name="document_id" type="ExternalKey" target_class="Document" jointype="" sql="document_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="document_name" type="ExternalField" extkey_attcode="document_id" target_attcode="name"/>
+        <field name="ticket_id" xsi:type="AttributeExternalKey" target_class="Ticket" jointype="" sql="ticket_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="ticket_ref" xsi:type="AttributeExternalField" extkey_attcode="ticket_id" target_attcode="ref"/>
+        <field name="document_id" xsi:type="AttributeExternalKey" target_class="Document" jointype="" sql="document_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="document_name" xsi:type="AttributeExternalField" extkey_attcode="document_id" target_attcode="name"/>
       </fields>
       <methods/>
       <presentation>
@@ -914,12 +914,12 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="ticket_id" type="ExternalKey" target_class="Ticket" jointype="" sql="ticket_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="ticket_ref" type="ExternalField" extkey_attcode="ticket_id" target_attcode="ref"/>
-        <field name="contact_id" type="ExternalKey" target_class="Contact" jointype="" sql="contact_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="contact_name" type="ExternalField" extkey_attcode="contact_id" target_attcode="name"/>
-        <field name="contact_email" type="ExternalField" extkey_attcode="contact_id" target_attcode="email"/>
-        <field name="role" type="String" sql="role" default_value="" is_null_allowed="true"/>
+        <field name="ticket_id" xsi:type="AttributeExternalKey" target_class="Ticket" jointype="" sql="ticket_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="ticket_ref" xsi:type="AttributeExternalField" extkey_attcode="ticket_id" target_attcode="ref"/>
+        <field name="contact_id" xsi:type="AttributeExternalKey" target_class="Contact" jointype="" sql="contact_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="contact_name" xsi:type="AttributeExternalField" extkey_attcode="contact_id" target_attcode="name"/>
+        <field name="contact_email" xsi:type="AttributeExternalField" extkey_attcode="contact_id" target_attcode="email"/>
+        <field name="role" xsi:type="AttributeString" sql="role" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>
@@ -966,12 +966,12 @@
         </reconciliation>
       </properties>
       <fields>
-        <field name="ticket_id" type="ExternalKey" target_class="Ticket" jointype="" sql="ticket_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="ticket_ref" type="ExternalField" extkey_attcode="ticket_id" target_attcode="ref"/>
-        <field name="ci_id" type="ExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
-        <field name="ci_name" type="ExternalField" extkey_attcode="ci_id" target_attcode="name"/>
-        <field name="ci_status" type="ExternalField" extkey_attcode="ci_id" target_attcode="status"/>
-        <field name="impact" type="String" sql="impact" default_value="" is_null_allowed="true"/>
+        <field name="ticket_id" xsi:type="AttributeExternalKey" target_class="Ticket" jointype="" sql="ticket_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="ticket_ref" xsi:type="AttributeExternalField" extkey_attcode="ticket_id" target_attcode="ref"/>
+        <field name="ci_id" xsi:type="AttributeExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
+        <field name="ci_name" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="name"/>
+        <field name="ci_status" xsi:type="AttributeExternalField" extkey_attcode="ci_id" target_attcode="status"/>
+        <field name="impact" xsi:type="AttributeString" sql="impact" default_value="" is_null_allowed="true"/>
       </fields>
       <methods/>
       <presentation>

+ 2 - 2
setup/compiler.class.inc.php

@@ -543,7 +543,7 @@ EOF;
 		{
 			// $oField
 			$sAttCode = $oField->getAttribute('name');
-			$sAttType = 'Attribute'.$oField->getAttribute('type');
+			$sAttType = $oField->getAttribute('xsi:type');
 	
 			$aDependencies = array();
 			$oDependencies = $this->GetOptionalElement($oField, 'dependencies');
@@ -814,7 +814,7 @@ EOF;
 	protected function CompileMenu($oMenu, $sResFile, $sModuleRelativeDir, $oP)
 	{
 		$sMenuId = $oMenu->getAttribute("id");
-		$sMenuClass = $oMenu->getAttribute("type");
+		$sMenuClass = $oMenu->getAttribute("xsi:type");
 
 		$oParent = $this->GetOptionalElement($oMenu, 'parent');
 		if ($oParent)