C# Sample : Simple Sequence
Schema Summary This sample shows an element containing a sequence of simple elements and attributes. Schema Details The Element DVD contains a sequence of simple elements (simple because they are represented by primitives). All of these elements are required, and they must appear in the correct order. In addition the DVD element contains 2 attributes Genre and Cost. Genre is optional, Cost is Mandatory. Because Genre is optional, and contains primitive data, an IsValidGenre method is added to the generated DVD object. This allows you to determine if Genre was set or not. The generated classes take car of outputting the child elements in the correct order. Sample Description The sample demonstrates the element with all of the optional elements present. Note Genre is an optional primitive, so we should check it using the IsValid flag before accessing it |
Sample XML File
![]() ![]() |
<?xml version="1.0" encoding="UTF-8"?> <DVD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="..\Schema\SimpleSequence.xsd" Cost="12.99" Genre="Horror"> <Title>From Hell</Title> <Description>A film about Jack the Ripper</Description> <ReleaseDate>2001-08-15</ReleaseDate> </DVD> |
![]() ![]() |
|
public static void SampleRead(string FilePath) { // Create DVD object SimpleSequenceLib.DVD dvd = new SimpleSequenceLib.DVD(); // Load data into the object from a file dvd.FromXmlFile(FilePath); // Now we can look at the data Console.WriteLine("DVD Title = {0}", dvd.Title); Console.WriteLine("DVD Description = {0}", dvd.Description); Console.WriteLine("DVD Release Date = {0}", dvd.ReleaseDate.ToString()); Console.WriteLine("DVD Cost = {0}", dvd.Cost); if (dvd.Genre != null) Console.WriteLine("DVD Genre = {0}", dvd.Genre); SampleRead(MainCls.SamplePath + "SimpleSequence\\Samples\\Sample2.xml");
|
![]() ![]() |
|
// Create DVD object SimpleSequenceLib.DVD dvd = new SimpleSequenceLib.DVD(); // Now we can look at the data dvd.Title = "From Hell"; dvd.Description = "A film about Jack the Ripper"; dvd.ReleaseDate.SetDate(2001, 8, 15); dvd.Cost = 12.99; dvd.Genre = "Horror"; // Now we can look at the XML from this object Console.WriteLine(dvd.ToXml(true, System.Xml.Formatting.Indented, LiquidTechnologies.Runtime.EOLType.CRLF));
|
![]() ![]() |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="DVD"> <xs:complexType> <xs:sequence> <xs:element name="Title" type="xs:string"/> <xs:element name="Description" type="xs:string"/> <xs:element name="ReleaseDate" type="xs:date"/> </xs:sequence> <xs:attribute name="Genre" type="xs:string" use="optional"/> <xs:attribute name="Cost" type="xs:double" use="required"/> </xs:complexType> </xs:element> </xs:schema> |
![]() ![]() |
![]() |
![]() ![]() |
���using System; using System.Xml; /********************************************************************************************** * Copyright (c) 2001-2023 Liquid Technologies Limited. All rights reserved. * See www.liquid-technologies.com for product details. * * Please see products End User License Agreement for distribution permissions. * * WARNING: THIS FILE IS GENERATED * Changes made outside of ##HAND_CODED_BLOCK_START blocks will be overwritten * * Generation : by Liquid XML Data Binder 19.0.14.11049 * Using Schema: SimpleSequence.xsd **********************************************************************************************/ namespace SimpleSequenceLib { /// <summary> /// This class represents the Element DVD /// </summary> [LiquidTechnologies.Runtime.XmlObjectInfo(LiquidTechnologies.Runtime.XmlObjectBase.XmlElementGroupType.Sequence, LiquidTechnologies.Runtime.XmlObjectBase.XmlElementType.Element, "DVD", "", true, false, false)] public partial class DVD : SimpleSequenceLib.XmlCommonBase { #region Constructors /// <summary> /// Constructor for DVD /// </summary> /// <remarks> /// The class is created with all the mandatory fields populated with the /// default data. /// All Collection object are created. /// However any 1-n relationships (these are represented as collections) are /// empty. To comply with the schema these must be populated before the xml /// obtained from ToXml is valid against the schema SimpleSequence.xsd /// </remarks> public DVD() { _elementName = "DVD"; Init(); } public DVD(string elementName) { _elementName = elementName; Init(); } #endregion #region Initialization methods for the class /// <summary> /// Initializes the class /// </summary> /// <remarks> /// This creates all the mandatory fields (populated with the default data) /// All Collection object are created. /// However any 1-n relationships (these are represented as collections) are /// empty. To comply with the schema these must be populated before the xml /// obtained from ToXml is valid against the schema SimpleSequence.xsd. /// </remarks> protected override void Init() { SimpleSequenceLib.Registration.iRegistrationIndicator = 0; // causes registration to take place m_Genre = null; m_Cost = 0; m_Title = ""; m_Description = ""; m_ReleaseDate = new LiquidTechnologies.Runtime.XmlDateTime(LiquidTechnologies.Runtime.XmlDateTime.DateType.date); // ##HAND_CODED_BLOCK_START ID="Additional Inits"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS // Add Additional initialization code here... // ##HAND_CODED_BLOCK_END ID="Additional Inits"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS } #endregion #region ICloneable Interface /// <summary> /// Allows the class to be copied /// </summary> /// <remarks> /// Performs a 'deep copy' of all the data in the class (and its children) /// </remarks> public override object Clone() { SimpleSequenceLib.DVD newObject = new SimpleSequenceLib.DVD(_elementName); newObject.m_Genre = m_Genre; newObject.m_Cost = m_Cost; newObject.m_Title = m_Title; newObject.m_Description = m_Description; newObject.m_ReleaseDate = (LiquidTechnologies.Runtime.XmlDateTime)m_ReleaseDate.Clone(); // ##HAND_CODED_BLOCK_START ID="Additional clone"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS // Add Additional clone code here... // ##HAND_CODED_BLOCK_END ID="Additional clone"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS return newObject; } #endregion #region Member variables protected override string TargetNamespace { get { return ""; } } #region Attribute - Genre /// <summary> /// Represents an optional Attribute in the XML document /// </summary> /// <remarks> /// This property is represented as an Attribute in the XML. /// It is optional, initially it is not valid. /// </remarks> [LiquidTechnologies.Runtime.AttributeInfoPrimitive("Genre", "", true, LiquidTechnologies.Runtime.Conversions.ConversionType.type_string, null, LiquidTechnologies.Runtime.WhitespaceUtils.WhitespaceRule.Preserve, "", -1, -1, "", "", "", "", -1, -1, -1, null)] public string Genre { get { return m_Genre; } set { if (value == null) { m_Genre = null; } else { // Apply whitespace rules appropriately value = LiquidTechnologies.Runtime.WhitespaceUtils.Preserve(value); m_Genre = value; } } } protected string m_Genre; #endregion #region Attribute - Cost /// <summary> /// Represents a mandatory Attribute in the XML document /// </summary> /// <remarks> /// This property is represented as an Attribute in the XML. /// It is mandatory and therefore must be populated within the XML. /// It is defaulted to 0. /// </remarks> [LiquidTechnologies.Runtime.AttributeInfoPrimitive("Cost", "", LiquidTechnologies.Runtime.Conversions.ConversionType.type_r8, null, LiquidTechnologies.Runtime.WhitespaceUtils.WhitespaceRule.Collapse, "", -1, -1, "", "", "", "", -1, -1, -1, null)] public double Cost { get { return m_Cost; } set { m_Cost = value; } } protected double m_Cost; #endregion #region Attribute - Title /// <summary> /// Represents a mandatory Element in the XML document /// </summary> /// <remarks> /// This property is represented as an Element in the XML. /// It is mandatory and therefore must be populated within the XML. /// It is defaulted to "". /// </remarks> [LiquidTechnologies.Runtime.ElementInfoSeqPrimMnd("Title", "", null, LiquidTechnologies.Runtime.Conversions.ConversionType.type_string, null, LiquidTechnologies.Runtime.WhitespaceUtils.WhitespaceRule.Preserve, "", -1, -1, "", "", "", "", -1, -1, -1, null)] public string Title { get { return m_Title; } set { // Apply whitespace rules appropriately value = LiquidTechnologies.Runtime.WhitespaceUtils.Preserve(value); m_Title = value; } } protected string m_Title; #endregion #region Attribute - Description /// <summary> /// Represents a mandatory Element in the XML document /// </summary> /// <remarks> /// This property is represented as an Element in the XML. /// It is mandatory and therefore must be populated within the XML. /// It is defaulted to "". /// </remarks> [LiquidTechnologies.Runtime.ElementInfoSeqPrimMnd("Description", "", null, LiquidTechnologies.Runtime.Conversions.ConversionType.type_string, null, LiquidTechnologies.Runtime.WhitespaceUtils.WhitespaceRule.Preserve, "", -1, -1, "", "", "", "", -1, -1, -1, null)] public string Description { get { return m_Description; } set { // Apply whitespace rules appropriately value = LiquidTechnologies.Runtime.WhitespaceUtils.Preserve(value); m_Description = value; } } protected string m_Description; #endregion #region Attribute - ReleaseDate /// <summary> /// Represents a mandatory Element in the XML document /// </summary> /// <remarks> /// This property is represented as an Element in the XML. /// It is mandatory and therefore must be populated within the XML. /// It is defaulted to new LiquidTechnologies.Runtime.XmlDateTime(LiquidTechnologies.Runtime.XmlDateTime.DateType.date). /// </remarks> [LiquidTechnologies.Runtime.ElementInfoSeqPrimMnd("ReleaseDate", "", null, LiquidTechnologies.Runtime.Conversions.ConversionType.type_date, null, LiquidTechnologies.Runtime.WhitespaceUtils.WhitespaceRule.Collapse, "", -1, -1, "", "", "", "", -1, -1, -1, null)] public LiquidTechnologies.Runtime.XmlDateTime ReleaseDate { get { return m_ReleaseDate; } set { m_ReleaseDate.SetDateTime(value, m_ReleaseDate.Type); } } protected LiquidTechnologies.Runtime.XmlDateTime m_ReleaseDate; #endregion #region Attribute - Namespace public override string Namespace { get { return ""; } } #endregion #region Attribute - GetBase public override LiquidTechnologies.Runtime.XmlObjectBase GetBase() { return this; } #endregion #endregion // ##HAND_CODED_BLOCK_START ID="Additional Methods"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS // Add Additional Methods and members here... // ##HAND_CODED_BLOCK_END ID="Additional Methods"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS } } |
Main Menu | Samples List |