dbh Prüfung der 6 Punkte zurückgemeldet von Basti, Korrektur / Ergänzung der NoChanges Liste

This commit is contained in:
Daniel Schick 2019-12-02 16:09:02 +00:00
parent 7de7c71eb1
commit 8a5ee8ee37
14 changed files with 7410 additions and 60 deletions

Binary file not shown.

View File

@ -2,6 +2,6 @@
[assembly: AssemblyCompany("schick Informatik")]
[assembly: AssemblyProduct("BSMD NSW interface")]
[assembly: AssemblyInformationalVersion("5.7.0")]
[assembly: AssemblyInformationalVersion("5.8.0")]
[assembly: AssemblyCopyright("Copyright © 2014-2019 schick Informatik")]
[assembly: AssemblyTrademark("")]

View File

@ -1,4 +1,4 @@
using System.Reflection;
[assembly: AssemblyVersion("5.7.0.*")]
[assembly: AssemblyVersion("5.8.0.*")]

View File

@ -20,6 +20,7 @@ namespace bsmd.dbh.ResponseService
bsmd.dbh.response.RootReportingClassesPartial ReportingClassesPartial,
bsmd.dbh.response.RootReportingClassesError RootReportingClassesError,
bsmd.dbh.response.RootReportingClassesResetted ReportingClassesResetted,
bsmd.dbh.response.RootReportingClassesNoChanges ReportingClassesNoChanges,
bsmd.dbh.response.Message[] Messages);
}

View File

@ -18,6 +18,7 @@ namespace bsmd.dbh.ResponseService
bsmd.dbh.response.RootReportingClassesPartial ReportingClassesPartial,
bsmd.dbh.response.RootReportingClassesError RootReportingClassesError,
bsmd.dbh.response.RootReportingClassesResetted ReportingClassesResetted,
bsmd.dbh.response.RootReportingClassesNoChanges ReportingClassesNoChanges,
bsmd.dbh.response.Message[] Messages)
{
@ -75,8 +76,9 @@ namespace bsmd.dbh.ResponseService
}
_log.DebugFormat("processing {0}..", MessageId ?? "?");
Response.ProcessResponse(VisitId, TransitId, Timestamp, SenderReference, Type, Messages,
ReportingClassesFull, ReportingClassesPartial, RootReportingClassesError, ReportingClassesResetted,
ReportingClassesFull, ReportingClassesPartial, RootReportingClassesError, ReportingClassesResetted, ReportingClassesNoChanges,
Properties.Settings.Default.DBConnectionString);
}

View File

@ -11,14 +11,14 @@
using System.Xml.Serialization;
//
// Dieser Quellcode wurde automatisch generiert von xsd, Version=4.6.1055.0.
// Dieser Quellcode wurde automatisch generiert von xsd, Version=4.7.3081.0.
//
namespace bsmd.dbh.response
{
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.7.3081.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
@ -51,6 +51,8 @@ namespace bsmd.dbh.response
private RootReportingClassesResetted reportingClassesResettedField;
private RootReportingClassesNoChanges reportingClassesNoChangesField;
private Message[] messagesField;
/// <remarks/>
@ -210,6 +212,19 @@ namespace bsmd.dbh.response
}
}
/// <remarks/>
public RootReportingClassesNoChanges ReportingClassesNoChanges
{
get
{
return this.reportingClassesNoChangesField;
}
set
{
this.reportingClassesNoChangesField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute("Message", IsNullable = false)]
public Message[] Messages
@ -226,7 +241,7 @@ namespace bsmd.dbh.response
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.7.3081.0")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public enum RootType
@ -249,7 +264,7 @@ namespace bsmd.dbh.response
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.7.3081.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
@ -275,7 +290,7 @@ namespace bsmd.dbh.response
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.7.3081.0")]
[System.SerializableAttribute()]
public enum ReportingClassCode
{
@ -360,7 +375,7 @@ namespace bsmd.dbh.response
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.7.3081.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
@ -386,7 +401,7 @@ namespace bsmd.dbh.response
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.7.3081.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
@ -412,7 +427,7 @@ namespace bsmd.dbh.response
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.7.3081.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
@ -438,7 +453,33 @@ namespace bsmd.dbh.response
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.7.3081.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class RootReportingClassesNoChanges
{
private ReportingClassCode[] reportingClassField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("ReportingClass")]
public ReportingClassCode[] ReportingClass
{
get
{
return this.reportingClassField;
}
set
{
this.reportingClassField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.7.3081.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
@ -508,7 +549,7 @@ namespace bsmd.dbh.response
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.7.3081.0")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public enum RootMessageType
@ -526,4 +567,5 @@ namespace bsmd.dbh.response
/// <remarks/>
ERROR,
}
}

View File

@ -19,7 +19,7 @@ namespace bsmd.dbh
public class Response
{
private static ILog _log = LogManager.GetLogger("dbh Response");
private static readonly ILog _log = LogManager.GetLogger("dbh Response");
public static void ProcessResponse(string VisitId, string TransitId, DateTime Timestamp,
string SenderReference, response.RootType Type, bsmd.dbh.response.Message[] Messages,
@ -27,6 +27,7 @@ namespace bsmd.dbh
bsmd.dbh.response.RootReportingClassesPartial ReportingClassesPartial,
bsmd.dbh.response.RootReportingClassesError ReportingClassesError,
bsmd.dbh.response.RootReportingClassesResetted ReportingClassesResetted,
bsmd.dbh.response.RootReportingClassesNoChanges ReportingClassesNoChanges,
string connectionString)
{
@ -43,9 +44,8 @@ namespace bsmd.dbh
if (DBManager.Instance.Connect(connectionString))
{
_log.Debug("Start PROCESS");
Guid messageId;
if (!Guid.TryParseExact(SenderReference, "N", out messageId))
_log.DebugFormat("Start PROCESS, Timestamp: {0}", Timestamp);
if (!Guid.TryParseExact(SenderReference, "N", out Guid messageId))
{
_log.WarnFormat("SenderReference {0} is not a guid, skipping message processing!", SenderReference);
return;
@ -61,11 +61,10 @@ namespace bsmd.dbh
DBManager.Instance.Delete(existingError);
}
MessageCore aCore = null;
if (dbEntity == null)
{
aCore = DBManager.Instance.GetMessageCoreById(messageId);
if((aCore != null) && (Type == response.RootType.CANCEL))
MessageCore aCore = DBManager.Instance.GetMessageCoreById(messageId);
if ((aCore != null) && (Type == response.RootType.CANCEL))
{
_log.InfoFormat("Cancel confirmation received for {0} ({1})", aCore.Id, aCore.DisplayId);
aCore.BSMDStatusInternal = MessageCore.BSMDStatus.RESPONDED;
@ -121,7 +120,7 @@ namespace bsmd.dbh
//}
break;
case dbh.response.RootType.DATA:
if((ReportingClassesFull != null) && (ReportingClassesFull.ReportingClass.Length > 0))
if(ReportingClassesFull?.ReportingClass.Length > 0)
{
// this was successful, save status to MessageHeader
aMessage.SendSuccess = true;
@ -129,7 +128,7 @@ namespace bsmd.dbh
aMessage.Status = Message.MessageStatus.ACCEPTED;
_log.InfoFormat("full message class accepted");
}
if ((ReportingClassesPartial != null) && (ReportingClassesPartial.ReportingClass.Length > 0))
if (ReportingClassesPartial?.ReportingClass.Length > 0)
{
// this was successful, save status to MessageHeader
aMessage.SendSuccess = true;
@ -137,7 +136,7 @@ namespace bsmd.dbh
aMessage.Status = Message.MessageStatus.ACCEPTED;
_log.InfoFormat("partial message class accepted");
}
if ((ReportingClassesError != null) && (ReportingClassesError.ReportingClass.Length > 0))
if (ReportingClassesError?.ReportingClass.Length > 0)
{
// this was successful, save status to MessageHeader
aMessage.SendSuccess = true;
@ -145,6 +144,27 @@ namespace bsmd.dbh
aMessage.Status = Message.MessageStatus.ACCEPTED;
_log.InfoFormat("message class accepted but error");
}
if(ReportingClassesNoChanges?.ReportingClass.Length > 0)
{
// this was successful, yet unnecessary ;-)
aMessage.SendSuccess = true;
aMessage.InternalStatus = Message.BSMDStatus.CONFIRMED;
aMessage.Status = Message.MessageStatus.ACCEPTED;
_log.InfoFormat("message accepted, data was unchanged");
}
bool isReset = false;
if(ReportingClassesResetted?.ReportingClass.Length > 0)
{
aMessage.SendSuccess = false;
aMessage.InternalStatus = Message.BSMDStatus.CONFIRMED;
aMessage.Status = Message.MessageStatus.ACCEPTED;
isReset = true;
_log.InfoFormat("RESET successful for message");
}
if (isReset && !aMessage.Reset)
aMessage.Reset = isReset;
// check the whole thing for completion
MessageCore core = DBManager.Instance.GetMessageCoreById(aMessage.MessageCoreId.Value);
@ -180,8 +200,7 @@ namespace bsmd.dbh
Messages[i].Type,
Messages[i].Text ?? "null");
int code = 0;
bool hasCode = Int32.TryParse(Messages[i].ID, out code);
bool hasCode = Int32.TryParse(Messages[i].ID, out int code);
switch (Messages[i].Type)
{

View File

@ -78,8 +78,7 @@ namespace bsmd.hisnord
public static bool? CreateSendFile(MessageCore core, Message message, bool useTest)
{
bool? retval = null;
bool? retval;
try
{
nsw _nsw = new nsw();
@ -1581,7 +1580,6 @@ namespace bsmd.hisnord
#endregion
#region serialize and save message

View File

@ -13,8 +13,7 @@ namespace bsmd.hisnord
public static class Response
{
private static ILog _log = LogManager.GetLogger(typeof(Response));
private static readonly ILog _log = LogManager.GetLogger(typeof(Response));
public static void ReadAnswers(bool useTest)
{
@ -37,16 +36,14 @@ namespace bsmd.hisnord
}
else
{
int prozessStatus;
if (!Int32.TryParse(fileNameElems[fileNameElems.Length - 1], out prozessStatus))
if (!Int32.TryParse(fileNameElems[fileNameElems.Length - 1], out int prozessStatus))
{
_log.WarnFormat("ANSWER file {0}.xml has no process status at the end (2..6)", bareFileName);
isOK = false;
}
else
{
long timestampMilliSecs;
if (!Int64.TryParse(fileNameElems[fileNameElems.Length - 2], out timestampMilliSecs))
if (!Int64.TryParse(fileNameElems[fileNameElems.Length - 2], out long timestampMilliSecs))
{
_log.WarnFormat("ANSWER file {0}.xml has no readable timestamp", bareFileName);
isOK = false;
@ -74,15 +71,14 @@ namespace bsmd.hisnord
if (xml.Name == "SystemError")
{
// Fehlernachricht
SystemError systemError = SystemError.createFromXml(xml);
SystemError systemError = SystemError.createFromXml(xml);
if (systemError != null)
{
{
MessageCore aCore = DBManager.Instance.GetMessageCoreById(systemError.MessageCoreId);
if (aCore != null)
{
Message.NotificationClass notificationClass;
if (Enum.TryParse<Message.NotificationClass>(systemError.Meldetype, out notificationClass))
if (Enum.TryParse<Message.NotificationClass>(systemError.Meldetype, out Message.NotificationClass notificationClass))
{
Message refMessage = DBManager.Instance.GetMessage(aCore, notificationClass);
if (refMessage != null)
@ -118,7 +114,7 @@ namespace bsmd.hisnord
_log.WarnFormat("SystemError received for unknown core {0}: {1}", systemError.MessageCoreId, systemError.ErrorMessage);
}
// trotzdem immer speichern
DBManager.Instance.Save(systemError);
DBManager.Instance.Save(systemError);
}
}
else
@ -127,7 +123,7 @@ namespace bsmd.hisnord
NSWResponse nswResponse = new NSWResponse(xml);
// Rückmeldung auswerten
if (nswResponse.MessageCoreId.HasValue)
{
MessageCore core = DBManager.Instance.GetMessageCoreById(nswResponse.MessageCoreId.Value);
@ -135,7 +131,7 @@ namespace bsmd.hisnord
{
List<Message> messages = DBManager.Instance.GetMessagesForCore(core, DBManager.MessageLoad.ALL);
if(nswResponse.NotificationClass == Message.NotificationClass.VISIT)
if (nswResponse.NotificationClass == Message.NotificationClass.VISIT)
{
if ((nswResponse.Status == "ACCEPTED") && !nswResponse.VisitId.IsNullOrEmpty())
{
@ -144,7 +140,7 @@ namespace bsmd.hisnord
}
}
if(nswResponse.NotificationClass == Message.NotificationClass.TRANSIT)
if (nswResponse.NotificationClass == Message.NotificationClass.TRANSIT)
{
if ((nswResponse.Status == "ACCEPTED") && !nswResponse.TransitId.IsNullOrEmpty())
{
@ -153,41 +149,41 @@ namespace bsmd.hisnord
}
}
if(nswResponse.NotificationClass == Message.NotificationClass.STO)
if (nswResponse.NotificationClass == Message.NotificationClass.STO)
{
_log.InfoFormat("NSWRESPONSE Cancel Visit/Transit Reply: {0} Cancel? {1}",
_log.InfoFormat("NSWRESPONSE Cancel Visit/Transit Reply: {0} Cancel? {1}",
nswResponse.Status,
(core.Cancelled ?? false) ? "YES" : "NO"
);
if((nswResponse.Status == "ACCEPTED") && ((core.Cancelled ?? false) == true))
if ((nswResponse.Status == "ACCEPTED") && (core.Cancelled ?? false))
{
core.BSMDStatusInternal = MessageCore.BSMDStatus.RESPONDED;
_log.InfoFormat("Core cancel confirmed for {0}", core.DisplayId);
}
if ((nswResponse.Status == "REJECTED") && ((core.Cancelled ?? false) == true))
if ((nswResponse.Status == "REJECTED") && (core.Cancelled ?? false))
{
core.Cancelled = false; // CANCEL fehlgeschlagen
core.BSMDStatusInternal = MessageCore.BSMDStatus.FAILURE;
core.BSMDStatusInternal = MessageCore.BSMDStatus.FAILURE;
_log.InfoFormat("Cancel rejected for {0}", core.DisplayId);
}
}
}
bool aMessageStillInSENTstate = false;
// now find the message that was meant..
foreach (Message aMessage in messages)
{
if (aMessage.MessageNotificationClass == nswResponse.NotificationClass)
{
{
if (nswResponse.Status != null)
{
aMessage.ReceivedAt = nswResponse.ReceiveAt;
bool isAccepted = (nswResponse.Status == "ACCEPTED");
bool isAccepted = (nswResponse.Status == "ACCEPTED");
if(isAccepted)
if (isAccepted)
{
aMessage.SendSuccess = true;
aMessage.Status = Message.MessageStatus.ACCEPTED;
@ -196,7 +192,7 @@ namespace bsmd.hisnord
{
aMessage.InternalStatus = Message.BSMDStatus.VIOLATION;
aMessage.StatusInfo = "Violations reported";
}
}
}
else
{
@ -244,12 +240,12 @@ namespace bsmd.hisnord
messageError.MessageHeader = aMessage;
DBManager.Instance.Save(messageError);
}
_log.InfoFormat("Saving Message {0} Status {1} InternalStatus {2}",
_log.InfoFormat("Saving Message {0} Status {1} InternalStatus {2}",
aMessage.Id, aMessage.Status, aMessage.InternalStatus);
DBManager.Instance.Save(aMessage);
#endregion
}
@ -259,7 +255,7 @@ namespace bsmd.hisnord
}
if(!aMessageStillInSENTstate && !(core.Cancelled ?? false))
if (!aMessageStillInSENTstate && !(core.Cancelled ?? false))
core.BSMDStatusInternal = MessageCore.BSMDStatus.RESPONDED;
DBManager.Instance.Save(core);
@ -267,16 +263,16 @@ namespace bsmd.hisnord
else
{
_log.ErrorFormat("cannot find core for id {0}", nswResponse.MessageCoreId);
}
}
}
else
{
_log.ErrorFormat("received response without suitable conveyance code, request id {0}", nswResponse.ClientRequestId);
isOK = false;
}
}
}
}
catch(Exception ex)
catch (Exception ex)
{
_log.WarnFormat("Exception deserializing ANSWER file: {0}", ex.ToString());
isOK = false;

5882
nsw/dbh/NSWRequest.cs Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,244 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio - FREE Community Edition 7.0.3.780 (http://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="Version">
<xs:annotation>
<xs:documentation>Version number of schema</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="5" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MessageId" type="xs:string">
<xs:annotation>
<xs:documentation>Unique message identifier.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="VisitId">
<xs:annotation>
<xs:documentation>Required when TransitId is missing and field "Type" is not "VISIT or "TRANSIT"</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(DE)([A-Z]{3})-([0-9]{4})-([A-Z]{6})" />
<xs:length value="17" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="TransitId">
<xs:annotation>
<xs:documentation>Required when VisitId is missing and field "Type" is not "VISIT or "TRANSIT"</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(ZZNOK)-([0-9]{4})-([A-Z]{6})" />
<xs:length value="17" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="SisNumbers">
<xs:annotation>
<xs:documentation>A list of SIS numbers. An empty list means that all sent numbers will be deleted. Sending a new list overwrites existing ones completely.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="SisNumber">
<xs:annotation>
<xs:documentation>One SIS number</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z0-9]{4}" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Timestamp" type="xs:dateTime">
<xs:annotation>
<xs:documentation>Timestamp, when the message is sent</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="SenderReference">
<xs:annotation>
<xs:documentation>A customer reference that can be freely filled and will be send back in the following response. No checks are made on this field. When a new Visit- or TransitId is obtained, it should be used as a reference to match the response to its corresponding request.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="35" />
<xs:minLength value="0" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Type">
<xs:annotation>
<xs:documentation>The message type (should be the same as in the request message):
- VISIT: Creates a new declaration with the application for a VisitId. It's allowed to send further data in one or more reporting classes
- TRANSIT: same with TransitId
- DATA: Only data for one or more reporting classes are included
- RESET: The data of one or more reporting classes are deleted
- CANCEL: The whole declaration is cancelled</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="VISIT" />
<xs:enumeration value="TRANSIT" />
<xs:enumeration value="DATA" />
<xs:enumeration value="RESET" />
<xs:enumeration value="CANCEL" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="ReportingClassesFull">
<xs:annotation>
<xs:documentation>Reporting classes that are received with all necessary data.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="ReportingClass" type="ReportingClassCode">
<xs:annotation>
<xs:documentation>The code of a reporting class.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ReportingClassesPartial">
<xs:annotation>
<xs:documentation>Reporting classes that are received with some data missing (see Messages for errors/violations).</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="ReportingClass" type="ReportingClassCode">
<xs:annotation>
<xs:documentation>The code of a reporting class.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ReportingClassesError">
<xs:annotation>
<xs:documentation>Reporting classes that are received with some data missing (see Messages for errors/violations).</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="ReportingClass" type="ReportingClassCode">
<xs:annotation>
<xs:documentation>The code of a reporting class.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ReportingClassesResetted">
<xs:annotation>
<xs:documentation>Reporting classes that are resetted (due to a message with Type RESET).</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="ReportingClass" type="ReportingClassCode">
<xs:annotation>
<xs:documentation>The code of a reporting class.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="Messages">
<xs:annotation>
<xs:documentation>Errors, Violations, etc.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Message">
<xs:complexType>
<xs:sequence>
<xs:element name="ID">
<xs:annotation>
<xs:documentation>ID (given from NSW)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="3" />
<xs:maxLength value="4" />
<xs:pattern value="([1-9][0-9]{2,3})" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Type">
<xs:annotation>
<xs:documentation>Type of Message (functional error, process error in report, process error in message basket, process error during status request, or violation)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="INFO" />
<xs:enumeration value="WARNING" />
<xs:enumeration value="VIOLATION" />
<xs:enumeration value="ERROR" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Location">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="32" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Text">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="ReportingClassCode">
<xs:restriction base="xs:string">
<xs:enumeration value="NOA_NOD" />
<xs:enumeration value="ATA" />
<xs:enumeration value="ATD" />
<xs:enumeration value="SEC" />
<xs:enumeration value="AGNT" />
<xs:enumeration value="POBA" />
<xs:enumeration value="POBD" />
<xs:enumeration value="NAME" />
<xs:enumeration value="TIEFA" />
<xs:enumeration value="TIEFD" />
<xs:enumeration value="BKRA" />
<xs:enumeration value="BKRD" />
<xs:enumeration value="STAT" />
<xs:enumeration value="LADG" />
<xs:enumeration value="INFO" />
<xs:enumeration value="SERV" />
<xs:enumeration value="PRE72H" />
<xs:enumeration value="MDH" />
<xs:enumeration value="WAS" />
<xs:enumeration value="CREW" />
<xs:enumeration value="PAS" />
<xs:enumeration value="BPOL" />
<xs:enumeration value="TOWA" />
<xs:enumeration value="TOWD" />
<xs:enumeration value="HAZA" />
<xs:enumeration value="HAZD" />
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@ -0,0 +1,258 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio - FREE Community Edition 7.0.3.780 (http://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="Version">
<xs:annotation>
<xs:documentation>Version number of schema</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="5" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MessageId" type="xs:string">
<xs:annotation>
<xs:documentation>Unique message identifier.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="VisitId">
<xs:annotation>
<xs:documentation>Required when TransitId is missing and field "Type" is not "VISIT or "TRANSIT"</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(DE)([A-Z]{3})-([0-9]{4})-([A-Z]{6})" />
<xs:length value="17" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="TransitId">
<xs:annotation>
<xs:documentation>Required when VisitId is missing and field "Type" is not "VISIT or "TRANSIT"</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(ZZNOK)-([0-9]{4})-([A-Z]{6})" />
<xs:length value="17" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="SisNumbers">
<xs:annotation>
<xs:documentation>A list of SIS numbers. An empty list means that all sent numbers will be deleted. Sending a new list overwrites existing ones completely.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="SisNumber">
<xs:annotation>
<xs:documentation>One SIS number</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z0-9]{4}" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Timestamp" type="xs:dateTime">
<xs:annotation>
<xs:documentation>Timestamp, when the message is sent</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="SenderReference">
<xs:annotation>
<xs:documentation>A customer reference that can be freely filled and will be send back in the following response. No checks are made on this field. When a new Visit- or TransitId is obtained, it should be used as a reference to match the response to its corresponding request.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="35" />
<xs:minLength value="0" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Type">
<xs:annotation>
<xs:documentation>The message type (should be the same as in the request message):
- VISIT: Creates a new declaration with the application for a VisitId. It's allowed to send further data in one or more reporting classes
- TRANSIT: same with TransitId
- DATA: Only data for one or more reporting classes are included
- RESET: The data of one or more reporting classes are deleted
- CANCEL: The whole declaration is cancelled</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="VISIT" />
<xs:enumeration value="TRANSIT" />
<xs:enumeration value="DATA" />
<xs:enumeration value="RESET" />
<xs:enumeration value="CANCEL" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="ReportingClassesFull">
<xs:annotation>
<xs:documentation>Reporting classes that are received with all necessary data.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="ReportingClass" type="ReportingClassCode">
<xs:annotation>
<xs:documentation>The code of a reporting class.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ReportingClassesPartial">
<xs:annotation>
<xs:documentation>Reporting classes that are received with some data missing (see Messages for errors/violations).</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="ReportingClass" type="ReportingClassCode">
<xs:annotation>
<xs:documentation>The code of a reporting class.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ReportingClassesError">
<xs:annotation>
<xs:documentation>Reporting classes that are received with some data missing (see Messages for errors/violations).</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="ReportingClass" type="ReportingClassCode">
<xs:annotation>
<xs:documentation>The code of a reporting class.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ReportingClassesResetted">
<xs:annotation>
<xs:documentation>Reporting classes that are resetted (due to a message with Type RESET).</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="ReportingClass" type="ReportingClassCode">
<xs:annotation>
<xs:documentation>The code of a reporting class.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ReportingClassesNoChanges">
<xs:annotation>
<xs:documentation>Reporting classes that are received with all necessary data, but not sent (again) to the NSW due to unchanged content.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="ReportingClass" type="ReportingClassCode">
<xs:annotation>
<xs:documentation>The code of a reporting class.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="Messages">
<xs:annotation>
<xs:documentation>Errors, Violations, etc.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Message">
<xs:complexType>
<xs:sequence>
<xs:element name="ID">
<xs:annotation>
<xs:documentation>ID (given from NSW)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="3" />
<xs:maxLength value="4" />
<xs:pattern value="([1-9][0-9]{2,3})" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Type">
<xs:annotation>
<xs:documentation>Type of Message (functional error, process error in report, process error in message basket, process error during status request, or violation)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="INFO" />
<xs:enumeration value="WARNING" />
<xs:enumeration value="VIOLATION" />
<xs:enumeration value="ERROR" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Location">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="32" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Text">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="ReportingClassCode">
<xs:restriction base="xs:string">
<xs:enumeration value="NOA_NOD" />
<xs:enumeration value="ATA" />
<xs:enumeration value="ATD" />
<xs:enumeration value="SEC" />
<xs:enumeration value="AGNT" />
<xs:enumeration value="POBA" />
<xs:enumeration value="POBD" />
<xs:enumeration value="NAME" />
<xs:enumeration value="TIEFA" />
<xs:enumeration value="TIEFD" />
<xs:enumeration value="BKRA" />
<xs:enumeration value="BKRD" />
<xs:enumeration value="STAT" />
<xs:enumeration value="LADG" />
<xs:enumeration value="INFO" />
<xs:enumeration value="SERV" />
<xs:enumeration value="PRE72H" />
<xs:enumeration value="MDH" />
<xs:enumeration value="WAS" />
<xs:enumeration value="CREW" />
<xs:enumeration value="PAS" />
<xs:enumeration value="BPOL" />
<xs:enumeration value="TOWA" />
<xs:enumeration value="TOWD" />
<xs:enumeration value="HAZA" />
<xs:enumeration value="HAZD" />
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@ -0,0 +1,454 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
//
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
using System.Xml.Serialization;
//
// Dieser Quellcode wurde automatisch generiert von xsd, Version=4.6.1055.0.
//
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public partial class Root {
private string versionField;
private string messageIdField;
private string visitIdField;
private string transitIdField;
private string[] sisNumbersField;
private System.DateTime timestampField;
private string senderReferenceField;
private RootType typeField;
private RootReportingClassesFull reportingClassesFullField;
private RootReportingClassesPartial reportingClassesPartialField;
private RootReportingClassesError reportingClassesErrorField;
private RootReportingClassesResetted reportingClassesResettedField;
private RootMessage[] messagesField;
/// <remarks/>
public string Version {
get {
return this.versionField;
}
set {
this.versionField = value;
}
}
/// <remarks/>
public string MessageId {
get {
return this.messageIdField;
}
set {
this.messageIdField = value;
}
}
/// <remarks/>
public string VisitId {
get {
return this.visitIdField;
}
set {
this.visitIdField = value;
}
}
/// <remarks/>
public string TransitId {
get {
return this.transitIdField;
}
set {
this.transitIdField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute("SisNumber", IsNullable=false)]
public string[] SisNumbers {
get {
return this.sisNumbersField;
}
set {
this.sisNumbersField = value;
}
}
/// <remarks/>
public System.DateTime Timestamp {
get {
return this.timestampField;
}
set {
this.timestampField = value;
}
}
/// <remarks/>
public string SenderReference {
get {
return this.senderReferenceField;
}
set {
this.senderReferenceField = value;
}
}
/// <remarks/>
public RootType Type {
get {
return this.typeField;
}
set {
this.typeField = value;
}
}
/// <remarks/>
public RootReportingClassesFull ReportingClassesFull {
get {
return this.reportingClassesFullField;
}
set {
this.reportingClassesFullField = value;
}
}
/// <remarks/>
public RootReportingClassesPartial ReportingClassesPartial {
get {
return this.reportingClassesPartialField;
}
set {
this.reportingClassesPartialField = value;
}
}
/// <remarks/>
public RootReportingClassesError ReportingClassesError {
get {
return this.reportingClassesErrorField;
}
set {
this.reportingClassesErrorField = value;
}
}
/// <remarks/>
public RootReportingClassesResetted ReportingClassesResetted {
get {
return this.reportingClassesResettedField;
}
set {
this.reportingClassesResettedField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute("Message", IsNullable=false)]
public RootMessage[] Messages {
get {
return this.messagesField;
}
set {
this.messagesField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public enum RootType {
/// <remarks/>
VISIT,
/// <remarks/>
TRANSIT,
/// <remarks/>
DATA,
/// <remarks/>
RESET,
/// <remarks/>
CANCEL,
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class RootReportingClassesFull {
private ReportingClassCode[] reportingClassField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("ReportingClass")]
public ReportingClassCode[] ReportingClass {
get {
return this.reportingClassField;
}
set {
this.reportingClassField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
public enum ReportingClassCode {
/// <remarks/>
NOA_NOD,
/// <remarks/>
ATA,
/// <remarks/>
ATD,
/// <remarks/>
SEC,
/// <remarks/>
AGNT,
/// <remarks/>
POBA,
/// <remarks/>
POBD,
/// <remarks/>
NAME,
/// <remarks/>
TIEFA,
/// <remarks/>
TIEFD,
/// <remarks/>
BKRA,
/// <remarks/>
BKRD,
/// <remarks/>
STAT,
/// <remarks/>
LADG,
/// <remarks/>
INFO,
/// <remarks/>
SERV,
/// <remarks/>
PRE72H,
/// <remarks/>
MDH,
/// <remarks/>
WAS,
/// <remarks/>
CREW,
/// <remarks/>
PAS,
/// <remarks/>
BPOL,
/// <remarks/>
TOWA,
/// <remarks/>
TOWD,
/// <remarks/>
HAZA,
/// <remarks/>
HAZD,
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class RootReportingClassesPartial {
private ReportingClassCode[] reportingClassField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("ReportingClass")]
public ReportingClassCode[] ReportingClass {
get {
return this.reportingClassField;
}
set {
this.reportingClassField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class RootReportingClassesError {
private ReportingClassCode[] reportingClassField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("ReportingClass")]
public ReportingClassCode[] ReportingClass {
get {
return this.reportingClassField;
}
set {
this.reportingClassField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class RootReportingClassesResetted {
private ReportingClassCode[] reportingClassField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("ReportingClass")]
public ReportingClassCode[] ReportingClass {
get {
return this.reportingClassField;
}
set {
this.reportingClassField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class RootMessage {
private string idField;
private RootMessageType typeField;
private string locationField;
private string textField;
/// <remarks/>
public string ID {
get {
return this.idField;
}
set {
this.idField = value;
}
}
/// <remarks/>
public RootMessageType Type {
get {
return this.typeField;
}
set {
this.typeField = value;
}
}
/// <remarks/>
public string Location {
get {
return this.locationField;
}
set {
this.locationField = value;
}
}
/// <remarks/>
public string Text {
get {
return this.textField;
}
set {
this.textField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public enum RootMessageType {
/// <remarks/>
INFO,
/// <remarks/>
WARNING,
/// <remarks/>
VIOLATION,
/// <remarks/>
ERROR,
}

454
nsw/dbh/NSWResponse.cs Normal file
View File

@ -0,0 +1,454 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
//
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
using System.Xml.Serialization;
//
// Dieser Quellcode wurde automatisch generiert von xsd, Version=4.6.1055.0.
//
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public partial class Root {
private string versionField;
private string messageIdField;
private string visitIdField;
private string transitIdField;
private string[] sisNumbersField;
private System.DateTime timestampField;
private string senderReferenceField;
private RootType typeField;
private RootReportingClassesFull reportingClassesFullField;
private RootReportingClassesPartial reportingClassesPartialField;
private RootReportingClassesError reportingClassesErrorField;
private RootReportingClassesResetted reportingClassesResettedField;
private RootMessage[] messagesField;
/// <remarks/>
public string Version {
get {
return this.versionField;
}
set {
this.versionField = value;
}
}
/// <remarks/>
public string MessageId {
get {
return this.messageIdField;
}
set {
this.messageIdField = value;
}
}
/// <remarks/>
public string VisitId {
get {
return this.visitIdField;
}
set {
this.visitIdField = value;
}
}
/// <remarks/>
public string TransitId {
get {
return this.transitIdField;
}
set {
this.transitIdField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute("SisNumber", IsNullable=false)]
public string[] SisNumbers {
get {
return this.sisNumbersField;
}
set {
this.sisNumbersField = value;
}
}
/// <remarks/>
public System.DateTime Timestamp {
get {
return this.timestampField;
}
set {
this.timestampField = value;
}
}
/// <remarks/>
public string SenderReference {
get {
return this.senderReferenceField;
}
set {
this.senderReferenceField = value;
}
}
/// <remarks/>
public RootType Type {
get {
return this.typeField;
}
set {
this.typeField = value;
}
}
/// <remarks/>
public RootReportingClassesFull ReportingClassesFull {
get {
return this.reportingClassesFullField;
}
set {
this.reportingClassesFullField = value;
}
}
/// <remarks/>
public RootReportingClassesPartial ReportingClassesPartial {
get {
return this.reportingClassesPartialField;
}
set {
this.reportingClassesPartialField = value;
}
}
/// <remarks/>
public RootReportingClassesError ReportingClassesError {
get {
return this.reportingClassesErrorField;
}
set {
this.reportingClassesErrorField = value;
}
}
/// <remarks/>
public RootReportingClassesResetted ReportingClassesResetted {
get {
return this.reportingClassesResettedField;
}
set {
this.reportingClassesResettedField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute("Message", IsNullable=false)]
public RootMessage[] Messages {
get {
return this.messagesField;
}
set {
this.messagesField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public enum RootType {
/// <remarks/>
VISIT,
/// <remarks/>
TRANSIT,
/// <remarks/>
DATA,
/// <remarks/>
RESET,
/// <remarks/>
CANCEL,
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class RootReportingClassesFull {
private ReportingClassCode[] reportingClassField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("ReportingClass")]
public ReportingClassCode[] ReportingClass {
get {
return this.reportingClassField;
}
set {
this.reportingClassField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
public enum ReportingClassCode {
/// <remarks/>
NOA_NOD,
/// <remarks/>
ATA,
/// <remarks/>
ATD,
/// <remarks/>
SEC,
/// <remarks/>
AGNT,
/// <remarks/>
POBA,
/// <remarks/>
POBD,
/// <remarks/>
NAME,
/// <remarks/>
TIEFA,
/// <remarks/>
TIEFD,
/// <remarks/>
BKRA,
/// <remarks/>
BKRD,
/// <remarks/>
STAT,
/// <remarks/>
LADG,
/// <remarks/>
INFO,
/// <remarks/>
SERV,
/// <remarks/>
PRE72H,
/// <remarks/>
MDH,
/// <remarks/>
WAS,
/// <remarks/>
CREW,
/// <remarks/>
PAS,
/// <remarks/>
BPOL,
/// <remarks/>
TOWA,
/// <remarks/>
TOWD,
/// <remarks/>
HAZA,
/// <remarks/>
HAZD,
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class RootReportingClassesPartial {
private ReportingClassCode[] reportingClassField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("ReportingClass")]
public ReportingClassCode[] ReportingClass {
get {
return this.reportingClassField;
}
set {
this.reportingClassField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class RootReportingClassesError {
private ReportingClassCode[] reportingClassField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("ReportingClass")]
public ReportingClassCode[] ReportingClass {
get {
return this.reportingClassField;
}
set {
this.reportingClassField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class RootReportingClassesResetted {
private ReportingClassCode[] reportingClassField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("ReportingClass")]
public ReportingClassCode[] ReportingClass {
get {
return this.reportingClassField;
}
set {
this.reportingClassField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class RootMessage {
private string idField;
private RootMessageType typeField;
private string locationField;
private string textField;
/// <remarks/>
public string ID {
get {
return this.idField;
}
set {
this.idField = value;
}
}
/// <remarks/>
public RootMessageType Type {
get {
return this.typeField;
}
set {
this.typeField = value;
}
}
/// <remarks/>
public string Location {
get {
return this.locationField;
}
set {
this.locationField = value;
}
}
/// <remarks/>
public string Text {
get {
return this.textField;
}
set {
this.textField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public enum RootMessageType {
/// <remarks/>
INFO,
/// <remarks/>
WARNING,
/// <remarks/>
VIOLATION,
/// <remarks/>
ERROR,
}