We recently received a support ticket with a question with regards to defining arrays in XML and using them within the C# code generated from Liquid XML Objects.
XML Schema (XSD)
The following demonstrates XML Schema (XSD) two ways to do this, either using an attribute list or a list of elements.

<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid Studio (https://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MyData">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="UIntData" type="xs:unsignedInt" minOccurs="10" maxOccurs="10" />
</xs:sequence>
<xs:attribute name="ByteData" use="required">
<xs:simpleType>
<xs:list itemType="xs:byte" />
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>
XML Data
The following XML data is valid against the above XML Schema (XSD) and demonstrates a list of values in the ByteData attribute and a list of values as UIntData elements.
<?xml version="1.0" encoding="utf-8"?>
<!-- Created with Liquid Studio (https://www.liquid-technologies.com) -->
<MyData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="C:\Temp\ListExample.xsd"
ByteData="16 -23 -125 -114 50 -14">
<Name>string</Name>
<UIntData>5505</UIntData>
<UIntData>5285</UIntData>
<UIntData>4753</UIntData>
<UIntData>8634</UIntData>
<UIntData>8294</UIntData>
<UIntData>4300</UIntData>
<UIntData>990</UIntData>
<UIntData>1661</UIntData>
<UIntData>3025</UIntData>
<UIntData>5070</UIntData>
</MyData>
XML Data Binding Source Code (C#)
If you use Liquid XML Objects to generate code from the XSD, you will see the following properties in the generated code to access the array data:
// attribute list will use...
public System.SByte[] ByteData { get; set; } = new System.SByte[] {};
// element list will use...
public List<System.UInt32> UIntData { get; } = new List<System.UInt32>();
What is Liquid XML Objects?
Liquid XML Objects provides a direct replacement for Microsoft Visual Studio's xsd.exe with better XSD 1.0 standard support and support for W3C XSD 1.1.
Liquid XML Objects Features
- Fully Integrated as a Microsoft Visual Studio extension.
- Generates an easy to use class library for C# and Visual Basic .Net.
- Replace xsd.exe with better XSD 1.0 support and adds support for XSD 1.1.
- Generate simple light weight classes which follow the structure of the XML.
- Supports .Net Core, .Net Standard and .Net Framework
- Supports W3C XML Schema for XSD 1.0 and XSD 1.1 standards.
- Support for the most complex XML standards.
- Royalty free distribution of compiled code and runtime.
Download a Free Trial:
https://www.liquid-technologies.com/trial-download