2013-03-22 74 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