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> > >