Chapter 1. About epcEdit

epcEdit is an editor for XML and SGML documents. The Standard Generalized Markup Language (SGML) is an international standard (ISO 8879:1986) for specifying ways to describe text. The objective is to provide a method of identifying the components of a document (e.g. titles, sections, paragraphs, lists, etc) in a manner that is independent of any make, model, or manufacture of software or hardware. SGML files can be used on any kind of computer anywhere in the world, and are not tied to any particular program. SGML has been around for a long time and is very stable, with lots of software and a solid industrial and research base to work from.The information in such files can be edited, extracted, sorted, reprocessed, updated, and displayed or printed by any SGML software, and there are hundreds to choose from: editors, browsers, databases, formatters, etc.

XML is the Extensible Markup Language. It is designed to improve the functionality of the Web by providing more flexible and adaptable information identification. Like SGML, XML is actually a metalanguage -- a language for describing other languages -- which lets you design your own customized markup languages for limitless different types of documents. SGML has lots of extra, optional bells and whistles which make it complex to handle in a Web environment, so XML has removed all these optional features to make a simpler system for use online. XML can even be used without a DTD, making it easy to write simple structures for once-off usage.

An important distinction is evident between the two major classes of XML application: document and data, and this is reflected especially in editing and development software:

While in theory it would be possible to use a data-class editor to write a novel, or a document-class editor to create invoices, specialist users in both classes should remain aware that the other applications do exist.

epcEdit is a document-style editor that focuses on the well-formedness and validity of SGML and XML documents. It separates the information about the document structure (the markup) from the document content (the data) and simplifies editing of the document content and the document structure by providing easy access to both data and markup through an easy-to-use graphical user interface.

epcEdit is a validating editor that keeps the structure of your document in conformance with a Document Type Definition (a DTD).

A DTD is a formal description in XML/SGML Declaration Syntax of a particular type of document. It sets out what names are to be used for the different types of element, where they may occur, and how they all fit together. A DTD provides applications with advance notice of what names and structures can be used in a particular document type. Using a DTD when editing files means you can be certain that all documents which belong to a particular type will be constructed and named in a consistent and conformant manner. DTDs are less important for processing documents already known to be well-formed, but they are still needed if you want to take advantage of XML's special attribute types like the built-in ID/IDREF cross-reference mechanism.

Although epcEdit's strength is the capability to control the structure of a document and to keep the document in conformance with a DTD, epcEdit can be used to create and edit DTD-less, wellformed XML documents.

XML lets you use a Document Type Definition (DTD) to describe the markup (elements and other constructs) available in any specific type of document. However, the design and construction of a DTD can be complex and non-trivial, so XML also lets you work without a DTD. DTDless operation means you can invent markup without having to define it formally, provided you stick to the rules of XML syntax.

To make this work, a DTDless file is assumed to define its own markup by the existence and location of elements where you create them. When an XML application encounters a DTDless file, it builds its internal model of the document structure while it reads it, because it has no DTD to tell it what to expect. There must therefore be no surprises or ambiguous syntax: the document must be well-formed (must follow the rules).

epcEdit's approach to DTDless documents helps you to maintain a consistent set of elements and element attributes across different documents, even in the absence of a DTD.

epcEdit is a cross-platform solution that runs on Microsoft Windows, on Linux and a number of different Unix Systems, and on the Apple MacIntosh under MacOS X.