<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns="urn:ietf:params:xml:ns:nttdm-1.0"
 xmlns:nttdm="urn:ietf:params:xml:ns:nttdm-1.0"
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 targetNamespace="urn:ietf:params:xml:ns:nttdm-1.0"
 elementFormDefault="qualified"
 attributeFormDefault="unqualified">
 <xs:annotation>
  <xs:documentation
      >Trouble Ticket Data Model v-1.0</xs:documentation>
 </xs:annotation>

 <!--
 ===============================================================
 == NTTDM-Document class                                      ==
 ===============================================================
 -->
 <xs:element name="NTTDM-Document">
  <xs:complexType>
   <xs:sequence>
    <xs:element ref="nttdm:Ticket" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:attribute name="version" type="xs:string" fixed="1.00"/>
   <xs:attribute name="lang" type="xs:language" use="required"/>
  </xs:complexType>
 </xs:element>

 <!--
 ===============================================================
 ==  Ticket class                                             ==
 ===============================================================
 -->
 <xs:element name="Ticket">
   <xs:complexType>
    <xs:all>
     <xs:element ref="nttdm:Partner_ID"/>
     <xs:element ref="nttdm:Original_ID"/>
     <xs:element ref="nttdm:TT_ID"/>
     <xs:element ref="nttdm:TT_Title"/>
     <xs:element ref="nttdm:TT_Type"/>
     <xs:element ref="nttdm:TT_Priority" minOccurs="0"/>
     <xs:element ref="nttdm:TT_Status"/>
     <xs:element ref="nttdm:TT_Source" minOccurs="0"/>
     <xs:element ref="nttdm:TT_Open_Datetime"/>
     <xs:element ref="nttdm:TT_Close_Datetime"/>
     <xs:element ref="nttdm:TT_Short_Description"/>
     <xs:element ref="nttdm:TT_Long_Description"/>
     <xs:element ref="nttdm:Type"/>
     <xs:element ref="nttdm:TT_Impact_Assessment"/>
     <xs:element ref="nttdm:Start_Datetime"/>
     <xs:element ref="nttdm:Detect_Datetime" minOccurs="0"/>
     <xs:element ref="nttdm:Report_Datetime" minOccurs="0"/>
     <xs:element ref="nttdm:End_Datetime"/>
     <xs:element ref="nttdm:TT_Last_Update_Time"/>
     <xs:element ref="nttdm:Time_Window_Start" minOccurs="0"/>
     <xs:element ref="nttdm:Time_Window_End" minOccurs="0"/>
     <xs:element ref="nttdm:Work_Plan_Start_Datetime" minOccurs="0"/>
     <xs:element ref="nttdm:Work_Plan_End_Datetime" minOccurs="0"/>
     <xs:element ref="nttdm:Related_External_Tickets" minOccurs="0"/>
     <xs:element ref="nttdm:Additional_Data" minOccurs="0"/>
     <xs:element ref="nttdm:Related_Activity" minOccurs="0"/>
     <xs:element ref="nttdm:History"/>
     <xs:element ref="nttdm:Affected_Community" minOccurs="0"/>
     <xs:element ref="nttdm:Affected_Service" minOccurs="0"/>
     <xs:element ref="nttdm:Location"/>
     <xs:element ref="nttdm:Network_Node" minOccurs="0"/>
     <xs:element ref="nttdm:Network_Link_Circuit" minOccurs="0"/>
     <xs:element ref="nttdm:End_Line_Location_B" minOccurs="0"/>
     <xs:element ref="nttdm:Open_Engineer" minOccurs="0"/>
     <xs:element ref="nttdm:Contact_Engineers" minOccurs="0"/>
     <xs:element ref="nttdm:Close_Engineer" minOccurs="0"/>
     <xs:element ref="nttdm:Hash" minOccurs="0"/>
     <xs:element ref="nttdm:End_Line_Location_A" minOccurs="0"/>
    </xs:all>
   <xs:attribute name="lang" type="xs:language"/>
  </xs:complexType>
 </xs:element>

 <!--
 ===============================================================
 ==  Partner_ID Class                                         ==
 ===============================================================
 -->
 <xs:element name="Partner_ID" type="nttdm:string_no_underscore"/>

 <!--
 ===============================================================
 ==  Original_ID Class                                        ==
 ===============================================================
 -->
 <xs:element name="Original_ID" type="nttdm:string_no_underscore"/>

 <!--
 ===============================================================
 ==  TT_ID Class                                              ==
 ===============================================================
 -->
 <xs:element name="TT_ID" type="xs:string"/>

 <!--
 ===============================================================
 ==  TT_Title Class                                           ==
 ===============================================================
 -->
 <xs:element name="TT_Title" type="xs:string"/>

 <!--
 ===============================================================
 ==  TT_Type Class                                            ==
 ===============================================================
 -->
 <xs:element name="TT_Type" type="nttdm:eTT_Type"/>

 <!--
 ===============================================================
 ==  TT_Priority Class                                        ==
 ===============================================================
 -->
 <xs:element name="TT_Priority" type="nttdm:eTT_Priority"/>

 <!--
 ===============================================================
 ==  TT_Status Class                                          ==
 ===============================================================
 -->
 <xs:element name="TT_Status" type="nttdm:eTT_Status"/>

 <!--
 ===============================================================
 ==  TT_Source Class                                          ==
 ===============================================================
 -->
 <xs:element name="TT_Source" type="nttdm:eTT_Source"/>

 <!--
 ===============================================================
 ==  TT_Open_Datetime Class                                   ==
 ===============================================================
 -->
 <xs:element name="TT_Open_Datetime" type="xs:dateTime"/>

 <!--
 ===============================================================
 ==  TT_Close_Datetime Class                                  ==
 ===============================================================
 -->
 <xs:element name="TT_Close_Datetime" type="xs:dateTime"/>

 <!--
 ===============================================================
 ==  TT_Short_Description                                     ==
 ===============================================================
 -->
 <xs:element name="TT_Short_Description"
             type="nttdm:eTT_Short_Description"/>

 <!--
 ===============================================================
 ==  TT_Long_Description Class                                ==
 ===============================================================
 -->
 <xs:element name="TT_Long_Description" type="xs:string"/>

 <!--
 ===============================================================
 ==  Type Class                                               ==
 ===============================================================
 -->
 <xs:element name="Type" type="nttdm:eType"/>

 <!--
 ===============================================================
 ==  TT_Impact_Assessment Class                               ==
 ===============================================================
 -->
 <xs:element name="TT_Impact_Assessment"
             type="nttdm:eTT_Impact_Assessment"/>

 <!--
 ===============================================================
 ==  Start_Datetime Class                                     ==
 ===============================================================
 -->
 <xs:element name="Start_Datetime" type="xs:dateTime"/>

 <!--
 ===============================================================
 ==  Detect_Datetime Class                                    ==
 ===============================================================
 -->
 <xs:element name="Detect_Datetime" type="xs:dateTime"/>

 <!--
 ===============================================================
 ==  Report_Datetime Class                                    ==
 ===============================================================
 -->
 <xs:element name="Report_Datetime" type="xs:dateTime"/>

 <!--
 ===============================================================
 ==  End_Datetime Class                                       ==
 ===============================================================
 -->
 <xs:element name="End_Datetime" type="xs:dateTime"/>

 <!--
 ===============================================================
 ==  TT_Last_Update_Time Class                                ==
 ===============================================================
 -->
 <xs:element name="TT_Last_Update_Time" type="xs:dateTime"/>

 <!--
 ===============================================================
 ==  Time_Window_Start Class                                  ==
 ===============================================================
 -->
 <xs:element name="Time_Window_Start" type="xs:dateTime"/>

 <!--
 ===============================================================
 ==  Time_Window_End Class                                    ==
 ===============================================================
 -->
 <xs:element name="Time_Window_End" type="xs:dateTime"/>

 <!--
 ===============================================================
 ==  Work_Plan_Start_Datetime Class                           ==
 ===============================================================
 -->
 <xs:element name="Work_Plan_Start_Datetime" type="xs:dateTime"/>

 <!--
 ===============================================================
 ==  Work_Plan_End_Datetime Class                             ==
 ===============================================================
 -->
 <xs:element name="Work_Plan_End_Datetime" type="xs:dateTime"/>

 <!--
 ===============================================================
 ==  Related_External_Tickets Class                           ==
 ===============================================================
 -->
 <xs:element name="Related_External_Tickets"
             type="nttdm:eRelated_External_Tickets"/>

 <!--
 ===============================================================
 ==  Additional_Data Class                                    ==
 ===============================================================
 -->
 <xs:element name="Additional_Data" type="xs:string"/>

 <!--
 ===============================================================
 ==  Related_Activity Class                                   ==
 ===============================================================
 -->
 <xs:element name="Related_Activity"
             type="nttdm:eRelated_Activity"/>

 <!--
 ===============================================================
 ==  History Class                                            ==
 ===============================================================
 -->
 <xs:element name="History" type="xs:string"/>

 <!--
 ===============================================================
 ==  Affected_Community Class                                 ==
 ===============================================================
 -->
 <xs:element name="Affected_Community" type="xs:string"/>

 <!--
 ===============================================================
 ==  Affected_Service Class                                   ==
 ===============================================================
 -->
 <xs:element name="Affected_Service" type="xs:string"/>

 <!--
 ===============================================================
 ==  Location Class                                           ==
 ===============================================================
 -->
 <xs:element name="Location" type="xs:string"/>

 <!--
 ===============================================================
 ==  Network_Node Class                                       ==
 ===============================================================
 -->
 <xs:element name="Network_Node" type="nttdm:eNodes"/>

 <!--
 ===============================================================
 ==  Network_Link_Circuit Class                               ==
 ===============================================================
 -->
 <xs:element name="Network_Link_Circuit"
             type="nttdm:eNetwork_Link_Circuit"/>

 <!--
 ===============================================================
 ==  End_Line_Location_A Class                                ==
 ===============================================================
 -->
 <xs:element name="End_Line_Location_A" type="xs:string"/>

 <!--
 ===============================================================
 ==  End_Line_Location_B Class                                ==
 ===============================================================
 -->
 <xs:element name="End_Line_Location_B" type="xs:string"/>

 <!--
 ===============================================================
 ==  Open_Engineer Class                                      ==
 ===============================================================
 -->
 <xs:element name="Open_Engineer" type="xs:string"/>

 <!--
 ===============================================================
 ==  Contact_Engineers Class                                  ==
 ===============================================================
 -->
 <xs:element name="Contact_Engineers" type="nttdm:eEngineers"/>

 <!--
 ===============================================================
 ==  Close_Engineer Class                                     ==
 ===============================================================
 -->
 <xs:element name="Close_Engineer" type="xs:string"/>

 <!--
 ===============================================================
 ==  Hash        Class                                        ==
 ===============================================================
 -->
 <xs:element name="Hash" type="xs:string"/>


 <!--
 ===============================================================
 ==  Custom types definition                                  ==
 ===============================================================
 -->
 <xs:simpleType name="string_no_underscore">
  <xs:restriction base="xs:string">
   <xs:pattern value="[^_]*"/>
  </xs:restriction>
 </xs:simpleType>

 <xs:complexType name="eRelated_External_Tickets">
  <xs:sequence>
   <xs:element name="TTid" type="xs:string" minOccurs="0"
               maxOccurs="unbounded"/>
  </xs:sequence>
 </xs:complexType>

 <xs:complexType name="eRelated_Activity">
  <xs:sequence>
   <xs:element name="TT" type="xs:string" minOccurs="0"
               maxOccurs="unbounded"/>
  </xs:sequence>
 </xs:complexType>
 <xs:complexType name="eNodes">
  <xs:sequence>
   <xs:element name="Node" type="xs:string" minOccurs="0"
               maxOccurs="unbounded"/>
  </xs:sequence>
 </xs:complexType>

 <xs:complexType name="eNetwork_Link_Circuit">
  <xs:sequence>
   <xs:element name="Link_Circuit" type="xs:string"
                      minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
 </xs:complexType>

 <xs:complexType name="eEngineers">
  <xs:sequence>
   <xs:element name="Engineer" type="xs:string" minOccurs="0"
               maxOccurs="unbounded"/>
  </xs:sequence>
 </xs:complexType>

 <xs:simpleType name="eTT_Type">
  <xs:restriction base="xs:string">
   <xs:enumeration value="Operational"/>
   <xs:enumeration value="Informational"/>
   <xs:enumeration value="Administrative"/>
   <xs:enumeration value="Test"/>
  </xs:restriction>
 </xs:simpleType>

 <xs:simpleType name="eType">
  <xs:restriction base="xs:string">
   <xs:enumeration value="Scheduled"/>
   <xs:enumeration value="Unscheduled"/>
  </xs:restriction>
 </xs:simpleType>

<xs:simpleType name="eTT_Priority">
  <xs:restriction base="xs:string">
   <xs:enumeration value="Low"/>
   <xs:enumeration value="Medium"/>
   <xs:enumeration value="High"/>
  </xs:restriction>
 </xs:simpleType>


 <xs:simpleType name="eTT_Short_Description">
  <xs:restriction base="xs:string">
   <xs:enumeration value="Core Line Fault"/>
   <xs:enumeration value="Access Line Fault"/>
   <xs:enumeration value="Degraded Service"/>
   <xs:enumeration value="Router Hardware Fault"/>
   <xs:enumeration value="Router Software Fault"/>
   <xs:enumeration value="Routing Problem"/>
   <xs:enumeration value="Undefined Problem"/>
   <xs:enumeration value="Network congestion"/>
   <xs:enumeration value="Client Upgrade"/>
   <xs:enumeration value="IPv6"/>
   <xs:enumeration value="QoS"/>
   <xs:enumeration value="VoIP"/>
   <xs:enumeration value="Other"/>
  </xs:restriction>
 </xs:simpleType>

 <xs:simpleType name="eTT_Impact_Assessment">
  <xs:restriction base="xs:string">
   <xs:enumeration value="No impact"/>
   <xs:enumeration value="Reduced redundancy"/>
   <xs:enumeration value="Minor performance impact"/>
   <xs:enumeration value="Severe performance impact"/>
   <xs:enumeration value="No connectivity"/>
   <xs:enumeration value="On backup"/>
   <xs:enumeration value="At risk"/>
   <xs:enumeration value="Unknown"/>
  </xs:restriction>
 </xs:simpleType>

 <xs:simpleType name="eTT_Status">
  <xs:restriction base="xs:string">
   <xs:enumeration value="Opened"/>
   <xs:enumeration value="Updated"/>
   <xs:enumeration value="Closed"/>
   <xs:enumeration value="Opened/Closed"/>
   <xs:enumeration value="Inactive"/>
   <xs:enumeration value="Cancelled"/>
   <xs:enumeration value="Reopened"/>
   <xs:enumeration value="Superseded"/>
  </xs:restriction>
 </xs:simpleType>

 <xs:simpleType name="eTT_Source">
  <xs:restriction base="xs:string">
   <xs:enumeration value="Users"/>
   <xs:enumeration value="Monitoring"/>
   <xs:enumeration value="Other NOC"/>
  </xs:restriction>
 </xs:simpleType>
</xs:schema>
