| re: validating against schema with namespaces
The XmlValidatingReader can validate xml files against XDR schemas. You
should add your XDR schemas to the Schemas property of XmlValidatingReader.
"urn:schemas-microsoft-com:xml-data" and
"urn:schemas-microsoft-com:datatypes" will be understood implicitly but you
need to provide the XDR schema for "urn:schemas-microsoft-com:BizTalkServer"
namespace since it is a custom namespace that the XDR schema parser cannot
understand.
Sample code:
XmlTextReader tr = new XmlTextReader(url);
XmlValidatingReader vr = new XmlValidatingReader(tr);
vr.ValidationType = ValidationType.XDR;
vr.Schemas.Add("urn:schemas-microsoft-com:BizTalkServer",
"BiztalkXDRSchema.xdr");
vr.Schemas.Add("myNS","myXdrSchema.xdr");
vr.ValidationEventHandler += new ValidationEventHandler(ValidationCallback);
//Validate
while(vr.Read()) {
}
"Ryan" <nospam@nospam.net> wrote in message
news:eZmBFwu%23DHA.2636@TK2MSFTNGP09.phx.gbl...[color=blue]
> I have a very complex XDR schema that uses namespaces:
>
> xmlns="urn:schemas-microsoft-com:xml-data"
> xmlns:b="urn:schemas-microsoft-com:BizTalkServer"
> xmlns:d="urn:schemas-microsoft-com:datatypes"
>
> Do I need to build a custom validator in order to validate XML documents
> against this schema? How does the XML parser know how to validate against
> the extra namespaces?
>
> For example, schemas-microsoft-com:datatypes allows for attributes such as
> maxLength, minLength, etc. If my XML document contains a value that[/color]
doesn't[color=blue]
> meet these criteria, then the document should not be valid. Microsoft's
> parser automagically validates correctly, using these custom attributes.
>
> The "schemas-microsoft-com:BizTalkServer" is even more custom, allowing[/color]
for[color=blue]
> such things as a "FieldInfo" element with "format" attributes that[/color]
specifiy[color=blue]
> the exact format for dates and times. I'm pretty sure XmlValidatingReader
> doesn't check for these special validations.
>
>
> If I do have to build my own validator, does anyone have some samples I[/color]
can[color=blue]
> look at? Is there an easy way to do this?
>
> Thanks, Ryan
>
>
>[/color] |