我很困惑XmlSchemaException正在向我拋出一個消息。讓我提供一些背景。 在我的應用程序中,我使用兩種類型的XML參考表:「IFU」和「CC」,都有自己的模式定義。當我加載文件時,我通過使用這些模式來驗證它們,並且它的工作完美。直到出現問題。XmlSchemaExeption錯誤消息
當應用程序被期待IFU REF表(IFU模式選擇的)和我加載CC表代替,當檢測到錯誤時,行號擬合(2),但該消息說:
ë .Message =「CCReferenceTable」元素沒有聲明。「
,而應該說
e.Message = 「的 」IFUReferenceTable「 元素未聲明。」
現在,代碼片段:
loadXML的常規
public XmlDocument LoadXML(string filePath, string schemaFilePath)
{
Directory.SetCurrentDirectory(System.IO.Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory));
if (!DoesFileExist(filePath))
throw new Exception(String.Format("File {0} does not exist.", filePath));
if (!DoesFileExist(schemaFilePath))
throw new Exception(String.Format("File {0} does not exist.", schemaFilePath));
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add(null, schemaFilePath);
settings.ValidationType = ValidationType.Schema;
XmlDocument document = new XmlDocument();
using (XmlReader reader = XmlReader.Create(filePath, settings))
{
document.Load(reader);
}
return document;
}
的XmlSchema
<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="IfuReferenceTable">
//////////Other content
</xs:element>
</xs:schema>
XML Refernce表
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<IfuReferenceTable>
//////////Other content
</IfuReferenceTable>
CC Ref表看起來與根節點相同(「CCRefenerceTable」而不是「IFUReferenceTable」)。
我錯過了什麼?
感謝您花時間回答我的問題。那麼,現在我覺得很傻 - 這很明顯。不過,這有點誤導。 – MichalW