Frage

Ich bin mit XmlReader mit einem daran befestigten XSD für die Validierung.

Als mein XML-Dokument gelesen wird und validiert, mag ich in meinem C # -Code bestimmen, die in der XSD angegeben ‚maxLength‘ Wert für ein bestimmtes Element. Zum Beispiel ist mein XSD-Fragment sehr einfach definiert als:

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

Ich kann den 'minOccurs' get Wert einfach mit:

myReader.SchemaInfo.SchemaElement.MinOccurs;

Aber wie ich die 'maxLength' Wert (Wert von 10 in meinem Beispiel Fragmente oben) bekomme ???

Ich dachte, ‚myReader.SchemaInfo.SchemaElement.Constraints‘ mir geben könnte diese Informationen, aber das Sammlung hat immer ein ‚Count‘ von Null.

Danke,

Pat.

War es hilfreich?

Lösung

finden Sie hier: Accessing XML Schema Information During Document Validation eine gute Erklärung, wie diese und mehr zu tun.

Andere Tipps

Es gibt Möglichkeiten, so mit myReader.SchemaInfo zu tun (najmeddine Antwort sehen), aber im Fall, dass Sie den Zugriff auf Sachen nicht in dem Objekt Schema ausgesetzt ...

.. XSD ist eine XML-Sprache. Sie können einfach die XSD-Datei laden und mit XPath die „testing“ Elemente Definition finden, und seine maxLength.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top