求救 .net 2003 下面这个schema通过校验,但为什么2005下不行呢?
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="unqualified" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Configuration">
<xs:complexType>
<xs:sequence>
<xs:element name="a" minOccurs="1" maxOccurs="unbounded">
<xs:element name="state" minOccurs="1" maxOccurs="unbounded">
<xs:any maxOccurs="unbounded" minOccurs="0" processContents="skip" />
</xs:sequence>
</xs:complexType>
</xs:element>
报错,说state跟any会造成歧义,但是在2003里面验证正常,验证代码都是一样的,如下:
private void ValidateSchema( XmlNode section )
{
XmlValidatingReader validatingReader = null;
Stream xsdFile = null;
StreamReader streamReader = null;
try
{
//Validate the document using a schema
validatingReader = new XmlValidatingReader( new XmlTextReader( new StringReader( section.OuterXml ) ) );
validatingReader.ValidationType = ValidationType.Schema;
xsdFile = Resource.ResourceManager.GetStream( "UIPConfigSchema.xsd" );
streamReader = new StreamReader( xsdFile );
XmlTextReader reader = new XmlTextReader(streamReader);
XmlSchema schema = XmlSchema.Read(reader,null);
validatingReader.Schemas.Add( schema );
validatingReader.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);
// Validate the document
while (validatingReader.Read()){}
}