Hello everyone,

I'm trying to use XMLInstance2Schema. I followed the code sample from the 
javadoc but I'm getting a NullPointerException in XMLInstance2SchemaHandler, 
line 520.
I don't know if this is the correct behavior or if this is a bug. Somewhere 
during the parsing of my xml e1.getType() in line 487 returns null, next there 
are a couple of ifs, in my case the execution goes to line 493 and 494. The 
problem is that e1Type is never set to e2Type so it's still null when it 
arrives at 520. The same thing happens in the if from 507, e2Type is not being 
set. On both of the else clause (line 496 and 409) the variables are being set.

Is this a bug? Should I report it?
I attached the xml I'm using.

Here's part of the method from XMLInstance2SchemaHandler.


487XMLType e1Type = e1.getType();
488        XMLType e2Type = e2.getType();
489         
490        //-- Make sure types are not null and if so create them
491        if (e1Type == null) {
492            if (e2Type == null) return; //-- nothing to merge
493if (e2Type.isSimpleType()) {
494    e1.setType(e2Type);
495}
496else {
497    ComplexType cType = new ComplexType(_schema);
498    Group group = new Group();
499    group.setOrder(_defaultGroupOrder);
500    cType.addGroup(group);
501    e1.setType(cType);
502    e1Type = cType;
503}
504        }
505        else if (e2Type == null) {
506            if (e1Type.isSimpleType()) {
507                e2.setType(e1Type);
508            }
509            else {
510                ComplexType cType = new ComplexType(_schema);
511                Group group = new Group();
512                group.setOrder(_defaultGroupOrder);
513                cType.addGroup(group);
514                e2.setType(cType);
515                e2Type = cType;
516            }
517        }
518        
519        //-- both simple types
520        if (e1Type.isSimpleType() && e2Type.isSimpleType()) {

Thanks in advance!
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:xmlDummyControl xmlns:ns2="myControl">
	<name>dummyControl</name>
	<className>DummyDevice</className>
    <measureValueObject>
        <accessMode>READ</accessMode>
        <comment>comment</comment>
        <itemName>00B2</itemName>
        <groupName>Group</groupName>
        <plcVarName>varName</plcVarName>
        <persist>true</persist>
        <varName>Xi</varName>
        <gain>1.0</gain>
        <offset>0.0</offset>
        <unit>°C</unit>
    </measureValueObject>
    <measureValueObject>
        <accessMode>READ</accessMode>
        <comment>other comment</comment>
        <itemName>00B1</itemName>
        <plcVarName>otherplcVarName</plcVarName>
        <persist>true</persist>
        <varName>varName</varName>
        <gain>1.0</gain>
        <offset>0.0</offset>
        <unit>°C</unit>
    </measureValueObject>
    <measureValueObject>
        <accessMode>WRITE</accessMode>
        <comment>com</comment>
        <itemName>00B3</itemName>
        <persist>true</persist>
        <plcVarName>plc3</plcVarName>
        <varName>var</varName>
        <gain>1.0</gain>
        <offset>0.0</offset>
        <unit>bit</unit>
    </measureValueObject>
   	<statusValueObject>
		<accessMode>READ</accessMode>
		<comment>Digital 1</comment>
		<itemName>22B1</itemName>
		<plcVarName>digit</plcVarName>
		<varName>On/off</varName>
	</statusValueObject>
   	<statusValueObject>
		<accessMode>WRITE</accessMode>
		<comment>Digital 2</comment>
		<itemName>22B2</itemName>
        <groupName>group</groupName>
		<plcVarName>digit2</plcVarName>
		<varName>On/off 2</varName>
	</statusValueObject>
   	<statusValueObject>
		<accessMode>WRITE</accessMode>
		<comment>com</comment>
		<itemName>44B3</itemName>
        <groupName>group32</groupName>
		<plcVarName>digit3</plcVarName>
		<varName>On/off 3</varName>
	</statusValueObject>
   	<statusValueObject>
		<accessMode>WRITE</accessMode>
		<comment>Digital </comment>
		<itemName>55B3</itemName>
		<plcVarName>digit4</plcVarName>
		<varName>On/off 4</varName>
	</statusValueObject>
	<clocks>
		<clock>
			<name></name>
			<index>0</index>
		</clock>
		<clock>
			<name>Zone OG</name>
			<index>1</index>
		</clock>
		<clock>
			<name>Zone OG</name>
			<index>2</index>
		</clock>
		<clock>
			<name>Zone EG</name>
			<index>3</index>
		</clock>
		<clock>
			<name>Zone EG</name>
			<index>4</index>
		</clock>
	</clocks>
</ns2:xmlDummyControl>
---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to