Connecting Tech Pros Worldwide Forums | Help | Site Map

validating against schema with namespaces

Ryan
Guest
 
Posts: n/a
#1: Nov 12 '05
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 doesn't
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 for
such things as a "FieldInfo" element with "format" attributes that specifiy
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 can
look at? Is there an easy way to do this?

Thanks, Ryan




Priya Lakshminarayanan [MSFT]
Guest
 
Posts: n/a
#2: Nov 12 '05

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]


Closed Thread