| How XML Enables Internet Trading Communities and Marketplaces | Table of contents | Indexes | Financial Products Markup Language | |||
| Arofan T. Gregory |
| Lead Scientist |
| Commerce One |
| 2440 W. El Camino real Mountain View (California) |
| Biography |
Documentum, Inc. ![]() Pleasanton ![]() Quiggle, Jeff | Jeff Quiggle |
| Consulting Manager |
| Documentum, Inc. |
| 6801 Koll Center Parkway Pleasanton (California) |
| Biography |
Introduction and Background |
The Problem Space |
Content Authoring |
| In this section, we will briefly describe the problems found on the content authoring side. |
Authoring and Review Cycle | ||||||
Unsophisticated Authors | ||||||
No Link Between Source and HTML Documents | ||||||
No Way to Collect Metadata | ||||||
No Version Tracking | ||||||
Web Publishing and Maintenance |
Poor HTML | ||||||
Unreliable Cross-Referencing | ||||||
Website Maintenance Nightmare | ||||||
Historical Tools and Process |
| Briefly, we should examine the tools that had been chosen to support this system, and the way in which they were deployed. |
Authoring Tools |
Document Management |
Web Content Delivery |
System Design and Improved Process |
Implementation Plan |
System Design |
Content Authoring and Review | ||||||
| As documents passed through the review process, they had a status automatically set by the workflow system, so that managers could see where each document was in the review process. |
Publishing | ||||||
Coding/Implementation |
| The coding and implementation of this design was done by a team of 5 consultants, two of them full-time, and the rest half-time. A period of thirty days was allowed for development (see below). |
Tools | ||||||
Programming Languages | ||||||
Parsers | ||||||
Editors | ||||||
Training Requirements | ||||||
Implementation Challenges |
| Rather than describe each of the difficulties encountered during implementation in detail , a simple listing will suffice: |
Solutions and Considerations |
| Ultimately, the project was successful, and the users reported that the system was both usable and represented a significant improvement over the one it replaced. |
Overcoming Challenges |
| The flexibility of the client manager assigned to the project was a major factor in this success. The support staff and certain of the authors were also very dedicated to helping the project succeed. By working with the implementors in a cooperative spirit, many of the difficulties listed above were minimized. The consulting team, too, was overall a very experienced one, with a good deal of familiarity with the Documentum platform, and considerable expertise with the Web-related aspects of the tool. It is worth noting that only two of the consultants had significant experience with SGML and XML before this project - the others were quick studies, but were new to the technology. This did not present a major barrier, however. |
Considerations: The Good and the Bad |
| A number of factors stand out in this implementation that can be pointed to as valuable experience for others doing similar web-publishing applications. |
Definite Target, Definite Timeframe | ||||||
| The very limited nature of this project was critical to its success, because the end goal had to be kept firmly in sight. It was not plagued by shifting requirements or long-term vision. Because timeframes were short, and need was high, the implementation maintained a focus that is not usual in this kind of project. Risk-management was a critical part of running the project, and the consulting team recognized that client management had to be kept informed at all times. |
| Because SGML/XML was used strictly as a solution, and not because it was "cool" or "cutting edge," the possibilities of the technology did not hinder the deployment of the solution. Many aspects of repository-based SGML/XML systems, such as component reuse, were simply not considered, simplifying the problem to be solved. |
Not Bound By "Traditional" SGML Implementation Philosophy | ||||||
| As a direct result of the above factors, many of the difficulties encountered in traditional SGML implementations were avoided. There were no prior expectations on the part of client staff about what SGML/XML was supposed to do. The DTD, and the process used to create it, best demonstrate this aspect of the project. The attitude was "keep it simple," which allowed use of the tag set to be considerably simpler than either standard Word templates or typical content-based DTDs. Because content-tagging was only marginally useful, it was not a focus of the document analysis - formatting was the goal, and it was an easy target to hit. |
| At the same time, this means that future use of the XML source may not be optimal. The highest priority was to get a system deployed, so no particular thought was given to what might be in the future. Even the possibility of directly delivering the XML over the Website was not considered, although the DTD would be sufficient for this purpose. |
XML Does Nothing | ||||||
| ( By itself, that is!) SGML and XML are just data formats, and without the right combination of tools, they do not convey any particular power to an application. The most difficult part of building an XML-based system, and one that requires a lot of thought, is the allocation of functionality to the different aspects of the system. In many cases, the Documentum repository was capable of doing things that could also be driven from XML-based technology. Very often, SGML and XML consultants will do things the hard way because it aligns with the "purer" religious aspect of open-standards technology. We did not have the luxury of doing this, so all technology decisions were driven by a need to provide solid, reliable functionality as quickly as possible |
| This application combined XML-driven transformations, repository-based workflow, versioning, and publishing, automated querying, CGI programming, and a host of other technologies. The key was to find the best solution by choosing on the merits of each, rather than by focusing on demonstrating the power of a specific technology. This is harder to do that it sounds! |
Tool Selection | ||||||
| Tools selection was a critical part of this application. Choosing FrameMaker+SGML was not appropriate, because it placed requirements on the user's workstations that we knew could not be met. This placed the entire project at risk, and it was only through good fortune and the willingness of SoftQuad to provide beta software and the client to accept the risks with betting on a product still in beta that a solution was reached. |
| Documentum was also the right tool for the job - what EDMS 98 lacked in native SGML/XML functionality, it more than made up for by providing workflow, transformation, and customization APIs. In many cases, a "native" XML or SGML tool is chosen when it meets the needs of the structured document format, but is not well-qualified in other respects. |
| And Thank God for James Clark! |
Summary |
| The Web Content Authoring project shows what XML implementations promise to give us: an enabling Web-based technology that does not need to "push the envelope," but simply needs to get the job done. As XML tools become more common, they will be able to give us more and more functionality with less and less effort. The most conspicuous part of this project was that XML was used to simplify the HTML authoring process, something that is not generally considered a part of what XML has to offer us. In the future, it is hoped that implementors will not be bound by traditional uses of structured markup and related technologies, but will recognize that the flexibility they offer can be used in many different ways. |
Appendix: The DTD |
| The DTD is self-explanatory. Note that it is simple in the extreme, and that it is format-oriented more than it is content-oriented. As an exercise, compare it to the HTML 3.2 DTD, and you tell us which is easier to use! |
<!-- DTD For ASCEND TECH PUBS (SGML Version 1.2) -->
<!-- GENERAL COMMENTS:
This DTD is meant to be as simple as possible, and to provide maximum flexibility
for the authors. As a consequence, there is very little containership, except as
necessary to drive known formatting and processing requirements. Although there is
a recognizable division structure in most of these documents, it has not been used here.
For consistency of structure, a mechanism has been provided as part of the
Repository application to provide a template containing skeletal tags and
some pre-generated headings, but the use of these headings is not
enforced by the parser.
Added the "SITELINK" element 5/14/99 - Arofan Gregory
Added the "GRAPHICSLINK" element 5/14/99 - Arofan Gregory
-->
<!ENTITY % text "#PCDATA | ITAL | BOLD | BOLDITAL | CODE | DOCLINK | SITELINK">
<!-- Entities for Special Characters -->
<!-- Note: Need to copy these inline, or determine a mechanism for delivering them to the
client machine and processor where they an be used. Currently, it is anticipated that
this will be done using the SGMLOpen catalog mechanism. -->
<!-- ISO SDATA ENTITY SETS -->
<!ENTITY % HTMLlat1 PUBLIC "-//W3C//ENTITIES Latin 1//EN//HTML">
%HTMLlat1;
<!ENTITY gt ">" >
<!ENTITY lt "<" >
<!ENTITY amp "&" >
<!ENTITY Tab " ">
<!ELEMENT PUBS.DOC - o (HEADER, BODY)>
<!ATTLIST PUBS.DOC OBJECT.ID CDATA #IMPLIED
OBJECT.VERSION CDATA #IMPLIED>
<!-- These attributes will be populated automatically by the repository. -->
<!ELEMENT HEADER - o (ATTRIBUTES, TITLE, SUBTITLE?)>
<!ELEMENT BODY - o (CODEBLOCK | PARA | HEAD | SUBHEAD | SUBSUBHEAD | NUMLIST | BULIST | CAPTION | GRAPHIC | GRAPHICSLINK |
TABLE | NOTE | STEP)+>
<!-- HEAD ELEMENTS -->
<!ELEMENT ATTRIBUTES - O EMPTY>
<!ATTLIST ATTRIBUTES
SECURITY CDATA #REQUIRED
ENTITLEMENT CDATA #REQUIRED
CONTENT.TYPE CDATA #REQUIRED
PRODUCT CDATA #REQUIRED
PRODUCT.FAMILY CDATA #REQUIRED
>
<!ELEMENT TITLE - o (#PCDATA)>
<!ELEMENT SUBTITLE - o (#PCDATA)>
<!-- Inline tagging is not allowed in titles, as these values will be promoted to
attributes on the object, and displayed through an interface that will not understand
any inline tagging (they would be displayed as literal text!) This helps to simplify
processing. -->
<!--BODY ELEMENTS-->
<!ELEMENT HEAD - o (%text;)+>
<!ELEMENT SUBHEAD - o (%text;)+>
<!ELEMENT SUBSUBHEAD - o (%text;)+>
<!ELEMENT PARA - o (%text;)+>
<!ELEMENT CODEBLOCK - o (#PCDATA | BOLD | ITAL | BOLDITAL)+>
<!-- LIST DECLARATIONS -->
<!ELEMENT BULIST - o (ITEM | SUB.NUMLIST | SUB.BULIST | CODEBLOCK)+>
<!ELEMENT NUMLIST - o (ITEM | SUB.BULIST | SUB.NUMLIST | CODEBLOCK)+>
<!ELEMENT SUB.NUMLIST - o (ITEM | SUB.SUB.NUMLIST | SUB.SUB.BULIST | CODEBLOCK)+>
<!ELEMENT SUB.BULIST - o (ITEM | SUB.SUB.NUMLIST | SUB.SUB.BULIST | CODEBLOCK)+>
<!ELEMENT SUB.SUB.NUMLIST - o (ITEM | CODEBLOCK)+>
<!ELEMENT SUB.SUB.BULIST - o (ITEM | CODEBLOCK)+>
<!ELEMENT ITEM - o (%text;)+>
<!ELEMENT NOTE - - (#PCDATA)>
<!-- There is only ever a single paragraph in a NOTE -->
<!-- The STEP element causes everything inside it to be indented (put all HTML inside <UL></UL> tags. Each Step has an
auto-generated number in front of the STEP.TITLE (driven by the filter and authoring application, not by the HTML tagging).
A STEP.TITLE is formatted exactly like a HEAD. This construction is used to drive the auto-generated TOCs in the published
Web format. -->
<!ELEMENT STEP - - (STEP.TITLE, (CODEBLOCK | PARA |SUBHEAD | SUBSUBHEAD | NUMLIST | BULIST | CAPTION | GRAPHIC | TABLE |
NOTE)+)>
<!ELEMENT STEP.TITLE - o (#PCDATA)>
<!-- GRAPHICS -->
<!ELEMENT CAPTION - o (%text;)+>
<!ELEMENT GRAPHIC - o EMPTY>
<!-- The FILE attribute contains the name of the graphic to be included.
It is assumed that the graphic will be in the same directory as the XML
Document. -->
<!ATTLIST GRAPHIC FILE CDATA #REQUIRED
HEIGHT CDATA #REQUIRED
WIDTH CDATA #REQUIRED >
<!ELEMENT GRAPHICSLINK - o EMPTY >
<!ATTLIST GRAPHICSLINK FILE CDATA #REQUIRED
PLACEHOLDER CDATA #FIXED " ">
<!-- INLINE ELEMENTS -->
<!ELEMENT ITAL - - (#PCDATA)>
<!ELEMENT BOLD - - (#PCDATA)>
<!ELEMENT BOLDITAL - - (#PCDATA)>
<!ELEMENT CODE - - (#PCDATA)>
<!ELEMENT DOCLINK - - (#PCDATA)>
<!-- The DOCLINK element contains the text of the title of a referenced document
object in the docbase. This is automatically verified on Check-In. Consequently,
special characters and inline tagging are not allowed in titles. -->
<!ELEMENT SITELINK - - (#PCDATA)>
<!ATTLIST SITELINK URL CDATA #REQUIRED>
<!-- The SITELINK element contains the text of a reference to a site on the internet.
The attribute URL contains the URL of the target site. -->
<!-- TABLES -->
<!ELEMENT TABLE - - (TR*)>
<!ATTLIST TABLE WIDTH CDATA #IMPLIED
BORDER CDATA #IMPLIED>
<!ELEMENT TR - - (TD*)>
<!ATTLIST TR
ALIGN (LEFT|RIGHT|CENTER) #IMPLIED>
<!ELEMENT TD - - (%text;)+>
<!ATTLIST TD
ALIGN (LEFT|RIGHT|CENTER) #IMPLIED>
|
| How XML Enables Internet Trading Communities and Marketplaces | Table of contents | Indexes | Financial Products Markup Language | |||