Vous êtes sur la page 1sur 5

Create XSD file from XML file There are many tools to generate XSD from XML file,

but I am using here trang.

STEP 1: First download trang from here (choose trang-20030619.zip) STEP 2: Unzip this file at any location say C:\jar\trang-20030619\trang-20030619 STEP 3: Create one xml file at any location say C:\workspaceAll\XSD\XMLTOXSD\src\StudentInfo.xml

StudentInfo.xml

<?xml version="1.0" encoding="UTF-8"?><StudentData xmlns="http://mycompany.com/hr/schemas; <Student> <RollNo>110</RollNo> <FirstName>Ultimate</FirstName> <LastName>Answer</LastName> <ContactNo>9900990011</ContactNo> </Student> <Hostel> <Name>Ganga</Name> <Location>South Corner</Location> <RoomNo>20</RoomNo> </Hostel> </StudentData>

STEP 4: Now use this command

C:\workspaceAll\XSD\XMLTOXSD\src>java -jar C:\jar\trang-20030619\trang-20030619\trang.jar StudentInfo.xml StudentRecord.xsd

STEP 5: Now you will get StudentRecord.xsd at C:\workspaceAll\XSD\XMLTOXSD\src location. And StudentRecord.xsd will like this

<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://mycompany.com/hr/schemas" xmlns:schemas="http://mycompany.com/hr/schemas; <xs:element name="StudentData"> <xs:complexType> <xs:sequence> <xs:element ref="schemas:Student"/> <xs:element ref="schemas:Hostel"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Student"> <xs:complexType> <xs:sequence> <xs:element ref="schemas:RollNo"/> <xs:element ref="schemas:FirstName"/> <xs:element ref="schemas:LastName"/> <xs:element ref="schemas:ContactNo"/> </xs:sequence> </xs:complexType> </xs:element>

<xs:element name="RollNo" type="xs:integer"/> <xs:element name="FirstName" type="xs:NCName"/> <xs:element name="LastName" type="xs:NCName"/> <xs:element name="ContactNo" type="xs:integer"/> <xs:element name="Hostel"> <xs:complexType> <xs:sequence> <xs:element ref="schemas:Name"/> <xs:element ref="schemas:Location"/> <xs:element ref="schemas:RoomNo"/> </xs:sequence>

</xs:complexType> </xs:element> <xs:element name="Name" type="xs:NCName"/> <xs:element name="Location" type="xs:string"/> <xs:element name="RoomNo" type="xs:integer"/> </xs:schema>

It is very easy :)

IMP: If you want to develop any XSD file, so it would be better idea that first write XML file then using trang utility create XSD file. For example, I have below xml (persons.xml) <?xml version="1.0" ?> <information> <person id="1"> <name>Binod</name>

<age>24</age> <gender>Male</gender> </person>

<person id="2"> <name>Pramod</name> <age>22</age> <gender>Male</gender> </person>

<person id="3"> <name>Swetha</name> <age>19</age> <gender>Female</gender> </person> </information> Now use the trang command and get your XSD file. I kind suggestion, never dig your head to develop XSD file by using XSD tags. Always use trang command. :) java -jar c:\jar\trang-20030619\trang-20030619\trang.jar persons.xml personsFormat.xsd personsFormat.xsd

<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="information"> <xs:complexType> <xs:sequence>

<xs:element maxOccurs="unbounded" ref="person"/> </xs:sequence> </xs:complexType>

</xs:element> <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element ref="name"/> <xs:element ref="age"/> <xs:element ref="gender"/> </xs:sequence> <xs:attribute name="id" use="required" type="xs:integer"/> </xs:complexType> </xs:element> <xs:element name="name" type="xs:NCName"/> <xs:element name="age" type="xs:integer"/> <xs:element name="gender" type="xs:NCName"/> </xs:schema>

Vous aimerez peut-être aussi