• Good article! One question did come to mind as I read it: would it be possible to modify your method to use a single XML schema for validation against multiple namespaces:

    DROP XML SCHEMA COLLECTION stat;

    GO

    CREATE XML SCHEMA COLLECTION stat

    AS

    '<?xml version="1.0" encoding="ISO-8859-1" ?>

    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema&quot; targetNamespace="leo:stat:a" xmlns="leo:stat:a">

    <xs:element name="statroot">

    <xs:complexType>

    <xs:sequence>

    <xs:element name="statrecord" minOccurs="0">

    <xs:complexType>

    <xs:sequence>

    <xs:element name="companyid" type="xs:integer" />

    <xs:element name="prodno" type="xs:string" />

    <xs:element name="userid" type="xs:integer" />

    </xs:sequence>

    </xs:complexType>

    </xs:element>

    </xs:sequence>

    </xs:complexType>

    </xs:element>

    </xs:schema> ';

    GO

    ALTER XML SCHEMA COLLECTION stat

    ADD '<?xml version="1.0" encoding="ISO-8859-1" ?>

    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema&quot; targetNamespace="leo:stat:b" xmlns="leo:stat:b">

    <xs:element name="statroot">

    <xs:complexType>

    <xs:sequence>

    <xs:element name="statrecord" minOccurs="0">

    <xs:complexType>

    <xs:sequence>

    <xs:element name="co" type="xs:integer" />

    <xs:element name="prod" type="xs:string" />

    <xs:element name="uid" type="xs:integer" />

    <xs:element name="ext" type="xs:string" />

    </xs:sequence>

    </xs:complexType>

    </xs:element>

    </xs:sequence>

    </xs:complexType>

    </xs:element>

    </xs:schema> '

    GO

    declare @xmlvar1 xml (stat);

    set @xmlvar1 = '<xs:statroot xmlns:xs="leo:stat:a">

    <statrecord>

    <companyid>6</companyid>

    <prodno>prd12</prodno>

    <userid>12345</userid>

    </statrecord>

    </xs:statroot>

    <xs:statroot xmlns:xs="leo:stat:b">

    <statrecord>

    <co>6</co>

    <prod>prd12</prod>

    <uid>12345</uid>

    <ext>Test</ext>

    </statrecord>

    </xs:statroot>'

    This would require you to pass in the namespace qualifiers in your input XML, but might eliminate the need to pass the XML schema collection name.

    Thanks!