在 C# 中将 SqlXml 转换为 XmlDocument 以获得 SQLCLR 函数的快速方法?
Quick way SqlXml to XmlDocument in C# for a SQLCLR function?
在没有中间 string
的情况下将 SqlXml
加载到 XmlDocument
(如果有)的更好方法是什么?
我需要使用 CLR UDF
中数据库中的 xsd
来验证 xml
。我尝试优化我的代码。
我的代码是:
schema1 = XmlSchema.Read(new StringReader(cXmlSchemaText), ValidateSchema);
asset1.Schemas.Add(schema1);
asset1.LoadXml(ValueString.ToString());
asset1.Validate(ValidateXmlValue);
其中 ValueString
是我的 SqlXml
。
首先,即使 .ToString()
和 .Value
返回相同的字符串值,为了在 ValueString.Value
中访问值的一致性,最好使用 ValueString.Value
=14=] 类型。
您应该能够使用 SqlXml.CreateReader 方法跳过中间字符串,根据文档,该方法应该返回 SqlXml 变量的内部 XmlReader。您的代码将稍微更改为:
asset1.Load(ValueString.CreateReader());
在没有中间 string
的情况下将 SqlXml
加载到 XmlDocument
(如果有)的更好方法是什么?
我需要使用 CLR UDF
中数据库中的 xsd
来验证 xml
。我尝试优化我的代码。
我的代码是:
schema1 = XmlSchema.Read(new StringReader(cXmlSchemaText), ValidateSchema);
asset1.Schemas.Add(schema1);
asset1.LoadXml(ValueString.ToString());
asset1.Validate(ValidateXmlValue);
其中 ValueString
是我的 SqlXml
。
首先,即使 .ToString()
和 .Value
返回相同的字符串值,为了在 ValueString.Value
中访问值的一致性,最好使用 ValueString.Value
=14=] 类型。
您应该能够使用 SqlXml.CreateReader 方法跳过中间字符串,根据文档,该方法应该返回 SqlXml 变量的内部 XmlReader。您的代码将稍微更改为:
asset1.Load(ValueString.CreateReader());