Error generating a record based on a DTD (IS4.6, Developer 4

Hello,

I am trying to generate a record, based on a DTD.

  • I am using jdk 1.2.2_011 (supported, according to wM documentation)
  • I have been successful on another machine (so I guess it must be related one way or another with the my installation)
  • the DTD is 100% correct. I have tried several other easy DTD’s and always receive the same error !
  • I have tried jdk 1.3.1 and encountered the same problem
  • I have been succesful in compiling some java services, so there is nothing wrong with my compiler (I have adjusted the classpath in the server.bat file to reflect the c:\jdk1.2.2 directory)

Here is the error message that I get:

java.lang.NullPointerException

at com.wm.lang.schema.WmElement.createRecord(Unknown Source)

at com.wm.lang.schema.conv.Converter._convert(Unknown Source)

at com.wm.lang.schema.conv.Converter._convert(Unknown Source)

at com.wm.lang.schema.conv.Converter.convert(Unknown Source)

at wm.server.record.generateFromDTDString(record.java:155)

at java.lang.reflect.Method.invoke(Native Method)

at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java, Compiled Code)

at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java, Compiled Code)

at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java, Compiled Code)

at com.wm.app.b2b.server.HTTPInvokeHandler.process(HTTPInvokeHandler.java, Compiled Code)

at com.wm.app.b2b.server.HTTPDispatch.run(HTTPDispatch.java, Compiled Code)

at com.wm.util.pool.PooledThread.run(PooledThread.java, Compiled Code)

at java.lang.Thread.run(Thread.java, Compiled Code)

I urgently need to get this to work !

Any help is kindly appreciated !

Jan

I am looking for a service to validate an xml file against a DTD. Ideally the service would accept two input files (xml file, DTD file) and return a valid/invalid result.

This can be easily done if I convert the DTD to a record/schema manually using the Developer, but I want to do the whole job in a service.

By viewing the audit log I see that Developer does its job using several non-exposed services:
wm.server.ns:nodeExists
wm.server.ns:isNameValid
wm.server.schema:generateFromDTDString
wm.getRegistry

This tells me that the job should be doable, but it would take a lot of reverse engineering in the absence of specs on these internal services.

Has anyone looked into this?