![]() |
![]() | ![]() | ![]() | Altova Mailing List Archives>Archive Index >comp.text.xml Archive Home >Recent entries >Thread Prev - Schema Design for common global element >Thread Next - Re: Schema Design for common global element Re: Schema Design for common global elementTo: NULL Date: 8/5/2004 7:57:00 AM Hi Gordon Had a similar problem and it took me ages to sort something out (just writing a dissertation about DTD vs Schema use..) This is what worked for me, but I am not an expert so my solution might not be how it should be done... Sample Schema 1 (file: untitled8.xsd): <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:in="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:import namespace="http://www.w3.org/2001/XMLSchema" schemaLocation="untitled9.xsd"></xs:import> <xs:element name="base"> <xs:complexType> <xs:sequence> <xs:element ref="in:base"></xs:element> </xs:sequence> <xs:attribute name="myNodeABC"></xs:attribute> <xs:attribute name="myNodeDEF"></xs:attribute> </xs:complexType> </xs:element> </xs:schema> which is your main Schema, note the <xs:import> tag, which references the location of your "to be imported" element (here in the same directory so just referenced "untitled9.xsd"). Also note above the <xs:import> - tag a new xmlns namespace abbreviation is introduced ie... xmlns:in - this is because I have given your second Schema a new namespace prefix (in)...: Sample Schema 2: This is the "to be imported" schema (my doc called untitled9.xsd - referenced in Schema 1 in the <xs:import> tag) with the new namespace prefix in: <?xml version="1.0" encoding="UTF-8"?> <in:schema xmlns:in="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <in:element name="base"> <in:complexType> <in:attribute name="myNodeABC" type="in:string"/> <in:attribute name="myNodeXYZ" type="in:string"/> </in:complexType> </in:element> </in:schema> The resulting XML instance document: <?xml version="1.0" encoding="UTF-8"?> <base xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:untitled8.xsd" myNodeABC="" myNodeDEF=""> <base xmlns="http://www.w3.org/2001/XMLSchema" myNodeABC="" myNodeXYZ="">Content of base element of Schema 2 nested in the base element of Schema 1 </base> </base> By the way, I used the oXygen XML editor for this, for some reason Altova's XMLSpy">XMLSpy does not like my new namespace prefix... but oXygen validates it all.. Again, this might be complete gibberish but I hope it helps.. Cheers Ingrid PS let me know what you think of it anyway, might be helpful for my dissertation to know if I am thinking on the right lines..And if you find an easier way to do it, could you please post it?? gdickens@c... (Gordon Dickens) wrote in message news:<8738a092.0408031840.8eaef70@p...>... > I have target xml to generate from schema. All of the XML instances > have the same global element i.e. <base>. I would like to combine all > of the schemas into a single schema where I could generate any of the > specific instances. > > sample schema one: > <?xml version="1.0" encoding="UTF-8"?> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > elementFormDefault="qualified"> > <xs:element name="base"> > <xs:complexType> > <xs:attribute name="myNodeABC" type="xs:string"/> > <xs:attribute name="myNodeDEF" type="xs:string"/> > </xs:complexType> > </xs:element> > </xs:schema> > > sample schema two: > <?xml version="1.0" encoding="UTF-8"?> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > elementFormDefault="qualified"> > <xs:element name="base"> > <xs:complexType> > <xs:attribute name="myNodeABC" type="xs:string"/> > <xs:attribute name="myNodeXYZ" type="xs:string"/> > </xs:complexType> > </xs:element> > </xs:schema> > > Can anyone suggest how to join these two into a single schema where > the instance document does not have namespace prefixed > elements/attributes? > > I tried attributeGroups, groups, import and include elements, without > any luck. > > Any help is appreciated. > > Thanks, > Gordon | ![]() | ![]() | ![]() |
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | |||
|
