【发布时间】:2016-11-01 12:41:28
【问题描述】:
我想验证或查找 XSD 文件中是否存在元素。
我的 XSD 架构如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!-- XSD -->
<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://integration.cbre.com/schemas/gws/processinvoice/v1" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:simpleType name="Type_DATE">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Type_Document1">
<xs:sequence>
<xs:element name="ID" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Address" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="City" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="State" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Comments" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Type_Document2">
<xs:sequence>
<xs:element name="Sender" type="Type_Document1" minOccurs="0" maxOccurs="1"/>
<xs:element name="Receiver" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Email" type="xs:string" maxOccurs="1"/>
<xs:element name="Type" type="xs:string" maxOccurs="1"/>
<xs:element name="Remarks" type="Type_Document3" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Type_Document3">
<xs:sequence>
<xs:element name="Phone" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Fax" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Email" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Address" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Comments" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
现在在 c# 或 vb.net 中,我需要验证 XSD 架构中是否存在特定字段。
例如如果我将以下参数传递给函数,它应该返回 true
- ValidateColumn("Type_Document1","State")
- ValidateColumn("Document1","State")
//如果我们通过了Document1,应该使用like来匹配Type_Document1
Function ValidateColumn(Type as string, Element as string) as boolean
End Function
但是如果通过跟随那么它应该返回false,因为这些元素不存在。
- ValidateColumn("Type_Document2 ","Designation")
- ValidateColumn("Document2","Title")
【问题讨论】:
标签: c# .net vb.net xsd xsd-validation