2013-03-22 93 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)); 

吳國良的方式來增加讀者XmlSchemaSet

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

謝謝,這確實起作用。 – DavidB 2013-03-22 11:00:36