Hi, Unfortunately I can't just use the targetNamespace in the schema element. There are top-level elements of the global targetNamespace and also top level elements from another namespace. Both of these can contain elements from both namespaces, thus the need to refer to another namespace at the element level. It's a strange requirement, I admit. That said, if element-level targetNamespaces aren't for referring to namespaces other than the targetNamespace specified in the schema element, what are they for?
As for the top-level elements requiring a name, I spotted that mistake after sending the email. It's just a typo from reducing the xsd to a minimal test case. That said, it still reproduces the problem even when the top-level element is correctly given a name. Cheers, Julian On Thu, Aug 6, 2015 at 7:41 PM, Bernd Eckenfels <e...@zusammenkunft.net> wrote: > Hello, > > that is interesting, I see targetNamespace in the XML-Schema 1.1 spec > for top level elements and attributes. > > http://www.w3.org/TR/xmlschema11-1/ > > But it is not in the XML Schema.xsd. (only one occurence of > 'name="targetNamespace"') on the <schema> element. > > http://www.w3.org/2001/XMLSchema.xsd > > BTW: top level elements do require a name="" attribute. You have > specified it on the <simpleType> I think thats not correct. > > In your case, can you just use the targetNamespace on the schema > element? This is the most common usage as it cannot be mixed anyway. > > Gruss > Bernd > > > Am Thu, 6 Aug 2015 18:58:22 +0100 > schrieb Julian Cromarty <julian.croma...@gmail.com>: > > > Hi, > > > > I'm trying to write a schema using the 1.1 schema language and I need > > to be able to set the targetNamespace attribute on some of the > > elements. When I try and create a Validator to validate XML against > > the schema however, I get an instance of XMLSchema11Factory but when I > > pass the XSD file to the factory's newSchema() method I always get the > > following exception: > > > > s4s-att-not-allowed: Attribute 'targetNamespace" cannot appear in > > element 'element'. > > > > I've trimmed the XSD down to a minimal test case that reproduces the > > problem: > > > > <?xml version="1.0" encoding="UTF-8"?> > > > > <xs:schema targetNamespace="http://www.foo.com" > > xmlns="http://www.foo.com" xmlns:other="http://www.bar.com" > > xmlns:xs="http://www.w3.org/2001/XMLSchema"> > > <xs:element targetNamespace="http://www.bar.com"> > > <xs:simpleType name="ans"> > > <xs:restriction base="xs:string"/> > > </xs:simpleType> > > </xs:element> > > </xs:schema> > > > > And here is the code I'm using to try and create the validator > > > > System.setProperty("javax.xml.validation.SchemaFactory: > http://www.w3.org/XML/XMLSchema/v1.1", > > "org.apache.xerces.jaxp.validation.XMLSchema11Factory"); > > SchemaFactory factory = > > SchemaFactory.newInstance(" > http://www.w3.org/XML/XMLSchema/v1.1"); > > Schema schema = > > factory.newSchema(new > > StreamSource(ClassLoader.getSystemResourceAsStream("test.xsd"))); > > xmlValidator = schema.newValidator(); > > > > Does anyone have any idea why this isn't working? > > > > Kind regards, > > > > Julian > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: j-users-unsubscr...@xerces.apache.org > > For additional commands, e-mail: j-users-h...@xerces.apache.org > > > >