<flushleft><fontfamily><param>Helvetica</param><x-tabstops><param>28L;56L;84L;112L;140L;168L;196L;224L;252L;280L;308L;336L;</param>I have a fairly complex schema (2937 lines,  822 elements, 617 complexTypes) that xsv

is reporting a schema error on:


<<schemaError char='1' line='385' phase='instance' resource='file:///u:\mit\mdf\m

c\test\mitjin\scratch\SASOMI.xsd'>non-deterministic content model for type Metad

ataType: {http://www.sas.com/SASOMI}:CubeRegion/{http://www.sas.com/SASOMI}:Cube

Region<</schemaError>


What does this mean?

FWIW, xsv does eventually properly evaluate the instance and detect the one 

known irregularity in the content.   (shown below).

It just takes it 12 HOURS on my 400Mhz PIII !

The actual instance is very small (26 lines).  I suspect most of this time is in 

digesting the schema.   It is very complex and has some circular types of element

associations ( element A can optionally contain a B, and B can optionally contain

an A).   Is this why it takes so long? 


FWIW, Oracle's validating parser dies the death of a NullPointer when trying to

process this schema:


Exception in thread "main" java.lang.NullPointerException

        at oracle.xml.parser.schema.XSDBuilder.parseComplexTypeContent(XSDBuilde

r.java, Compiled Code)

        at oracle.xml.parser.schema.XSDBuilder.parseComplexType(XSDBuilder.java,

 Compiled Code)

        at oracle.xml.parser.schema.XSDBuilder.parseTopLevelElem(XSDBuilder.java

, Compiled Code)

        at oracle.xml.parser.schema.XSDBuilder.buildSchema(XSDBuilder.java:367)

        at oracle.xml.parser.schema.XSDBuilder.build(XSDBuilder.java:223)

        at oracle.xml.parser.schema.XSDBuilder.build(XSDBuilder.java:206)

        at XSDSetSchema.main(XSDSetSchema.java:24)


XMLSpy can process this instance and schema and DOES NOT detect the 

obvious error that XSV eventually reports.  It says the schema and instance are

just fine.   


> <<invalid char='17' code='cvc-complex-type.1.2.4' line='9' resource='file:/U:/mit 

> /mdf/mc/test/mitjin/scratch/AddWTableSample.xml'>element 

> {http://www.sas.com/SAS 

> OMI}:Owner not allowed here in element {http://www.sas.com/SASOMI}:WTable: 

> <<fsm> 

> <<node final='true' id='1'> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:ColumnList'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:CreationJob'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:DataGroup'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:DataMemberList'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:DataPackageList'/> 

> <<edge dest='1' label='{http://www.sas.com/SASOMI}:DocumentList'/> 

> <<edge dest='1' label='{http://www.sas.com/SASOMI}:ExtensionList'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:ForeignKeyList'/> 

> <<edge dest='1' label='{http://www.sas.com/SASOMI}:GroupList'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:InputSourceList'/> 

> <<edge dest='3' label='{http://www.sas.com/SASOMI}:JoinTargetList'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:LoadProcess'/> 

> <<edge dest='1' label='{http://www.sas.com/SASOMI}:ObjectNote'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:OptionList'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:OutputTargetList'/> 

> <<edge dest='3' label='{http://www.sas.com/SASOMI}:QueryTargetList'/> 

> <<edge dest='1' label='{http://www.sas.com/SASOMI}:ResponsiblePartyList'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:UniqueKeyList'/> 

> <</node> 

> <<node final='true' id='2'> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:ColumnList'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:CreationJob'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:DataGroup'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:DataMemberList'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:DataPackageList'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:ForeignKeyList'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:InputSourceList'/> 

> <<edge dest='3' label='{http://www.sas.com/SASOMI}:JoinTargetList'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:LoadProcess'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:OptionList'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:OutputTargetList'/> 

> <<edge dest='3' label='{http://www.sas.com/SASOMI}:QueryTargetList'/> 

> <<edge dest='2' label='{http://www.sas.com/SASOMI}:UniqueKeyList'/> 

> <</node> 

> <<node final='true' id='3'> 

> <<edge dest='3' label='{http://www.sas.com/SASOMI}:JoinTargetList'/> 

> <<edge dest='3' label='{http://www.sas.com/SASOMI}:QueryTargetList'/> 

> <</node> 

> <</fsm><</invalid> 

> <<invalid char='17' code='src-resolve' line='9' resource='file:/U:/mit/mdf/mc/tes 

> t/mitjin/scratch/AddWTableSample.xml'>undeclared element 

> {http://www.sas.com/SAS 

> OMI}:Owner<</invalid> 


</x-tabstops></fontfamily><fontfamily><param>Geneva</param><x-tabstops><param>28L;56L;84L;112L;140L;168L;196L;224L;252L;280L;308L;336L;</param>------------------------------------------------------------------------

Michael Burns                                email: <underline><color><param>0000,0000,FFFF</param>Michael.Burns@sas.com</color></underline>

Principal Systems Developer           home: <underline><color><param>0000,0000,FFFF</param>mburns@bga.com</color></underline> 

Metadata Integration Technology    voice: (512)258-5171x3264

SAS Institute, Inc.                             fax: (512)258-3906

11920 Wilson Parke Ave.                www: <underline><color><param>0000,0000,FFFF</param>http://www.realtime.net/~mburns</color></underline>

Austin, TX 78726-4052                   sww: <underline><color><param>0000,0000,FFFF</param>http://sww.sas.com/~sasmkb</color></underline>

"choose for yourselves today whom you will serve;...

 but as for me and my house, we will serve the Lord." Joshua 24:15</x-tabstops></fontfamily></flushleft>
