0


以下のコードのように、My XMLString を XMLSchema に比較しています (任意の要素でスキーマを使用しています)。

XmlReaderSettings settings = new XmlReaderSettings();
settings.DtdProcessing = DtdProcessing.Parse;
settings.ValidationType = ValidationType.Schema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
settings.ValidationFlags |= XmlSchemaValidationFlags.AllowXmlAttributes;
settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;

settings.Schemas.Add(null, XmlReader.Create(new StringReader(@"<xs:schema  xmlns:xs=""http://www.w3.org/2001/XMLSchema"">
                                                    <xs:element name=""bpElements"">
                                                    <xs:complexType>
                                                    <xs:sequence>
                                                     <xs:any />
                                                    </xs:sequence>
                                                   </xs:complexType>
                                                </xs:element>
                                             </xs:schema>")));

try
{
    // Create the XmlReader object.
    XmlReader xmlrdr = XmlReader.Create(new StringReader("<root>" + ab + "</root>"), settings);
    // Parse the file. 
    while (xmlrdr.Read()) ;
}
catch (XmlSchemaValidationException ex)
{
    Console.WriteLine("The file could not read the value at XML  format is not correct due to" + ex);
}

1)ルート要素が見つからないという例外がありました。

上記のエラーを回避するために:When i Add root Element to my Schema:
(ref : Is it possible to define a root element in an XML Document using Schema? )

settings.Schemas.Add(null, XmlReader.Create(new StringReader(@"<xs:schema  xmlns:xs=""http://www.w3.org/2001/XMLSchema"">
                                                            <xs:element name=""root"" type=""RootElementType""/>
                                                            <xs:complexType name=""RootElementType"">
                                                            <xs:sequence>
                                                             <xs:any />
                                                            </xs:sequence>
                                                           </xs:complexType>
                                                        </xs:element>
                                                     </xs:schema>")));

エラーがスローされます:

The 'xs:schema' start tag on line 1 position 2 does not match the end tag of 'xs:element'. Line 8, position 63.

これを解決する方法を教えてください。

4

1 に答える 1

0

</xs:element>弦から外す

更新コードはこちら

    settings.Schemas.Add(null, XmlReader.Create(
    new StringReader(@"<xs:schema  xmlns:xs=""http://www.w3.org/2001/XMLSchema"">
                        <xs:element name=""root"" type=""RootElementType""/>
                        <xs:complexType name=""RootElementType"">
                        <xs:sequence>
                         <xs:any />
                        </xs:sequence>
                       </xs:complexType>
                 </xs:schema>")));
于 2013-08-06T06:50:10.430 に答える