XmlSchema读取注释的水平
本文关键字:水平 schema 读取 注释 XmlSchema | 更新日期: 2023-09-27 18:16:50
我已经创建了一个模式定义,开始如下…
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:my.namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:it="urn:mynamespace">
<xs:annotation>
<xs:appinfo>My annotation</xs:appinfo>
</xs:annotation>
然后加载模式并使用以下命令编译它:
System.Xml.Schema.XmlSchemaSet set = new System.Xml.Schema.XmlSchemaSet();
set.Add(schema);
set.Compile();
但是我无法取回我的注释,我错过了什么?
添加:感谢Morawski的回复,我最终得到的代码是:
string appInfoValue = string.Empty;
var annotation = schema.Items.OfType<XmlSchemaAnnotation>().FirstOrDefault();
if (null != annotation)
{
var appInfo = annotation.Items.OfType<XmlSchemaAppInfo>().FirstOrDefault();
if (null != appInfo)
{
appInfoValue = appInfo.Markup[0].InnerText;
}
}
嗯,我真的认为应该更简单:)
应该注意的是,除了elements之外,元素允许的每一个子元素组在XmlSchema类中都有相应的属性。这导致一些人认为不能从XmlSchema类获得注释,但事实并非如此。可以从XmlSchema类的Items属性中检索注解。下面的代码示例显示了如何在图书中打印注释的内容。xsd模式。
System.Xml.Schema命名空间的秘密(MSDN)
(注:日期为2004;未检测,未确认)