Create XML Schema with Java
The code in listing 1 creates a XML schema and dupms it to the console.
package sample.schema; import com.predic8.schema.*; import static com.predic8.schema.Schema.*; public class GenerateSchema { public static void main(String[] args) { Schema schema = new Schema("http://predic8.com/schema/person/"); schema.newElement("person", "personType"); ComplexType personType = schema.newComplexType("personType"); personType.newAttribute("id", INT); Sequence seq = personType.newSequence(); seq.newElement("name", STRING); seq.newElement("lastname", STRING); seq.newElement("date-of-birth", DATE); seq.newElement("address").newComplexType().newSequence().newElement("country", STRING); System.out.println(schema.getAsString()); } }
Listing 1: GenerateSchema
Listing 2 shows the created schema.
<xsd:schema targetNamespace='http://predic8.com/schema/person/' attributeFormDefault='unqualified' elementFormDefault='unqualified' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:tns='http://predic8.com/schema/person/'> <xsd:element name='person' type='tns:personType' /> <xsd:complexType name='personType'> <xsd:sequence> <xsd:element name='name' type='xsd:string' /> <xsd:element name='lastname' type='xsd:string' /> <xsd:element name='date-of-birth' type='xsd:date' /> <xsd:element name='address'> <xsd:complexType> <xsd:sequence> <xsd:element name='country' type='xsd:string' /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute name='id' use='' type='xsd:int' /> </xsd:complexType> </xsd:schema>
Listing 2: Generated Schema