XSDファイルで初期化されたXmlSchemaオブジェクトを使用しています。 XSDファイルにはいくつかのバリデーションルール(type、min、maxなど)が含まれており、一部の要素にはデフォルト値属性があります。ここXmlSchemaからデフォルト値を取得する方法
短い例である:
1. XMLファイル:
<person>
<first>john</first>
<last>doe</last>
<age>50</age>
</person>
XMLは、XmlDocumentオブジェクトにロードされています。
2. XSDファイル:
<?xml version="1.0" encoding="iso-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="person" >
<xs:complexType>
<xs:all>
<xs:element name ="first" type="xs:string" minOccurs="0"/>
<xs:element name ="last" type="xs:string" minOccurs="0"/>
<xs:element name ="age" type="xs:integer" minOccurs="0" default="30"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
XSDは、XMLSchemaオブジェクトにロードされています。
3.検証と通常のXML解析を実行せずに、デフォルトの値を取得する必要があります。検証を実行する必要がある場合、ノードが正常に検証された場合、どのように値を取得できますか(検証ハンドラはそれが成功すると呼ばれる)?
IXmlSchemaInfo.SchemaElement
で値を取得しようとしましたが、検証が行われた後にnullに設定されています。
OK、いくつかの明確化:
デフォルト値は、ユーザーが年齢要素を割り当てていないデフォルト値を意味しています。 XMLはされている可能性が:
<person>
<first>john</first>
<last>doe</last>
<age></age>
</person>
私はより正確にしようとするでしょう:
- 私は3つのテキストボックス、txtFirst、txtLast、およびtxtAgeを持っています。
- 私は3つのプロパティを持つデータオブジェクトを持っています。最初、最後と年齢。
- テキストボックスは、XMLファイルに基づいて初期化されているデータオブジェクトにバインドされたので、「年齢」の値がないとき、私は、スキーマ
あなたは 'default value'によって何を意味するのかはっきりしないが、スキーマで許容される最も低い有効な値は? xmlにはすでに値があるようです。実際のスキーマと実際のxmlを入力してください。 – Jodrell