users@jaxb.java.net

Re: Problems with multiple root elements in same package

From: Russell Johns <johns_at_LANL.GOV>
Date: Wed, 23 Apr 2003 18:40:01 -0600

-to make reading the Xml easier- 3 levels in first occurs at element
'location' inside element 'repositoryInfo' about 10 lines down- sorry I did not mention this the first time...

>On Wed, 23 Apr 2003 12:19:24 -0700, Kohsuke Kawaguchi <Kohsuke.Kawaguchi_at_Sun.COM> wrote:
>
>>As far as I can see, your code and compilation procedure looks OK. So it
>>must be either a very simple mistake, or a bug in the RI.
>>
>
>As Usual, simple bug. the instance document was not set to the namespace.
>
>> - could you turn on the validation on the unmarshaller just for a
>> test?
>>
>- reveals namespace issue at top level of document. on correction- it gets more interesting...
>
>3 levels deep it insists qualified names become unqualified. the original Xml file passed XmlSpy 5.2 validation, after massaging the file so that
>JAXB-RI can read the file XmlSpy insists the generated file is not schema-conformant- below is the relevant parts of the Schemas and the Xml file that succesfully completes unmarshalling (nominally the same as the marshalled result: replace "tvt" with "ns1".)
>
>I used the qualified approach as i was unable to get the file to work using the whole file as unqualified (xmlns="tvTrac" as opposed to xmlns:tvt="tvTrac"). I am presuming that this is probably a bug in the RI but I could be wrong...
>
>Is XmlSpy not properly validating?
>
>As I believe this will need examples to show, I have included the real Xml and Schema files (less a couple of repeated blocks in the XML)I can attach the Java files as well if desired-
>
>in the files below the following the translations from the previous scenario apply ( sorry I don't usually get to program much with foo :-) )
>
>namespace: xmlFoo --> tvTrac
>Java Package: Xml.foo -> JvTrac.Xml
>root element: <foo-root1> --> <TvTrac-DaemonConfig>
>
>>>>>>>>>>Unmarshallable Xml file:
><?xml version="1.0" encoding="UTF-8"?>
><!-- edited with XMLSPY v5 rel. 2 U (http://www.xmlspy.com) by Russell C. Johns (Los Alamos National Laboratory) -->
><TvTrac-DaemonConfig MajorVersion="0" MinorVersion="1" xmlns="tvTrac" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="tvTrac
>E:\Trac\TvTrac\JvTrac\Xml\TvTrac-DaemonConfig.xsd">
> <port>8189</port>
> <processors>2</processors>
> <speedIndex>0.5</speedIndex>
> <isReferenceSystem>false</isReferenceSystem>
> <buildCapable>true</buildCapable>
> <repositoryInfo type="local">
> <location>/home/cvs/TvTrac</location>
> <port>0</port>
> </repositoryInfo>
> <executableInfo>
> <inFiles>
> <name>tracin</name>
> <suffix>.inp</suffix>
> <type>ASCII</type>
> <input>req</input>
> <output>NA</output>
> </inFiles>
> <outFiles>
> <name>trcout</name>
> <suffix>.out</suffix>
> <type>ASCII</type>
> <input>NA</input>
> <output>req</output>
> </outFiles>
> <cmdLineOptions>
> <optName>-usetpr</optName>
> <numDataArgs>0</numDataArgs>
> <reqFilesReplaced>trcdmp</reqFilesReplaced>
> <newOutFiles>trctpr</newOutFiles>
> </cmdLineOptions>
> <appliesTo>
> <startVersion>
> <category>NRC</category>
> <MajorVersion>3</MajorVersion>
> <MinorVersion>1110</MinorVersion>
> <release> </release>
> </startVersion>
> <RangeClass>AllMinor</RangeClass>
> </appliesTo>
> </executableInfo>
> <diffInfo>
> <numFileTypes>2</numFileTypes>
> <comparators>
> <tag>ASCII</tag>
> <path>diff.exe</path>
> <argList>%Reference%</argList>
> <argList>%Test%</argList>
> <resultType>Text</resultType>
> </comparators>
> <comparators>
> <tag>SigDif</tag>
> <path>rtrcsno.exe</path>
> <argList>%Reference%</argList>
> <argList>%Test%</argList>
> <resultType>Text</resultType>
> </comparators>
> </diffInfo>
></TvTrac-DaemonConfig>
><<<<<<<<<
>
>>>>>>>>>>DaemonConfig Schema:
><?xml version="1.0" encoding="UTF-8"?>
><!-- edited with XMLSPY v5 rel. 2 U (http://www.xmlspy.com) by Russell C. Johns (Los Alamos National Laboratory) -->
><xs:schema targetNamespace="tvTrac" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="tvTrac" elementFormDefault="qualified" attributeFormDefault="unqualified">
> <xs:include schemaLocation="TvTrac-DataTypes.xsd"/>
> <xs:element name="TvTrac-DaemonConfig">
> <xs:annotation>
> <xs:documentation>ConfigurationalElements for TvTrac Daemon</xs:documentation>
> </xs:annotation>
> <xs:complexType>
> <xs:sequence>
> <xs:element name="port" type="PortType">
> <xs:annotation>
> <xs:documentation>port number that daemon will listen on</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="processors" type="xs:int">
> <xs:annotation>
> <xs:documentation>number of processors that can be used to perform calcs</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="speedIndex" type="xs:float">
> <xs:annotation>
> <xs:documentation>relative speed as compared to reference System </xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="isReferenceSystem" type="xs:boolean">
> <xs:annotation>
> <xs:documentation>flag for this being reference system.</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="buildCapable" type="xs:boolean">
> <xs:annotation>
> <xs:documentation>flag for system being build capable</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="buildInfo" type="BuildInfoType" minOccurs="0">
> <xs:annotation>
> <xs:documentation>information about location of build resources</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="repositoryInfo" type="RepositoryInfoType">
> <xs:annotation>
> <xs:documentation>information for the type and location of the reference results repository</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="executableInfo" type="ExecutableInfoType">
> <xs:annotation>
> <xs:documentation>information for files used by the application for input - output - cmd Line Args data</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="diffInfo" type="DiffInfoType">
> <xs:annotation>
> <xs:documentation>information on how to "diff" each file type</xs:documentation>
> </xs:annotation>
> </xs:element>
> </xs:sequence>
> <xs:attribute name="MajorVersion" type="xs:nonNegativeInteger" use="required" fixed="0">
> <xs:annotation>
> <xs:documentation>major version of Schema / interface</xs:documentation>
> </xs:annotation>
> </xs:attribute>
> <xs:attribute name="MinorVersion" type="xs:nonNegativeInteger" use="required" fixed="1">
> <xs:annotation>
> <xs:documentation>minor version number of schema -interface </xs:documentation>
> </xs:annotation>
> </xs:attribute>
> </xs:complexType>
> </xs:element>
></xs:schema>
><<<<<<<<<<<<
>
>>>>>>>>>>>>> DataTypes Schema:
>
><?xml version="1.0" encoding="UTF-8"?>
><!-- edited with XMLSPY v5 rel. 2 U (http://www.xmlspy.com) by Russell C. Johns (Los Alamos National Laboratory) -->
><xs:schema targetNamespace="tvTrac" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="tvTrac">
> <xs:complexType name="BuildInfoType">
> <xs:annotation>
> <xs:documentation>derived type to contain info needed to build app.</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="makePath" type="xs:string">
> <xs:annotation>
> <xs:documentation>path to make app Incl make name e.g. /bin/make</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="makeDbgArgs" type="xs:string" minOccurs="0" maxOccurs="unbounded">
> <xs:annotation>
> <xs:documentation>arguments to use to build a debug executable</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="makeOptArgs" type="xs:string" minOccurs="0" maxOccurs="unbounded">
> <xs:annotation>
> <xs:documentation>arguments to use to build a optimized exe</xs:documentation>
> </xs:annotation>
> </xs:element>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="CommandLineArgType">
> <xs:annotation>
> <xs:documentation>Definition of a CommandLine Argument element</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="Arg" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
> </xs:sequence>
> <xs:attribute name="cmd" type="xs:string" use="required"/>
> </xs:complexType>
> <xs:simpleType name="ComplexityType">
> <xs:annotation>
> <xs:documentation>Definition of Complexity Type</xs:documentation>
> </xs:annotation>
> <xs:restriction base="xs:float"/>
> </xs:simpleType>
> <xs:simpleType name="CrcValue">
> <xs:restriction base="xs:string">
> <xs:length value="60"/>
> </xs:restriction>
> </xs:simpleType>
> <xs:simpleType name="DescriptionType">
> <xs:annotation>
> <xs:documentation>Definition of Description</xs:documentation>
> </xs:annotation>
> <xs:restriction base="xs:string"/>
> </xs:simpleType>
> <xs:complexType name="DiffInfoType">
> <xs:annotation>
> <xs:documentation>information on how to "diff" each file type</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="numFileTypes" type="xs:nonNegativeInteger"/>
> <xs:element name="comparators" maxOccurs="unbounded">
> <xs:annotation>
> <xs:documentation>list of file type tags and info on how to comapare them.</xs:documentation>
> </xs:annotation>
> <xs:complexType>
> <xs:sequence>
> <xs:element name="tag" type="xs:string">
> <xs:annotation>
> <xs:documentation>name for file type e.g. ASCII</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="path" type="xs:string">
> <xs:annotation>
> <xs:documentation>path to diffing application</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="argList" type="xs:string" minOccurs="0" maxOccurs="unbounded">
> <xs:annotation>
> <xs:documentation>list of arguments to diffing app %Ref% idicates reference file %Test% representy test file.</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="resultType" type="xs:string">
> <xs:annotation>
> <xs:documentation>type tag of result of diff. enables recursive diff.</xs:documentation>
> </xs:annotation>
> </xs:element>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="ExeIdType">
> <xs:annotation>
> <xs:documentation>derived Type to Id a Executable</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="Name" type="NameType"/>
> <xs:element name="BinaryCrcValue" type="CrcValue"/>
> <xs:element name="TracVersion" type="VersionType"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="ExecutableInfoType">
> <xs:annotation>
> <xs:documentation>information for files used by the application for input - output - cmd Line Args data</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="inFiles" type="FileType" maxOccurs="unbounded">
> <xs:annotation>
> <xs:documentation>list of files used for input</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="outFiles" type="FileType" maxOccurs="unbounded">
> <xs:annotation>
> <xs:documentation>list of file used for output</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="chkOnErr" type="xs:string" minOccurs="0" maxOccurs="unbounded">
> <xs:annotation>
> <xs:documentation>list of files to compare on error</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="cmdLineOptions" maxOccurs="unbounded">
> <xs:annotation>
> <xs:documentation>list of Cmd Line args</xs:documentation>
> </xs:annotation>
> <xs:complexType>
> <xs:sequence>
> <xs:element name="optName" type="xs:string">
> <xs:annotation>
> <xs:documentation>name of the argument</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="numDataArgs" type="xs:unsignedInt">
> <xs:annotation>
> <xs:documentation>number of arguments given after argument for data</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="aliasFor" type="xs:string" minOccurs="0">
> <xs:annotation>
> <xs:documentation>used if argument is alias fo other argument e.g. --nocpu</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="optFilesNeeded" type="xs:string" minOccurs="0" maxOccurs="unbounded">
> <xs:annotation>
> <xs:documentation>optional input file that are REQUIRED when option is present.</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="reqFilesReplaced" type="xs:string" minOccurs="0" maxOccurs="unbounded">
> <xs:annotation>
> <xs:documentation>required file that aren't used/needed when </xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="newOutFiles" type="xs:string" minOccurs="0" maxOccurs="unbounded">
> <xs:annotation>
> <xs:documentation>optionl output files provided by the argument</xs:documentation>
> </xs:annotation>
> </xs:element>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> <xs:element name="appliesTo" type="VersionRange"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="ExeSpecType">
> <xs:annotation>
> <xs:documentation>definition of an EXE spec as a derived type.</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="name" type="NameType">
> <xs:annotation>
> <xs:documentation>name or label of the executable for testing.</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="cvsTag" type="NameType">
> <xs:annotation>
> <xs:documentation>the cvs tag to retrieve the source for this executable.</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="cvsModules" maxOccurs="unbounded">
> <xs:annotation>
> <xs:documentation>The Cvs modules used for this executable</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="platform" type="PlatformType" minOccurs="0">
> <xs:annotation>
> <xs:documentation>Canonical Name of the host Operating System.</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="compiler" minOccurs="0">
> <xs:complexType>
> <xs:annotation>
> <xs:documentation>compiler name</xs:documentation>
> </xs:annotation>
> <xs:simpleContent>
> <xs:extension base="NameType">
> <xs:attribute name="version" type="VersionStringType">
> <xs:annotation>
> <xs:documentation>version of the compiler</xs:documentation>
> </xs:annotation>
> </xs:attribute>
> </xs:extension>
> </xs:simpleContent>
> </xs:complexType>
> </xs:element>
> <xs:element name="optimization" type="OptimizationString" minOccurs="0">
> <xs:annotation>
> <xs:documentation>optimization used to make this executable.</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="sourceCrcValue" type="CrcValue" nillable="true">
> <xs:annotation>
> <xs:documentation>CRC hash value on the source used to build the executable.</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="binaryCrcValue" type="CrcValue" minOccurs="0">
> <xs:annotation>
> <xs:documentation>Crc Type value for the platform dependent binary.</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="dateCompiled" type="xs:string">
> <xs:annotation>
> <xs:documentation>date and time the executable was made.</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="TracVersion" type="VersionType"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="ExternalReferenceType">
> <xs:sequence>
> <xs:element name="Name" type="xs:string"/>
> <xs:element name="Location" type="xs:string"/>
> <xs:choice>
> <xs:element name="SetReference" type="SetReferenceType" minOccurs="0"/>
> <xs:element name="TestReference" type="TestReferenceType" minOccurs="0"/>
> </xs:choice>
> </xs:sequence>
> <xs:attribute name="RefType" use="required">
> <xs:simpleType>
> <xs:restriction base="xs:NMTOKEN">
> <xs:enumeration value="PACKAGE"/>
> <xs:enumeration value="SET"/>
> <xs:enumeration value="PROBLEM"/>
> </xs:restriction>
> </xs:simpleType>
> </xs:attribute>
> </xs:complexType>
> <xs:complexType name="FileSetType">
> <xs:annotation>
> <xs:documentation>specification of a FileSet</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="FileType" type="xs:string" maxOccurs="unbounded"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="FileType">
> <xs:annotation>
> <xs:documentation>Derived type to describe a input or output file</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="name" type="xs:string"/>
> <xs:element name="suffix" type="xs:string"/>
> <xs:element name="type" type="xs:string"/>
> <xs:element name="input" type="FileUseType"/>
> <xs:element name="output" type="FileUseType"/>
> </xs:sequence>
> </xs:complexType>
> <xs:simpleType name="FileUseType">
> <xs:annotation>
> <xs:documentation>Derived Type to describe the use of an input or output file</xs:documentation>
> </xs:annotation>
> <xs:restriction base="xs:string">
> <xs:enumeration value="req"/>
> <xs:enumeration value="opt"/>
> <xs:enumeration value="NA"/>
> </xs:restriction>
> </xs:simpleType>
> <xs:simpleType name="HostType">
> <xs:annotation>
> <xs:documentation>definition of HostType, string of no more than 80 chars.</xs:documentation>
> </xs:annotation>
> <xs:restriction base="xs:string">
> <xs:length value="80"/>
> </xs:restriction>
> </xs:simpleType>
> <xs:simpleType name="IPV4Type">
> <xs:annotation>
> <xs:documentation>Type for an IP address.</xs:documentation>
> </xs:annotation>
> <xs:restriction base="xs:string">
> <xs:length value="16"/>
> </xs:restriction>
> </xs:simpleType>
> <xs:simpleType name="LevelsType">
> <xs:annotation>
> <xs:documentation>Specification of the Levels element</xs:documentation>
> </xs:annotation>
> <xs:restriction base="xs:int"/>
> </xs:simpleType>
> <xs:simpleType name="NameType">
> <xs:annotation>
> <xs:documentation>defintion of a name constant: String of no more than 20 Chars</xs:documentation>
> </xs:annotation>
> <xs:restriction base="xs:string">
> <xs:length value="20"/>
> </xs:restriction>
> </xs:simpleType>
> <xs:simpleType name="OptimizationString">
> <xs:restriction base="xs:string">
> <xs:length value="40"/>
> </xs:restriction>
> </xs:simpleType>
> <xs:simpleType name="PlatformType">
> <xs:restriction base="xs:string">
> <xs:length value="40"/>
> </xs:restriction>
> </xs:simpleType>
> <xs:simpleType name="PortType">
> <xs:annotation>
> <xs:documentation>Derived type for Socket ports </xs:documentation>
> </xs:annotation>
> <xs:restriction base="xs:unsignedInt"/>
> </xs:simpleType>
> <xs:complexType name="QueryExe-ResponseType">
> <xs:annotation>
> <xs:documentation>Queryexe response.</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="foundExe" type="xs:boolean"/>
> <xs:element name="exeSpec" type="ExeSpecType" minOccurs="0"/>
> </xs:sequence>
> </xs:complexType>
> <xs:simpleType name="RangeClassType">
> <xs:annotation>
> <xs:documentation>Specification of how to define range</xs:documentation>
> </xs:annotation>
> <xs:restriction base="xs:NMTOKEN">
> <xs:enumeration value="Default"/>
> <xs:enumeration value="AllMajor"/>
> <xs:enumeration value="AllMinor"/>
> <xs:enumeration value="AllRelease"/>
> <xs:enumeration value="AllCategory"/>
> <xs:enumeration value="StdRange"/>
> <xs:enumeration value="SingleVersion"/>
> </xs:restriction>
> </xs:simpleType>
> <xs:complexType name="RepositoryInfoType">
> <xs:annotation>
> <xs:documentation>information for the type and location of the reference results repository</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="location" type="xs:string">
> <xs:annotation>
> <xs:documentation>path to repository</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="port" type="PortType">
> <xs:annotation>
> <xs:documentation>port to use if remote type</xs:documentation>
> </xs:annotation>
> </xs:element>
> </xs:sequence>
> <xs:attribute name="type" type="xs:string" use="required">
> <xs:annotation>
> <xs:documentation>type of repository "local", "Rmt"</xs:documentation>
> </xs:annotation>
> </xs:attribute>
> </xs:complexType>
> <xs:simpleType name="SetReferenceType">
> <xs:annotation>
> <xs:documentation>definition of a set reference</xs:documentation>
> </xs:annotation>
> <xs:restriction base="xs:string"/>
> </xs:simpleType>
> <xs:simpleType name="SizeType">
> <xs:annotation>
> <xs:documentation>Specification of a Size</xs:documentation>
> </xs:annotation>
> <xs:restriction base="xs:float"/>
> </xs:simpleType>
> <xs:complexType name="TestReferenceType">
> <xs:annotation>
> <xs:documentation>definition of a Test Reference</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="SetName" type="xs:string"/>
> <xs:element name="TestName" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="TestSetType">
> <xs:annotation>
> <xs:documentation>Definition of a Test Set element</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="Name" type="xs:string"/>
> <xs:element name="Description" type="DescriptionType"/>
> <xs:element name="Complexity" type="ComplexityType" minOccurs="0"/>
> <xs:element name="Size" type="SizeType" minOccurs="0"/>
> <xs:element name="Time" type="TimeType" minOccurs="0"/>
> <xs:element name="Levels" type="LevelsType" minOccurs="0"/>
> <xs:choice minOccurs="0" maxOccurs="unbounded">
> <xs:element name="TestProblem" type="TestProblemType"/>
> <xs:element name="SetReference" type="SetReferenceType"/>
> <xs:element name="TestReference" type="TestReferenceType"/>
> </xs:choice>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="TestProblemType">
> <xs:annotation>
> <xs:documentation>Definition of a Test Problem Element</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="Name" type="xs:string"/>
> <xs:element name="Description" type="DescriptionType"/>
> <xs:element name="versionParameters" maxOccurs="unbounded">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="appliesTo" type="VersionRange"/>
> <xs:element name="CmdLineOptions" type="CommandLineArgType" minOccurs="0" maxOccurs="unbounded"/>
> <xs:element name="RequiredFileSet" type="xs:short"/>
> <xs:element name="OptionalFileSet" type="xs:short"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> <xs:element name="Restart" type="TestReferenceType" minOccurs="0"/>
> <xs:element name="Parallel" type="xs:boolean" minOccurs="0"/>
> <xs:element name="RefResults" type="VersionType" minOccurs="0" maxOccurs="unbounded"/>
> <xs:element name="Successes" type="VersionType" minOccurs="0" maxOccurs="unbounded"/>
> <xs:element name="Failures" type="VersionType" minOccurs="0" maxOccurs="unbounded"/>
> <xs:element name="Complexity" type="ComplexityType" minOccurs="0"/>
> <xs:element name="Levels" type="LevelsType" minOccurs="0"/>
> <xs:element name="Time" type="TimeType" minOccurs="0"/>
> <xs:element name="Size" type="SizeType" minOccurs="0"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="TestType">
> <xs:annotation>
> <xs:documentation>Derived Type to encapsulate Tests</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="Module" type="NameType"/>
> <xs:element name="Problem" type="NameType"/>
> <xs:element name="Options" type="NameType" minOccurs="0" maxOccurs="unbounded"/>
> <xs:element name="isRestart" type="xs:boolean"/>
> </xs:sequence>
> </xs:complexType>
> <xs:simpleType name="TimeType">
> <xs:annotation>
> <xs:documentation>Specification of Time (seconds) Elapsed for a problem.</xs:documentation>
> </xs:annotation>
> <xs:restriction base="xs:long"/>
> </xs:simpleType>
> <xs:simpleType name="UserType">
> <xs:annotation>
> <xs:documentation>definition of UserType, string of no more than 20 chars.</xs:documentation>
> </xs:annotation>
> <xs:restriction base="xs:string">
> <xs:length value="20"/>
> </xs:restriction>
> </xs:simpleType>
> <xs:complexType name="VersionRange">
> <xs:annotation>
> <xs:documentation>Definition of a range of versions for run time features</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="startVersion" type="VersionType"/>
> <xs:element name="endVersion" type="VersionType" minOccurs="0"/>
> <xs:element name="RangeClass" type="RangeClassType"/>
> <xs:element name="exceptions" type="VersionType" minOccurs="0" maxOccurs="unbounded"/>
> </xs:sequence>
> </xs:complexType>
> <xs:simpleType name="VersionStringType">
> <xs:annotation>
> <xs:documentation>definition of a version string, a string of no more than 20 chars</xs:documentation>
> </xs:annotation>
> <xs:restriction base="xs:string">
> <xs:length value="20"/>
> </xs:restriction>
> </xs:simpleType>
> <xs:complexType name="VersionType">
> <xs:annotation>
> <xs:documentation>Specification of a Version Type</xs:documentation>
> </xs:annotation>
> <xs:sequence>
> <xs:element name="category" type="xs:string">
> <xs:annotation>
> <xs:documentation>category of version e.g. KAPL, NRC, AAA etc.</xs:documentation>
> </xs:annotation>
> </xs:element>
> <xs:element name="MajorVersion" type="xs:int"/>
> <xs:element name="MinorVersion" type="xs:int"/>
> <xs:element name="release" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
></xs:schema>