2011-12-06 76 views
2
水平

我已經創建了開始像下面這樣的架構定義...的XmlSchema閱讀註釋在

<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(); 

但我無法找回我的註釋,我錯過了什麼?

增加: Thankd到莫拉夫斯基答覆,我最終的代碼是:

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; 
             } 
            } 

嗯,我真的suppossed應該是簡單的:)

回答

1

應當注意各元素的允許的子元素的組在XmlSchema類中具有對應的屬性,除了一個元素。這導致一些人認爲,不能從XmlSchema類獲得註釋,但事實並非如此。註釋可以從XmlSchema類的Items屬性中檢索。以下代碼示例演示如何在books.xsd模式中打印註釋的內容。

Secrets of the System.Xml.Schema Namespace (on MSDN)

(注:2004年;沒有經過測試,未證實)

+0

#Moeawski,感謝我測試和確認工作,我說我在問題中所使用的代碼。 –

+0

@FelicePollano謝謝,很高興我能幫上忙。 –