XmlSchemaException이 나에게 던지고 있다는 메시지에 당황 스럽다. 내가 약간의 문맥을 제공하게해라. 내 응용 프로그램에서 "IFU"와 "CC"의 두 가지 유형의 XML 참조 테이블을 사용합니다. 둘 다 자체 스키마가 정의되어 있습니다. 파일을로드 할 때이 스키마를 사용하여 파일의 유효성을 검사하면 완벽하게 작동합니다. 뭔가 잘못 될 때까지.XmlSchemaExeption wrong message
응용 프로그램이 IFU 심판 테이블을 기대하고있다(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>
참조 테이블은 루트 노드 ("IFUReferenceTable"대신 "CCRefenerceTable")와 동일한 것으로 나타납니다.
무엇이 누락 되었습니까?
시간 내 주셔서 감사합니다.글쎄, 이제 나는 어리 석다. 꽤 분명했다. 아직도, 그것은 약간 오도하는 것입니다. – MichalW