如何从XmlSchema中获取默认值
本文关键字:获取 默认值 XmlSchema | 更新日期: 2023-09-27 17:58:45
我正在处理一个用XSD文件初始化的XmlSchema对象。XSD文件包含一些验证规则(type、min、max等),其中一些元素具有默认值属性。
下面是一个简短的例子:
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解析的情况下检索age的默认值,如果必须执行验证,如果节点验证成功(成功时不会调用验证处理程序),我如何检索该值?
我试图用IXmlSchemaInfo.SchemaElement
获取值,但在验证后它被设置为null。
好的,一些澄清:
默认值表示用户未分配年龄元素时的默认值。XML可能是:
<person>
<first>john</first>
<last>doe</last>
<age></age>
</person>
我会尽量更精确:
- 我有三个文本框,txtFirst、txtLast和txtAge
- 我有一个具有三个属性的数据对象。第一、最后和年龄
- 文本框绑定到基于XML文件初始化的数据对象,因此当"age"没有值时,我希望从架构中检索它
有一个关于如何遍历MSDN上的XmlSchema
对象的代码示例:遍历XML架构。
通过这种方式,您可以读取给定元素的default
属性的值。