XmlSchemaValidationFlags 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
指定 XmlSchemaValidator 和 XmlReader 類別所使用的架構驗證選項。
此列舉支援其成員值的位元組合。
public enum class XmlSchemaValidationFlags
[System.Flags]
public enum XmlSchemaValidationFlags
[<System.Flags>]
type XmlSchemaValidationFlags =
Public Enum XmlSchemaValidationFlags
- 繼承
- 屬性
欄位
| 名稱 | 值 | Description |
|---|---|---|
| None | 0 | 請勿處理身份約束、內嵌結構、結構位置提示或報告結構驗證警告。 |
| ProcessInlineSchema | 1 | 驗證過程中遇到的流程內聯結構。 |
| ProcessSchemaLocation | 2 | 在驗證過程中遇到的程序結構位置提示( |
| ReportValidationWarnings | 4 | 回報驗證過程中遇到的結構驗證警告。 |
| ProcessIdentityConstraints | 8 | 驗證過程中遇到的程序身份約束( |
| AllowXmlAttributes | 16 | 即使 xml:* 屬性在結構中未定義,也要允許。 屬性會根據資料型別進行驗證。 |
範例
使用列舉的XmlSchemaValidationFlags例子請參見類別。XmlSchemaValidator
備註
當與 一起使用 XmlReader時, XmlSchemaValidationFlags 值定義了驗證選項,供模式 XmlReader 驗證以對結構進行 XML 驗證。
XmlSchemaValidationFlags 驗證值的值 XmlReader 是利用 屬性 XmlReaderSettings.ValidationFlags 來指定。
使用 AllowXmlAttributes 該數值時:
當結構沒有匯入 XML 命名空間時,
若
AllowXmlAttributes設為true(預設值),且實例文件包含 XML 屬性,驗證引擎會載入預設 XML 命名空間架構的快照並用於驗證。 如果實例文件中使用的 XML 屬性在預設架構中找不到,文件將無法驗證。若
AllowXmlAttributes設定為 且false實例文件包含 Xml 屬性,驗證引擎會回報錯誤。
當結構匯入 XML 命名空間卻沒有位置時,
若
AllowXmlAttributes設為true(default),且實例文件包含 XML 屬性,驗證引擎將使用預設的 XML 命名空間架構進行驗證。 如果實例文件中使用的 XML 屬性在預設架構中找不到,文件將無法驗證。如果
AllowXmlAttributes設定為 ,false且實例文件包含結構未明確允許的 XML 屬性,驗證引擎會回報錯誤。若
AllowXmlAttributes設定為 ,false且實例文件包含結構明確允許的 XML 屬性,驗證引擎將以使用預設 XML 命名空間架構驗證其他屬性的方式來驗證這些屬性。
當結構匯入自訂的 XML 命名空間架構時,會使用自訂的 schemaLocation。
若
AllowXmlAttributes設為true(預設)且實例文件包含 XML 屬性,驗證引擎將使用自訂的 XML 命名空間結構進行驗證。 若實例文件中使用的 XML 屬性未在指定結構中找到,文件將無法驗證。如果
AllowXmlAttributes設定為 ,false且實例文件包含結構未明確允許的 XML 屬性,驗證引擎會回報錯誤。若
AllowXmlAttributes設定為 ,false且實例文件包含結構明確允許的 XML 屬性,驗證引擎將以同樣方式驗證這些屬性,使用指定的 XML 命名空間結構驗證其他屬性。
當結構定義一個 use=“required” 的 xml:* 屬性時,
- 當
AllowXmlAttributes設定為true和false時,以下情況適用。 所需的 xml:* 屬性應視為其他屬性,並依指定的 XML 命名空間架構進行驗證。
- 當
當結構定義 use=“prohibited” 的 xml:* 屬性時,
- 當
AllowXmlAttributes設定為true和false時,以下情況適用。 如果實例文件包含結構明確禁止的 xml:* 屬性,驗證引擎會回報錯誤。
- 當
當結構指定屬性時,萬用符。
若實例文件包含 XML 屬性,且結構指定屬性通配符,且 processContents 要麼省略或設為「嚴格」,驗證引擎將使用 XmlSchemaSet. 若未指定 XML 命名空間結構,驗證引擎的行為將如下。
若
AllowXmlAttributes設true為 ,驗證引擎將使用預設的 XML 命名空間結構來執行驗證。若
AllowXmlAttributes設為false,驗證引擎會回報錯誤。如果實例文件包含 XML 屬性,且結構指定屬性通達卡且 processContents 設為「skip」,驗證引擎將跳過屬性驗證。
若實例文件包含 XML 屬性,且結構指定屬性通配符,且 processContents 設為「lax」,驗證引擎將使用 . XmlSchemaSet中存在的 XML 命名空間結構。 若未指定 XML 命名空間結構,驗證引擎的行為將如下。
若
AllowXmlAttributes設true為 ,驗證引擎將使用預設的 XML 命名空間結構來執行驗證。若
AllowXmlAttributes設為false,則不會進行屬性驗證。
在驗證簡單型別時,
- 當
AllowXmlAttributes設為true(預設)時,簡單型別的元素將允許使用 XML 屬性。
- 當