The Plug-In samples include a basic XML editor:
To build:
File/New/Project
Plug-in Development/Plug-in Project.
XEdit for Name
Default values for Plug-in Project Structure.
Create a plug-in project using a code generation wizard and the Plug-in with an editor options.
Next and then the Finish option on the next screen Simple Plug-in Content;
Rebuild All
Installing:
Use a plug-in wizard to export it as a tar.gz file
Untar the file (in the eclipse directory) and copy the result to the plugins directory
Restart Eclipse
After all that, it's a plain text editor with syntax coloring
Divided into Web Standard Tools and J2EE Standard Tools
Web Standard Tools subproject supports XML Web Services including HTML, XML, CSS, JavaScript, WSDL, SOAP, UDDI, and SQL
J2EE Standard Tools supports JAX-RPC, JSR-109, servlets, Java Server Pages, EJB, JAX-RPC, JDBC, and JAXP
WSDL and W3C Schema Editor
Web Service Explorer
Web Service Wizard
WS-I Test Tools
J2EE Explorer
JAX-RPC
JSR 109
Axis 1.0
Eclipse 3.1
Eclipse Modeling Framework (EMF)
Graphical Editing Framework (GEF)
Java EMF Model Runtime
Install by unzipping into your eclipse directory, or copy all the features and plugins directories into the eclipse directory
Or just use the update manager
Kicks in automatically when you open an XML document in Eclipse (once installed)
Graphical tree editing mode (Flaky)
Syntax colored source editing mode (not too bad)
Define use cases
Hand author sample documents
Write DTD/XSD/RNG (optional!)
Write software to process the documents: XSL, Java, Database, etc.
Observers
Date
Species:
Name
Number
Location
Notes
Observers
Certainty
Location
Let's put this into Eclipse
New Other-->XML/XML
</ autocloses tag
No quickfixes
Auto-complete using previously used tags
DTD editing is pretty much plain-text only
Validate Using Context Menu/Validate XML File
Validation is somewhat broken; validates against element declarations; not entire document
Validates undeclared elements
Need to "validate" the DTD; syntax errors are not detected automatically
Format Document
Hmm, what about namespaces?
elementFormDefault="qualified"
Add an element declaration:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaces.cafeconleche.org/birds/"
xmlns:tns="http://namespaces.cafeconleche.org/birds/"
elementFormDefault="qualified">
<element name="daylist">
<complexType>
<sequence>
</sequence>
</complexType>
</element>
</schema>
Unlike DTDs errors are noted dynamically
Set document to validate against schema (comment out DOCTYPE and notice how "too smart" the comment autocomplete is):
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://namespaces.cafeconleche.org/birds/ daylist.xsd"
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaces.cafeconleche.org/birds/"
xmlns="http://namespaces.cafeconleche.org/birds/"
elementFormDefault="qualified">
<xsd:element name="daylist">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="site">
<xsd:complexType>
<xsd:complexContent mixed="true">
<xsd:restriction base="xsd:anyType">
<xsd:attribute name="id" type="xsd:ID" />
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="date" type="xsd:string" />
<xsd:element name="observers">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="observer" type="xsd:string"
minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="species" type="SpeciesType" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="SpeciesType" mixed="true">
<xsd:sequence>
<xsd:element name="location" type="xsd:string" minOccurs="0" />
<xsd:element name="time" type="xsd:string" minOccurs="0" />
<xsd:element name="note" type="xsd:string" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
In graph view
Change time type to xsd:time
Change multiplicity; Allow multiple sites
Change date to regex pattern \d\d\d\d-\d\d-\d\d
????
No support; can edit like anything else
Creates Files from DTD/Schema
Demo
W3C XML Schema Language is supported
Schemas are more descriptive than DTDs so more content can be automatically generated
No built in support as such
Can use usual XML editor for XSLT
Can use usual Java editor for Java code
Expand All/Collapse All in Graphical View
Grammar Constraints
Reload Dependencies
Graphical editing mode (not too flaky)
Source editing mode (basically same as XML)
Binding Wizard
Validator
Search UDDI Registries
Navigate Web Services Inspection Language (WSIL) Documents
Import WSDL into development project
Dynamic invocation based on WSDL
View SOAP messages
Publish WSDL into UDDI Registries
Generate/deploy/test/publish
Configure project, server, and SOAP engine
SOAP Code generators
WSDL to client proxy
WSDL to server skeleton
Java to WSDL
JSP test client
WSDL 1.1 Validator
SOAP 1.1 Message Monitor/Analyzer
Over 40 different XML plugins for Eclipse
Payware, open source, etc.
Some for specific formats like VoiceXML
Some for specific tools like schema validation
Some generic editors
Orbeon Studio
Oxygen http://www.oxygenxml.com/
JAPISoft's http://www.japisoft.com/exslt/
XMLAuthor http://www.svcdelivery.com/xmlauthor/
XMLBuddy http://www.xmlbuddy.com/ (Pro and free versions)
Compound XML Document Editor http://www.alphaworks.ibm.com/tech/cxde
Improve XSLT Plugin for Eclipse (broken? Deregisters WebTools)
FOPBridge http://www.ahmadsoft.org/fopbridge.html
XSD http://www.eclipse.org/xsd/
Tiger XSLT Mapper http://www.axizon.com/
This presentation: http://www.cafeconleche.org/slides/eclipseworld2005/xmlediting/
Eclipse WebTools project: http://www.eclipse.org/webtools/