public SkipToEndElement ( |
||
schemaInfo | ||
Результат | void |
public void SkipToEndElement(XmlSchemaInfo schemaInfo)
{
if (_validationStack.Length <= 1)
{
throw new InvalidOperationException(SR.Format(SR.Sch_InvalidEndElementMultiple, s_methodNames[(int)ValidatorState.SkipToEndElement]));
}
CheckStateTransition(ValidatorState.SkipToEndElement, s_methodNames[(int)ValidatorState.SkipToEndElement]);
if (schemaInfo != null)
{
SchemaElementDecl currentElementDecl = _context.ElementDecl;
if (currentElementDecl != null)
{
schemaInfo.SchemaType = currentElementDecl.SchemaType;
schemaInfo.SchemaElement = GetSchemaElement();
}
else
{
schemaInfo.SchemaType = null;
schemaInfo.SchemaElement = null;
}
schemaInfo.MemberType = null;
schemaInfo.IsNil = _context.IsNill;
schemaInfo.IsDefault = _context.IsDefault;
Debug.Assert(_context.Validity != XmlSchemaValidity.Valid);
schemaInfo.Validity = _context.Validity;
}
_context.ValidationSkipped = true;
_currentState = ValidatorState.SkipToEndElement;
Pop();
}
public void SetResolverToCustomValidateSomethignChangeResolverThenVerify() { CXmlTestResolver res = new CXmlTestResolver(); CResolverHolder holder = new CResolverHolder(); res.CalledResolveUri += new XmlTestResolverEventHandler(holder.CallBackResolveUri); res.CalledGetEntity += new XmlTestResolverEventHandler(holder.CallBackGetEntity); XmlNamespaceManager manager = new XmlNamespaceManager(new NameTable()); XmlSchemaInfo info = new XmlSchemaInfo(); XmlSchemaValidator val = new XmlSchemaValidator(new NameTable(), new XmlSchemaSet(), manager, AllFlags); val.XmlResolver = res; val.Initialize(); val.ValidateElement("foo", "", null, "type1", null, null, TestData + XSDFILE_NO_TARGET_NAMESPACE); val.SkipToEndElement(null); Assert.True(holder.IsCalledResolveUri); Assert.True(holder.IsCalledGetEntity); val.XmlResolver = new XmlUrlResolver(); holder.IsCalledGetEntity = false; holder.IsCalledResolveUri = false; val.ValidateElement("foo", "", null, "type1", null, null, TestData + XSDFILE_NO_TARGET_NAMESPACE); Assert.True(!holder.IsCalledResolveUri); Assert.True(!holder.IsCalledGetEntity); return; }