2013-03-22 4 views
0

Я пытаюсь добавить xsd в XmlSchemaSet, но получить следующую ошибку: «Данные на корневом уровне недействительны. Строка 1, позиция 1.»Ошибка добавления схемы в XmlSchemaSet

XmlSchemaSet schemas = new XmlSchemaSet(); 
     schemas.Add("", XmlReader.Create(new StringReader(@"C:\source\Net4\Clocks\Handlers\XML_Schemas\test.xsd"))); 

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="interface"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="node1" type="xs:string" /> 
     <xs:element name="node2" type="xs:string" /> 
     <xs:element name="node3" type="xs:string" /> 
     <xs:element name="node4" minOccurs="0"> 
      <xs:complexType> 
      <xs:sequence> 
       <xs:element name="node5" type="xs:unsignedByte" /> 
       <xs:element name="node6"> 
       <xs:complexType> 
        <xs:sequence> 
        <xs:element name="node6" type="xs:dateTime" /> 
        <xs:element name="node7" type="xs:string" /> 
        </xs:sequence> 
       </xs:complexType> 
       </xs:element> 
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

ответ

2

Вам необходимо пройти содержимое файла в StringReader, а не путь к файлу.

var pathToFile = @"C:\source\Net4\Clocks\Handlers\XML_Schemas\test.xsd"; 

var reader = new StringReader(File.ReadAllText(pathToFile)); 

schemas.Add("", XmlReader.Create(reader)); 

Alternativ способ добавить читателя XmlSchemaSet является

schemas.Add("", new XmlTextReader(pathToFile)); 
+0

Спасибо, что сделал трюк. – DavidB

Смежные вопросы