Search code examples
c#xsdmaxlength

In C#, how to determine the XSD-defined MaxLength for an element


I'm using XmlReader with an attached XSD for validation.

As my XML document is being read and validated, I want to determine in my C# code the 'maxLength' value specified in the XSD for a particular element. For example, my XSD fragment is very simply defined as:

<xsd:element name="testing" minOccurs="0">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="10"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:element>

I can get the 'minOccurs' value easily using:

myReader.SchemaInfo.SchemaElement.MinOccurs;

But how do I get the 'maxLength' value (value of 10 in my example fragment above)???

I thought 'myReader.SchemaInfo.SchemaElement.Constraints' might give me this information, but that collection always has a 'Count' of zero.

Thanks,

Pat.


Solution

  • you'll find here:Accessing XML Schema Information During Document Validation a good explanation of how to do this & more.