概述
XmlValidateByXsd("xml文本内容","xsd所在目录");
//如果返回不为空 说明xml格式不符合规范
/// <summary>
/// 通过xsd验证xml格式是否正确,正确返回空字符串,错误返回提示
/// </summary>
/// <param name="xmlText">xml文本内容</param>
/// <param name="schemaFile">xsd文件</param>
/// <returns></returns>
public static string XmlValidateByXsd(string xmlText,string schemaFile)
{
StringBuilder sb=new();
XmlReaderSettings settings = new()
{
ValidationType = ValidationType.Schema
};
settings.Schemas.Add(null, schemaFile);
settings.ValidationEventHandler += (x, y) =>
{
sb.AppendFormat("{0}n", y.Message);
};
using(XmlReader reader=XmlReader.Create(new StringBuilder(xmlText),settings))
{
try
{
while(reader.Read());
}
catch(XmlException ex)
{
sb.AppendFormat("{0}n",ex.Message);
}
}
return sb.ToString();
}
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:annotation>
<xs:documentation> 本文档定义通用参数xml格式 </xs:documentation>
</xs:annotation>
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="area" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="para" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
</xs:sequence>
<xs:attribute name="name">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="50"/>
</xs:simpleType>
</xs:attribute >
<xs:attribute name="title">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="500"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="maxlength">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="9999"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="minlength">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="9999"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
<xs:enumeration value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="isreqired">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="1"/>
<xs:enumeration value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" use="required"/>
<xs:attribute name="title" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
需要验证的内容
/// <summary>
/// 判断字符串是不是xml格式
/// </summary>
/// <param name="strXml">需要验证得字符串</param>
/// <returns></returns>
public static bool IsXml(this string strXml)
{
try
{
XmlDocument xml = new();
xml.LoadXml(strXml);//判断是否加载成功
return true;//是xml文件,返回
}
catch
{
return false;//不是xml文件,返回
}
}
最后
以上就是平常乐曲为你收集整理的.net core XSD验证XML字符串的全部内容,希望文章能够帮你解决.net core XSD验证XML字符串所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复