Posted to tcl by mjanssen at Fri Oct 30 13:41:06 GMT 2015view pretty
This: text {<?xml version="1.0" encoding="UTF-8"?>} text {<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">} define root { item+ } define item { part1! part2? part3 } define part1 xsd:string define part2 xsd:decimal {This is optional} extension part3 xsd:normalizedString {{attr1 {this is attr1}}} { Complex stuff } text "</xsd:schema>" Becomes: <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xsd:element name="root" type="rootType"/> <xsd:complexType name="rootType"> <xsd:sequence> <xsd:element minOccurs="1" maxOccurs="unbounded" ref="item"/> </xsd:sequence> </xsd:complexType> <xsd:element name="item" type="itemType"/> <xsd:complexType name="itemType"> <xsd:sequence> <xsd:element minOccurs="1" maxOccurs="1" ref="part1"/> <xsd:element minOccurs="0" maxOccurs="1" ref="part2"/> <xsd:element ref="part3"/> </xsd:sequence> </xsd:complexType> <xsd:element name="part1" type="xsd:string"/> <xsd:element name="part2" type="xsd:decimal"> <xsd:annotation> <xsd:documentation>This is optional</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="part3" type="part3Type"/> <xsd:complexType name="part3Type"> <xsd:annotation> <xsd:documentation> Complex stuff </xsd:documentation> </xsd:annotation> <xsd:simpleContent> <xsd:extension base="xsd:normalizedString"> <xsd:attribute name="attr1" use="optional"> <xsd:annotation> <xsd:documentation>this is attr1</xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:schema>