• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 276
  • 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
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

 
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

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