• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 264
  • Last Modified:

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?



0
DavidDunn
Asked:
DavidDunn
1 Solution
 
Wayne BradneyIndependent ConsultantCommented:
DavidDunn,

Please post your schema and an example XML document.

Regards,
WMB
0
 
ashish2kCommented:
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
0
 
Yury_DelendikCommented:
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.
0
Learn to develop an Android App

Want to increase your earning potential in 2018? Pad your resume with app building experience. Learn how with this hands-on course.

 
DavidDunnAuthor Commented:
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
=================================================
0
 
DavidDunnAuthor Commented:
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?
0
 
DavidDunnAuthor Commented:
Also,

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

Thanks.
0
 
Yury_DelendikCommented:
I know it's bad, but it's true.

Try to use any Java parser, e.g. Xerces. If you like Windows and COM technology you may use VJ++ for COM DLL creating ...
... and you can partially implement DOMDocument interface.
0

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

Tackle projects and never again get stuck behind a technical roadblock.
Join Now