Ok, so I guess no one has ever tried this.

Maybe there's a simpler question:

If I use the SchemaTypeLoader.parse method, I struggle to get information
about the schema from that object. I want to iterate through the attributes
and elements declared in the XSD I'm parsing, but all I seem to get is w3
xml schema stuff. Am I trying to do something that isn't supported, or am I
just doing it wrong?

Any help much appreciated,

Cheers,

Badger.

On 8 January 2013 15:42, badger mailinglist
<badger.mailing.l...@gmail.com>wrote:

> Hi,
>
> Currently, I take some XSDs (see below for example), generate classes for
> them (with scomp -out generatedClasses.jar testschema.xsd), then use those
> classes in code with some like:
> final XmlObject instance =
> TestSchemaDocument.Factory.newInstance(xmlOptions);
>
> This process now needs to be a bit more dynamic, so I'm trying to use
> something more like the following:
>
> final SchemaTypeLoader loader =
> XmlBeans.typeLoaderForClassLoader(SchemaDocument.class.getClassLoader());
> XmlOptions xmlOptions = new XmlOptions();
> final XmlObject fileParsedInstance = loader.parse(new
> File("C:\\testschema.xsd"), null, new XmlOptions());
>
>
> However, I would expect the XmlObject returned in both cases to be the
> same. However, if I recursively iterate through the properties of these two
> objects, I get different results i.e. calling
> instance.schemaType().getProperties() gets different results in each of the
> cases.
> For the instance loaded from the class the getProperties() method returns
> one element with type 'TestSchema', which itself returns one element with
> type 'TestType' and so on as you recur.
> For the instance loaded directly from the xsd file the properties are all
> things like E=restriction|D=restriction@http://www.w3.org/2001/XMLSchema,
> which has a property T=localSimpleType@http://www.w3.org/2001/XMLSchema,
> which has a property 'restriction' and so on infinitely.
>
> I've assumed that these two methods of loading the schema would do the
> same thing, but it looks like I'm wrong, can someone point me at the method
> call I need to make to load from the file properly? I'm using XmlBeans
> 2.5.0.
>
> Thanks!
>
>
> Example xsd I'm testing this with:
>
> <?xml version="1.0" encoding="utf-8"?>
> <xs:schema attributeFormDefault="unqualified"
> elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema
> ">
>
>   <xs:element name="TestSchema" type="TestType" />
>
>   <xs:complexType name="TestComplexType">
>     <xs:sequence>
>       <xs:element type="xs:string" name="thing" />
>     </xs:sequence>
>   </xs:complexType>
>
>   <xs:complexType name="TestType">
>     <xs:sequence>
>       <xs:element type="TestComplexType" name="TestComplex"
>       maxOccurs="unbounded" minOccurs="0" />
>     </xs:sequence>
>   </xs:complexType>
>
> </xs:schema>
>
>

Reply via email to