Link to home
Start Free TrialLog in
Avatar of DavidDunn
DavidDunn

asked on

MSXML/W3C pattern value problem

I am using MSXML Parser v4.0 which supports W3C XSD schemas.

When I validate XML against a schema is correctly validates the minLength and maxLength values, however, it appears to completely ignore the pattern value.

I have tried numerous patterns like "\d{32}", "[0-9]{32}" etc. but they do not work.

Any ideas?



Avatar of Wayne Bradney
Wayne Bradney
Flag of United States of America image

DavidDunn,

Please post your schema and an example XML document.

Regards,
WMB
Avatar of ashish2k
ashish2k

Hi David Dunn
Please specify the full code in the comments and then I will look at it and then I will be able to tell you what can be the problem?
Regards,
Ashish
David,

Yes, it's true. See "what's new" section in the SDK documentation:

> The MSXML 4.0 Technology Preview does not support regular expressions and identity constraints.
Avatar of DavidDunn

ASKER

XML
=================================================
<?xml version="1.0" encoding="UTF-8"?>
<test:Sample xmlns:test="urn:Func">
     <ID>ZZDDDDDDDDDXDDDDDDDDDDDDWDDDDDDD</ID>
</test:Sample>
=================================================

XSD
=================================================
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
     <xsd:simpleType name="typID">
          <xsd:restriction base="xsd:string">
               <xsd:minLength value="32"/>
               <xsd:pattern value="[0-9]{32}"/>
          </xsd:restriction>
     </xsd:simpleType>

     <xsd:complexType name="typSample">
          <xsd:sequence>
               <xsd:element name="ID" type="typID"/>
          </xsd:sequence>
     </xsd:complexType>

     <xsd:element name="Sample" type="typSample"/>
</xsd:schema>
=================================================

VB Code
=================================================
Private mobjDOM As New DOMDocument40
Private mobjSchema As New XMLSchemaCache40

Private Sub Command1_Click()

    mobjSchema.Add "urn:Func", "c:\test\func.xsd"
    mobjDOM.async = False
   
    Set mobjDOM.schemas = mobjSchema

    mobjDOM.Load "c:\test\id.xml"
   
    If mobjDOM.parseError.errorCode <> 0 Then
   
        MsgBox mobjDOM.parseError.reason
    Else
   
        MsgBox "OK"
   
    End If

End Sub
=================================================
Yury_Delendik,

Not the answer I wanted to hear, but I thought it might be the case.

As this is only a preview version, do you know if the release version of MSXML 4 will contain this functionality?
Also,

Is there another parser which I can use that will perform this validation?

Thanks.
ASKER CERTIFIED SOLUTION
Avatar of Yury_Delendik
Yury_Delendik

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial