For the most part, XML Spy seems to not suck. Well, up until I started to do XML Schemas...
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xsd:schema PUBLIC "-//W3C//DTD XMLSCHEMA 19991216//EN" "" [ <!ENTITY % p 'xsd:'> <!ENTITY % s ':xsd'> ]> <xsd:schema xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <xsd:element name="pair" > <xsd:complexType content="elementOnly"> <xsd:element name="name" type="xsd:string"/> <xsd:element name="value" type="xsd:string"/> </xsd:complexType> </xsd:element> <xsd:element name="pairList"> <xsd:complexType> <xsd:sequence minOccurs='0' maxOccurs='unbounded'> <xsd:element name="pair"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> |
<?xml version="1.0" encoding="UTF-8"?> <!--DTD generated by XML Spy v3.0.7 NT (http://www.xmlspy.com)--> <!ELEMENT name (#PCDATA)> <!ELEMENT pair (#PCDATA | name | value)*> <!ELEMENT pairList (pair)*> <!ELEMENT value (#PCDATA)> |
<?xml version="1.0" encoding="UTF-8"?> <!--DTD generated by XML Spy v3.0.7 NT (http://www.xmlspy.com)--> <!ELEMENT name (#PCDATA)> <!ELEMENT pair (name, value)> <!ELEMENT pairList (pair)*> <!ELEMENT value (#PCDATA)> |