EDI.Net
EDI.Net copied to clipboard
Not able to serialize and deserialize SMPRES message correctly.
I have uploaded to my git the project i'm using for testing serialization and deserilization of message. https://github.com/dvddo/EDI.Net. Issue is i can serialize it but deserialize does not return the same edi content. I have included SMPRES.xsd in the project to better understand issue.
David
UNA:+.? ' UNB+IATB:1+AA0SM+1APPC+160608:1406+AA507987110001+02AXZAOYE60001++T' UNH+1+SMPRES:96:2:IA+09B0661E' TVL+291016+DAL+LAX+AA+0001:Y' EQI++++++378' CBD+Y+7:29+M++N++A:W+B+C:A+D:A+E+F:W' ROD+7++A:O:W:K+B:F:K+C:F:A:K+D:R:1:A:K+E:F:K+F:F:W:K' ROD+8++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+9++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+10++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+11++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+12++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+13++A:Q:8:W+B:Q:8+C:Q:8:A+D:Q:8:A+E:Q:8+F:Q:8:W' ROD+14++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+15++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+16++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+17++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+18++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+19++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+20++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+21++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+22++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+23++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+24++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+25++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+26++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+27++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+28++A:F:W+B:F+C:F:A+D:F:A+E:F+F:F:W' ROD+29++A:F:W+B:F+C:R:1:A+D:F:A+E:F+F:F:W' UNT+28+1' UNZ+1+UB507987110001'
Hi @dvddo and thanks for your interest in EDI.Net. Can you elaborate on what is the the input data, your classes/models and output?
As a side note I would suggest when when you are working on an opensource project to prefer forking instead of re-uploading the project to github. There are numerous reasons you can google some or them but mainly it looks better in the eyes of the maintainer.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using indice.Edi.Serialization;
namespace indice.Edi.Tests.Models
{
public class Edifact_SeatMap
{
public Message Msg { get; set; }
[EdiMessage]
public class Message
{
public CBD CabinDetails { get; set; }
public List<ROD> RowDetails { get; set; }
}
/// <summary>
/// Row Details
/// </summary>
[EdiSegment, EdiPath("ROD")]
public class ROD
{
[EdiValue(Path = "*/0")]
public string SeatRowNumber { get; set; }
[EdiPath("*/1")]
public ROD_RowCharacteristicsDetails RowCharacteristicsDetails { get; set; }
//public List<ROD_SeatOccupationDetails> SeatOccupationDetails { get; set; }
}
/// <summary>
/// C049
/// </summary>
[EdiElement]
public class ROD_RowCharacteristicsDetails
{
[EdiValue(Path = "*/1/0")]
public string RowCharacteristic { get; set; }
[EdiValue(Path = "*/1/1")]
public string RowCharacteristic1 { get; set; }
[EdiValue(Path = "*/1/2")]
public string RowCharacteristic2 { get; set; }
[EdiValue(Path = "*/1/3")]
public string RowCharacteristic3 { get; set; }
[EdiValue(Path = "*/1/4")]
public string RowCharacteristic4 { get; set; }
[EdiValue(Path = "*/1/5")]
public string RowCharacteristic5 { get; set; }
[EdiValue(Path = "*/1/6")]
public string RowCharacteristic6 { get; set; }
[EdiValue(Path = "*/1/7")]
public string RowCharacteristic7 { get; set; }
[EdiValue(Path = "*/1/8")]
public string RowCharacteristic8 { get; set; }
}
/// <summary>
/// C051
/// </summary>
[EdiElement]
public class ROD_SeatOccupationDetails
{
[EdiValue(Path = "*/*/0")]
public string SeatColumn { get; set; }
[EdiValue(Path = "*/*/1")]
public string SeatOccupation { get; set; }
[EdiValue(Path = "*/*/2")]
public string SeatCharacteristicCoded { get; set; }
[EdiValue(Path = "*/*/3")]
public string SeatCharacteristicCoded1 { get; set; }
[EdiValue(Path = "*/*/4")]
public string SeatCharacteristicCoded2 { get; set; }
[EdiValue(Path = "*/*/5")]
public string SeatCharacteristicCoded3 { get; set; }
[EdiValue(Path = "*/*/6")]
public string SeatCharacteristicCoded4 { get; set; }
[EdiValue(Path = "*/*/7")]
public string SeatCharacteristicCoded5 { get; set; }
[EdiValue(Path = "*/*/8")]
public string SeatCharacteristicCoded6 { get; set; }
//there are 30 more record
}
//CabinDetails
/// <summary>
/// Cabin Details
/// </summary>
[EdiSegment, EdiPath("CBD")]
public class CBD
{
[EdiPath("*/0")]
public CBD_CabinClassDesignation CabinClassDesignation { get; set; }
[EdiPath("*/1")]
public CBD_CabinClassSeatRowRangeDetails CabinClassSeatRowRangeDetails { get; set; }
[EdiValue(Path = "*/2")]
public string CabinClassLocation { get; set; }
[EdiPath("*/3")]
public CBD_SmokingAreaSeatRowRangeDetails SmokingAreaSeatRowRangeDetails { get; set; }
[EdiValue(Path = "*/4")]
public string SeatOccupationDefaultIndicator { get; set; }
[EdiPath("*/5")]
public CBD_OverwingSeatRowRange OverwingSeatRowRange { get; set; }
//public List<CBD_CabinWidthAndColumnDetails> CabinWidthAndColumnDetails { get; set; }
}
/// <summary>
/// C342
/// </summary>
[EdiElement]
public class CBD_CabinClassDesignation
{
[EdiValue(Path = "*/0/0")]
public string CabinClassDesignator { get; set; }
[EdiValue(Path = "*/0/1")]
public string CharacteristicIdentification { get; set; }
[EdiValue(Path = "*/0/2")]
public string CabinClassOfServiceCoded { get; set; }
[EdiValue(Path = "*/0/3")]
public string CabinCompartmentDesignator { get; set; }
}
/// <summary>
/// C052
/// </summary>
[EdiElement]
public class CBD_CabinClassSeatRowRangeDetails
{
[EdiValue(Path = "*/1/0")]
public string CabinClassDesignator { get; set; }
[EdiValue(Path = "*/1/1")]
public string CharacteristicIdentification { get; set; }
}
/// <summary>
/// C053
/// </summary>
[EdiElement]
public class CBD_SmokingAreaSeatRowRangeDetails
{
[EdiValue(Path = "*/3/0")]
public string SeatRowNumber { get; set; }
[EdiValue(Path = "*/3/1")]
public string SeatRowNumber1 { get; set; }
}
/// <summary>
/// C058
/// </summary>
[EdiElement]
public class CBD_OverwingSeatRowRange
{
[EdiValue(Path = "*/5/0")]
public string SeatRowNumber { get; set; }
[EdiValue(Path = "*/5/1")]
public string SeatRowNumber1 { get; set; }
}
/// <summary>
/// C054
/// </summary>
[EdiElement]
public class CBD_CabinWidthAndColumnDetails
{
[EdiValue(Path = "*/*/0")]
public string SeatColumn { get; set; }
[EdiValue(Path = "*/*/1")]
public string ColumnDescription { get; set; }
[EdiValue(Path = "*/*/2")]
public string ColumnDescription1 { get; set; }
}
}
}
Thanks for the advice. My test file is SeatMapTest.cs.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using indice.Edi.Tests.Models;
using Xunit;
namespace indice.Edi.Tests
{
public class SeatMapTest
{
[Fact, Trait(Traits.Tag, "EDIFact"), Trait(Traits.Issue, "#999")]
public void EmptySegment_Withought_A_segmentname_separator_should_parse() {
var grammar = EdiGrammar.NewEdiFact();
var interchange = default(Edifact_SeatMap);
using (var stream = Helpers.GetResourceStream("edifact.Issue.SeatMap.edi")) {
interchange = new EdiSerializer().Deserialize<Edifact_SeatMap>(new StreamReader(stream), grammar);
}
Assert.NotNull(interchange);
}
}
}
in a different project using model above i get incorrect deserialize edi
UNA:+.? ' UNB+IATB:1+AA0SM+1APPC+160608:1406+AA507987110001+++T' UNH+1+SMPRES:96:2:IA+09B0661E' TVL+291016+DAL+LAX+AA+0001:Y' EQI+' CBD+Y+7:29+M++N' ROD+7' ROD+8' ROD+9' ROD+10' ROD+11' ROD+12' ROD+13' ROD+14' ROD+15' ROD+16' ROD+17' ROD+18' ROD+19' ROD+20' ROD+21' ROD+22' ROD+23' ROD+24' ROD+25' ROD+26' ROD+27' ROD+28' ROD+29' UNT+28+1' UNZ+1+UB507987110001'
in my other project my model look like this
public UNB Header { get; set; }
public SMPRES SeatMap { get; set; }
public UNZ Footer { get; set; }
[EdiMessage]
public class SMPRES
{
public UNH MessageHeader { get; set; }
public MSG MessageType { get; set; }
public List<TVL_SG> Legs { get; set; }
public UNT MessageFooter { get; set; }
}
[EdiSegmentGroup("TVL", "EQI", "CBD", "ROD_SG")]
public class TVL_SG : TVL
{
public EQI EquipmentInformation { get; set; }
public CBD CabinDetails { get; set; }
public List<ROD_SG> RowDetails { get; set; }
}
[EdiSegmentGroup("ROD")]
public class ROD_SG : ROD
{
}
/// <summary>
/// MESSAGE TYPE IDENTIFICATION
/// </summary>
[EdiSegment, EdiPath("MSG")]
public class MSG
{
[EdiValue(Path = "*/0/0")]
public string BusinessFunctionCoded { get; set; }
[EdiValue(Path = "*/0/1")]
public string MessageFunctionCoded { get; set; }
[EdiValue(Path = "*/0/2")]
public string CodeListQualifier { get; set; }
[EdiValue(Path = "*/0/3")]
public string CodeListResponsibleAgencyCoded { get; set; }
[EdiValue(Path = "*/1/0")]
public string ResponseTypeCoded { get; set; }
}
/// <summary>
/// MESSAGE TYPE IDENTIFICATION
/// </summary>
[EdiSegment, EdiPath("UNB")]
public class UNB
{
#region Interchange Header
[EdiValue(Path = "*/0/0")]
public string SyntaxIdentifier { get; set; }
[EdiValue(Path = "*/0/1")]
public string SyntaxVersionNumber { get; set; }
[EdiValue(Path = "*/1/0")]
public string SenderIdentification { get; set; }
[EdiValue(Path = "*/1/1")]
public string SenderPartnerIdentificationCodeQualifier { get; set; }
[EdiValue(Path = "*/1/2")]
public string AddressForReverseRouting { get; set; }
[EdiValue(Path = "*/2/0")]
public string RecipientIdentification { get; set; }
[EdiValue(Path = "*/2/1")]
public string RecipientPartnerIdentificationCodeQualifier { get; set; }
[EdiValue(Path = "*/2/2")]
public string RoutingAddress { get; set; }
[EdiValue(Path = "*/3/0")]
public string DateOfPreparation { get; set; }
[EdiValue(Path = "*/3/1")]
public string TimeOfPreparation { get; set; }
[EdiValue(Path = "*/4")]
public string InterchangeControlReference { get; set; }
[EdiValue(Path = "*/7")]
public string ProcessingPriorityCode { get; set; }
#endregion Interchange Header
}
/// <summary>
/// MESSAGE TYPE IDENTIFICATION
/// </summary>
[EdiSegment, EdiPath("UNH")]
public class UNH
{
#region Message Header Info
[EdiValue(Path = "*/0")]
public string MessageReferenceNumber { get; set; }
[EdiValue(Path = "*/1/0")]
public string MessageType { get; set; }
[EdiValue(Path = "*/1/1")]
public string MessageTypeVersionNumber { get; set; }
[EdiValue(Path = "*/1/2")]
public string MessageTypeReleaseNumber { get; set; }
[EdiValue(Path = "*/1/3")]
public string ControllingAgency { get; set; }
[EdiValue(Path = "*/2/0")]
public string CommonAccessReference { get; set; }
#endregion Message Header Info
}
/// <summary>
/// departure date/time, origin, destination, operating airline code, flight
/// number, and operation suffix.
/// </summary>
[EdiSegment, EdiPath("TVL")]
public class TVL
{
[EdiValue("9(6)", Path = "*/0/0", Format = "ddMMyy", Description = "Date")]
public string FirstDate { get; set; }
[EdiValue("9(4)", Path = "*/0/1", Format = "HHmm", Description = "Time")]
public string FirstTime { get; set; }
private DateTime? _Arrival;
[EdiValue("9(6)", Path = "*/0/2", Format = "ddMMyy", Description = "Date")]
public string SecodnDate { get; set; }
[EdiValue("9(4)", Path = "*/0/3", Format = "HHmm", Description = "Time")]
public string SecondTime { get; set; }
[EdiValue("X(3)", Path = "*/1/0")]
public string OriginAirport { get; set; }
[EdiValue("X(3)", Path = "*/2/0")]
public string DestinationAirport { get; set; }
[EdiValue("X(3)", Path = "*/3/0")]
public string OperatingAirlineCode { get; set; }
[EdiValue("X(10)", Path = "*/4/0")]
public string FlightNumber { get; set; }
[EdiValue("X(1)", Path = "*/4/1")]
public string BookingCode { get; set; }
[EdiValue("X(1)", Path = "*/7/0")]
public string ProcessingIndicatorCoded { get; set; }
}
/// <summary>
/// C048
/// </summary>
[EdiElement]
public class EQI_ConfigurationDetails
{
[EdiValue(Path = "*/0/0")]
public string CabinClassDesignator { get; set; }
[EdiValue(Path = "*/0/1")]
public string Seats_NumberOfSeats { get; set; }
[EdiValue(Path = "*/0/2")]
public string CharacteristicIdentification { get; set; }
[EdiValue(Path = "*/0/3")]
public string CharacteristicIdentification1 { get; set; }
[EdiValue(Path = "*/0/4")]
public string CharacteristicIdentification2 { get; set; }
[EdiValue(Path = "*/0/5")]
public string CharacteristicIdentification3 { get; set; }
[EdiValue(Path = "*/0/6")]
public string CharacteristicIdentification4 { get; set; }
// There are 24 more CharacteristicIdentification
}
/// <summary>
/// Row Details
/// </summary>
[EdiSegment, EdiPath("ROD")]
public class ROD
{
[EdiValue(Path = "*/0")]
public string SeatRowNumber { get; set; }
[EdiPath("*/1")]
public ROD_RowCharacteristicsDetails RowCharacteristicsDetails { get; set; }
// public List<ROD_SeatOccupationDetails> SeatOccupationDetails { get; set; }
}
/// <summary>
/// C049
/// </summary>
[EdiElement]
public class ROD_RowCharacteristicsDetails
{
[EdiValue(Path = "*/1/0")]
public string RowCharacteristic { get; set; }
[EdiValue(Path = "*/1/1")]
public string RowCharacteristic1 { get; set; }
[EdiValue(Path = "*/1/2")]
public string RowCharacteristic2 { get; set; }
[EdiValue(Path = "*/1/3")]
public string RowCharacteristic3 { get; set; }
[EdiValue(Path = "*/1/4")]
public string RowCharacteristic4 { get; set; }
[EdiValue(Path = "*/1/5")]
public string RowCharacteristic5 { get; set; }
[EdiValue(Path = "*/1/6")]
public string RowCharacteristic6 { get; set; }
[EdiValue(Path = "*/1/7")]
public string RowCharacteristic7 { get; set; }
[EdiValue(Path = "*/1/8")]
public string RowCharacteristic8 { get; set; }
}
/// <summary>
/// C051
/// </summary>
[EdiElement]
public class ROD_SeatOccupationDetails
{
[EdiValue(Path = "*/*/0")]
public string SeatColumn { get; set; }
[EdiValue(Path = "*/*/1")]
public string SeatOccupation { get; set; }
[EdiValue(Path = "*/*/2")]
public string SeatCharacteristicCoded { get; set; }
[EdiValue(Path = "*/*/3")]
public string SeatCharacteristicCoded1 { get; set; }
[EdiValue(Path = "*/*/4")]
public string SeatCharacteristicCoded2 { get; set; }
[EdiValue(Path = "*/*/5")]
public string SeatCharacteristicCoded3 { get; set; }
[EdiValue(Path = "*/*/6")]
public string SeatCharacteristicCoded4 { get; set; }
[EdiValue(Path = "*/*/7")]
public string SeatCharacteristicCoded5 { get; set; }
[EdiValue(Path = "*/*/8")]
public string SeatCharacteristicCoded6 { get; set; }
//there are 30 more record
}
//CabinDetails
/// <summary>
/// Cabin Details
/// </summary>
[EdiSegment, EdiPath("CBD")]
public class CBD
{
[EdiPath("*/0")]
public CBD_CabinClassDesignation CabinClassDesignation { get; set; }
[EdiPath("*/1")]
public CBD_CabinClassSeatRowRangeDetails CabinClassSeatRowRangeDetails { get; set; }
[EdiValue(Path = "*/2")]
public string CabinClassLocation { get; set; }
[EdiPath("*/3")]
public CBD_SmokingAreaSeatRowRangeDetails SmokingAreaSeatRowRangeDetails { get; set; }
[EdiValue(Path = "*/4")]
public string SeatOccupationDefaultIndicator { get; set; }
[EdiPath("*/5")]
public CBD_OverwingSeatRowRange OverwingSeatRowRange { get; set; }
//public List<CBD_CabinWidthAndColumnDetails> CabinWidthAndColumnDetails { get; set; }
}
/// <summary>
/// C342
/// </summary>
[EdiElement]
public class CBD_CabinClassDesignation
{
[EdiValue(Path = "*/0/0")]
public string CabinClassDesignator { get; set; }
[EdiValue(Path = "*/0/1")]
public string CharacteristicIdentification { get; set; }
[EdiValue(Path = "*/0/2")]
public string CabinClassOfServiceCoded { get; set; }
[EdiValue(Path = "*/0/3")]
public string CabinCompartmentDesignator { get; set; }
}
/// <summary>
/// C052
/// </summary>
[EdiElement]
public class CBD_CabinClassSeatRowRangeDetails
{
[EdiValue(Path = "*/1/0")]
public string CabinClassDesignator { get; set; }
[EdiValue(Path = "*/1/1")]
public string CharacteristicIdentification { get; set; }
}
/// <summary>
/// C053
/// </summary>
[EdiElement]
public class CBD_SmokingAreaSeatRowRangeDetails
{
[EdiValue(Path = "*/3/0")]
public string SeatRowNumber { get; set; }
[EdiValue(Path = "*/3/1")]
public string SeatRowNumber1 { get; set; }
}
/// <summary>
/// C058
/// </summary>
[EdiElement]
public class CBD_OverwingSeatRowRange
{
[EdiValue(Path = "*/5/0")]
public string SeatRowNumber { get; set; }
[EdiValue(Path = "*/5/1")]
public string SeatRowNumber1 { get; set; }
}
/// <summary>
/// C054
/// </summary>
[EdiElement]
public class CBD_CabinWidthAndColumnDetails
{
[EdiValue(Path = "*/*/0")]
public string SeatColumn { get; set; }
[EdiValue(Path = "*/*/1")]
public string ColumnDescription { get; set; }
[EdiValue(Path = "*/*/2")]
public string ColumnDescription1 { get; set; }
}
[EdiSegment, EdiPath("UNT")]
public class UNT
{
// 0074 : NOMBRE DE SEGMENTS DANS LE MESSAGE
[EdiValue(Path = "*/0/0", Mandatory = true)]
public int NumberOfSegmentsInAMessage { get; set; }
// 0062 : NUMÉRO DE RÉFÉRENCE DU MESSAGE
[EdiValue("X(14)", Path = "*/1/0", Mandatory = true)]
public string MessageReferenceNumber { get; set; }
}
// Fin d'interchange
[EdiSegment, EdiPath("UNZ")]
public class UNZ
{
// 0036 : COMPTEUR DE CONTROLE DE L’INTERCHANGE
[EdiValue("X(1)", Path = "*/0/0", Mandatory = true)]
public int InterchangeControlCount { get; set; }
// 0020 : REFERENCE DE CONTROLE DE L’INTERCHANGE
[EdiValue("X(14)", Path = "*/1/0", Mandatory = true)]
public string InterchangeControlReference { get; set; }
}
The schema for SMPRES
<xsd:complexType name="SMPRES">
<xsd:annotation>
<xsd:appinfo>96-2 SMPRES</xsd:appinfo>
<xsd:documentation>Seat Map Response</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="UNH-MessageHeader" type="UNH"/>
<xsd:element name="RAD-ResponseAnalysisDetails" type="RAD" minOccurs="0"/>
<xsd:element name="ERD-ErrorInformation" type="ERD" minOccurs="0"/>
<xsd:element name="WAD-WarningInformation" type="WAD" minOccurs="0"/>
<xsd:element name="SRP-SeatRequestParameters" type="SRP" minOccurs="0"/>
<xsd:element name="GROUP_1" type="GROUP_1" minOccurs="0" maxOccurs="5"/>
<xsd:element name="UNT-MessageTrailer" type="UNT"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GROUP_1">
<xsd:sequence>
<xsd:element name="TVL-TravelProductInformation" type="TVL"/>
<xsd:element name="ERD-ErrorInformation" type="ERD" minOccurs="0"/>
<xsd:element name="WAD-WarningInformation" type="WAD" minOccurs="0"/>
<xsd:element name="APD-AdditionalProductDetails" type="APD" minOccurs="0"/>
<xsd:element name="EQI-EquipmentInformation" type="EQI" minOccurs="0"/>
<xsd:element name="GROUP_2" type="GROUP_2" minOccurs="0" maxOccurs="9"/>
<xsd:element name="GROUP_3" type="GROUP_3" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GROUP_2">
<xsd:sequence>
<xsd:element name="CBD-CabinDetails" type="CBD"/>
<xsd:element name="EQN-NumberOfUnits" type="EQN" minOccurs="0"/>
<xsd:element name="CBF-CabinFacilities" type="CBF" minOccurs="0" maxOccurs="9"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GROUP_3">
<xsd:sequence>
<xsd:element name="ROD-RowDetails" type="ROD"/>
<xsd:element name="CBF-CabinFacilities" type="CBF" minOccurs="0" maxOccurs="9"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CBD">
<xsd:sequence>
<xsd:element name="CBD01-CabinClassDesignation">
<xsd:complexType><!--C342-->
<xsd:sequence>
<xsd:element name="CBD0101-CabinClassDesignator" type="type9854"/>
<xsd:element name="CBD0102-CharacteristicIdentification" type="type7037" minOccurs="0"/>
<xsd:element name="CBD0103-CabinClassOfServiceCoded" type="type9873" minOccurs="0"/>
<xsd:element name="CBD0104-CabinCompartmentDesignator" type="type9992" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CBD02-CabinClassSeatRowRangeDetails">
<xsd:complexType><!--C052-->
<xsd:sequence>
<xsd:element name="CBD0201-SeatRowNumber" type="type9830"/>
<xsd:element name="CBD0202-SeatRowNumber" type="type9830"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CBD03-CabinClassLocation" type="type9863" minOccurs="0"/>
<xsd:element name="CBD04-SmokingAreaSeatRowRangeDetails" minOccurs="0">
<xsd:complexType><!--C053-->
<xsd:sequence>
<xsd:element name="CBD0401-SeatRowNumber" type="type9830"/>
<xsd:element name="CBD0402-SeatRowNumber" type="type9830"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CBD05-SeatOccupationDefaultIndicator" type="type9883" minOccurs="0"/>
<xsd:element name="CBD06-OverwingSeatRowRange" minOccurs="0">
<xsd:complexType><!--C058-->
<xsd:sequence>
<xsd:element name="CBD0601-SeatRowNumber" type="type9830"/>
<xsd:element name="CBD0602-SeatRowNumber" type="type9830"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CBD07-CabinWidthAndColumnDetails" minOccurs="0" maxOccurs="12">
<xsd:complexType><!--C054-->
<xsd:sequence>
<xsd:element name="CBD0701-SeatColumn" type="type9831"/>
<xsd:element name="CBD0702-ColumnDescription" type="type9882" minOccurs="0"/>
<xsd:element name="CBD0703-ColumnDescription" type="type9882" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ROD">
<xsd:sequence>
<xsd:element name="ROD01-SeatRowNumber" type="type9830"/>
<xsd:element name="ROD02-RowCharacteristicsDetails" minOccurs="0">
<xsd:complexType><!--C049-->
<xsd:sequence>
<xsd:element name="ROD0201-RowCharacteristic" type="type9864"/>
<xsd:element name="ROD0202-RowCharacteristic" type="type9864" minOccurs="0"/>
<xsd:element name="ROD0203-RowCharacteristic" type="type9864" minOccurs="0"/>
<xsd:element name="ROD0204-RowCharacteristic" type="type9864" minOccurs="0"/>
<xsd:element name="ROD0205-RowCharacteristic" type="type9864" minOccurs="0"/>
<xsd:element name="ROD0206-RowCharacteristic" type="type9864" minOccurs="0"/>
<xsd:element name="ROD0207-RowCharacteristic" type="type9864" minOccurs="0"/>
<xsd:element name="ROD0208-RowCharacteristic" type="type9864" minOccurs="0"/>
<xsd:element name="ROD0209-RowCharacteristic" type="type9864" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ROD03-SeatOccupationDetails" minOccurs="0" maxOccurs="12">
<xsd:complexType><!--C051-->
<xsd:sequence>
<xsd:element name="ROD0301-SeatColumn" type="type9831"/>
<xsd:element name="ROD0302-SeatOccupation" type="type9865" minOccurs="0"/>
<xsd:element name="ROD0303-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0304-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0305-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0306-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0307-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0308-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0309-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0310-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0311-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0312-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0313-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0314-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0315-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0316-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0317-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0318-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0319-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0320-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0321-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0322-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0323-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0324-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0325-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0326-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0327-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0328-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0329-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0330-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0331-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0332-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0333-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0334-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0335-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0336-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0337-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0338-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0339-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
<xsd:element name="ROD0340-SeatCharacteristicCoded" type="type9825" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>