Using XML with Legacy Business Applications (Paperback)

Michael C. Rawlins

  • 出版商: Addison Wesley
  • 出版日期: 2003-08-07
  • 定價: $1,550
  • 售價: 1.9$299
  • 語言: 英文
  • 頁數: 624
  • 裝訂: Paperback
  • ISBN: 0321154940
  • ISBN-13: 9780321154941
  • 相關分類: XML
  • 立即出貨(限量) (庫存=1)

買這商品的人也買了...

商品描述

 

Summary

"This volume offers relentlessly pragmatic solutions to help your business applications get the most out of XML, with a breezy style that makes the going easy. Mike has lived this stuff; he has a strong command of the solutions and the philosophy that underlies them."
--Eve Maler, XML Standards Architect, Sun Microsystems

Businesses running legacy applications that do not support XML can face a tough choice: Either keep their legacy applications or switch to newer, XML-enhanced applications. XML presents both challenges and opportunities for organizations as they struggle with their data.

Does this dilemma sound familiar? What if you could enable a legacy application to support XML? You can. In Using XML with Legacy Business Applications, e-commerce expert Michael C. Rawlins outlines usable techniques for solving day-to-day XML-related data exchange problems. Using an easy-to-understand cookbook approach, Rawlins shows you how to build XML support into legacy business applications using Java and C++. The techniques are illustrated by building converters for legacy formats. Converting CSV files, flat files, and X12 EDI to and from XML will never be easier!

Inside you'll find:

  • A concise tutorial for learning to read W3C XML schemas
  • An introduction to using XSLT to transform between different XML formats
  • Simple, pragmatic advice on transporting XML documents securely over the Internet

For developers working with either MSXML with Visual C++ or Java and Xerces:

  • See Chapter 3 for a step-by-step guide to enabling existing business applications to export XML documents
  • See Chapter 2 for a step-by-step guide to enabling existing business applications to import XML documents
  • See Chapter 5 for code examples and tips for validating XML documents against schemas
  • See Chapter 12 for general tips on building commerce support into an application

For end users who need a simple and robust conversion utility:

  • See Chapter 7 for converting CSV files to and from XML
  • See Chapter 8 for converting flat files to and from XML
  • See Chapter 9 for converting X12 EDI to and from XML
  • See Chapter 11 for tips on how to use these techniques together for complex format conversions  

Table of Contents

Preface.


1. Introduction.

The Problem.

What Do We Need in a Solution?

Functional Requirements.

Nonfunctional Requirements: Good, Fast, and Cheap.

The Overview of a Solution.

Architecture.

Why Not Use XSLT for Everything?

Two Implementations of the Architecture: Java and C++.

The Document Object Model.

Why Use the DOM?

How to Use This Book.

Chapter Organization.

Notes for Primary Audiences.

Chapter Summaries.

Conventions.

What You Need to Use This Book.

What You Should Already Know.

Web Site and Contact Information.

General Software.

Java Software.

C++ Software.

For Developers.

General Coding Approach and Conventions.

Additional C++ Considerations.

How You Can Use the Utilities and Code.

References.

Resources.



2. Converting XML to CSV.

Requirements.

Running the Utility.

Sample Input and Output.

Design.

Naming Elements.

Module Logic.

Java Implementation.

main in XMLToCSVBasic.java.

write in CSVRowWriter.java.

Error Handling.

C++ Implementation.

main in XMLToCSVBasic.cpp.

write in CSVRowWriter.cpp.

Error Handling.

Comparing the Java and C++ Implementations.

Enhancements and Alternatives.

Validation of the Input Document.

Using a ColumnNumber Attribute.

A Recursive Algorithm.

Advanced Functionality.

Resources.



3. Converting CSV to XML.

Requirements.

Running the Utility.

Sample Input and Output.

Design.

Main Routine.

CSVRowReader Class.

Java Implementation.

main in CSVToXMLBasic.java.

parse in CSVRowReader.java.

write in CSVRowReader.java.

C++ Implementation.

main in CSVToXMLBasic.cpp.

parse in CSVRowReader.cpp.

write in CSVRowReader.cpp.

Comparing the Java and C++ Implementations.

Enhancements and Alternatives.

Validation of the Output Document.

Advanced Functionality.

Some Observations.

Resources.



4. Learning to Read XML Schemas.

Rope, Anyone?

A Few Different Document Approaches.

DTD Refresher.

Foundation Concepts and Terminology.

Elements and Types.

Simple and Complex.

General Features.

Schema Declaration in Instance Documents.

Comments and Documentation.

Element Declarations.

Simple Content Elements.

Schema Built-in Data Types.

Extending and Restricting Simple Types.

Setting a Maximum Length.

Setting Minimum and Maximum Values.

Patterns for Identifiers.

Code Lists.

Attribute Declarations.

Complex Content Elements.

Types of Content.

Mandatory, Optional, Limits.

Creating New Complex Types by Extension.

Attribute Declarations.

Understanding Namespaces.

What Is a Namespace?

URIs, URNs, and URLs.

Namespace Qualification in Instance Documents.

The W3C XML Schema-Related Namespaces.

Structuring Schemas.

Global Types and Local Elements versus Global Elements.

Named Types and Anonymous Types.

Modularity: The xs:include and xs:import Elements.

An Example of Importing Type Libraries.

Less Commonly Used W3C XML Schema Language Features.

Is There Data or Not?

Reference.

Resources.



5. Validating against Schemas.

Requirements.

Running the Utilities.

Design.

Java Implementation.

Input Validation in XMLToCSVBasic.java.

Output Validation in CSVToXMLBasic.java.

C++ Implementation.

Input Validation in XMLToCSVBasic.cpp.

Output Validation in CSVToXMLBasic.cpp.

Examples of Input Validation Failures.

Resources.



6. Refining the Design.

Why Refine the Design?

Making XML the Common Format.

Analyzing the Legacy Non-XML Grammars.

Describing the Legacy Non-XML Grammars.

Representing the Legacy Non-XML Grammars in XML.

Instance Document Design.

File Description Document Design.

Schemas for File Description Documents.

Schemas for Source and Target Documents.

Additional DOM Processing Considerations and Strategies.

Multilingual Issues.

Error Handling Strategy.

High-Level Design.

Source Converter Processing.

Target Converter Processing.

Summary of Classes.

Detail Design.

Main Routine Structures.

Converter Base Class.

SourceConverter Base Class (Extends Converter).

TargetConverter Base Class (Extends Converter).

RecordHandler Base Class.

RecordReader Base Class (Extends RecordHandler).

RecordWriter Base Class (Extends RecordHandler).

DataCell Base Class.

Java Implementation.

C++ Implementation.

References.

Resources.



7. Converting CSV Files to and from XML, Revisited.

CSV to XML: Functionality and Operation.

Requirements.

Running the Utility 211 Sample Input and Output: Invoice.

XML to CSV: Functionality and Operation.

Requirements.

Running the Utility.

Sample Input and Output: Purchase Order.

Describing the File Formats.

CSV Physical Characteristics.

XML Output Characteristics.

CSV File Grammar.

Example File Description Documents.

Schema Examples.

High-Level Design Considerations.

Grammar Analysis and Description.

File Description Document Schemas.

CSV to XML: Detail Design.

Main Program.

CSVSourceConverter Class (Extends SourceConverter).

CSVRecordReader Class (Extends RecordReader).

XML to CSV: Detail Design.

Main Program.

CSVTargetConverter Class (Extends TargetConverter).

CSVRecordWriter Class (Extends RecordWriter).

New DataCell Methods and Derived Classes.

New DataCell Methods.

DataCellAN Class.

DataCellReal Class.

DataCellDateMMsDDsYYYY Class.

Java Implementation.

C++ Implementation.

Enhancements and Alternatives.

Additional Data Types.

Variety of Record Types.

Efficiency and Performance.

Resources.



8. Converting Flat Files to and from XML.

Flat File to XML: Functionality and Operation.

Requirements.

Running the Utility.

Sample Input and Output: Invoice.

XML to Flat File: Functionality and Operation.

Requirements.

Running the Utility.

Sample Input and Output: Purchase Order.

Describing the File Formats.

Flat File Physical Characteristics.

XML Output Characteristics.

Flat File Grammar.

Example File Description Documents.

Schema Examples.

High-Level Design Considerations.

Grammar Analysis and Description.

File Description Document Schemas.

Flat File to XML: Detail Design.

Main Program.

FlatSourceConverter Class (Extends SourceConverter).

FlatRecordReader Class (Extends RecordReader).

XML to Flat File: Detail Design.

Main Program.

FlatTargetConverter Class (Extends TargetConverter).

FlatRecordWriter Class (Extends RecordWriter).

New DataCell Methods and Derived Classes.

New DataCell Methods.

New Methods in DataCell Derived Classes.

DataCellN Class.

DataCellDateYYYYMMDD Class.

Java Implementation.

C++ Implementation.

Enhancements and Alternatives.

Additional Data Types.

CSV Record Formats.

Rounding versus Truncation.

Group Fields.

Redefined Fields.

Resources.



9. Converting EDI to and from XML.

Overview of the X12 EDI Syntax and Standards.

X12 to XML: Functionality and Operation.

Requirements.

Running the Utility.

Sample Input and Output: 850 Purchase Order.

XML to X12: Functionality and Operation.

Requirements.

Running the Utility.

Sample Input and Output: 810 Invoice.

Describing the File Formats.

X12 File Physical Characteristics.

XML Output Characteristics.

Transaction Set Grammar.

Example File Description Documents.

Schema Examples.

Supplemental Data Store for Control Numbers.

High-Level Design Considerations.

Grammar Analysis and Description.

File Description Document Schemas.

X12 to XML: Detail Design.

Main Program.

X12SourceConverter Class (Extends SourceConverter).

EDIRecordReader Class (Extends RecordReader).

X12RecordReader Class (Extends EDIRecordReader).

XML to X12: Detail Design.

Main Program.

X12TargetConverter Class (Extends TargetConverter).

EDIRecordWriter Class (Extends RecordWriter).

X12RecordWriter Class (Extends EDIRecordWriter).

New DataCell Methods and Derived Classes.

DataCellX12N Class (Extends DataCellN).

DataCellX12R Class (Extends DataCellReal).

DataCellX12DT Class (Extends DataCellDateYYYYMMDD).

DataCellX12TM Class.

Java Implementation.

C++ Implementation.

Enhancements and Alternatives.

Reference.

Resources.



10. Converting from One XML Format to Another with XSLT.

Why XSLT Is Important.

XSLT Overview.

A Simple Example: Hello World.

Another Simple Example: Changing Tag Names.

A General Approach to Using XSLT.

XPath Basics.

Structuring Stylesheets.

A Bit of Housekeeping.

The xsl:output Element.

Running Transformations from a Command Line.

Manipulating Content.

Adding and Removing Content.

Splitting Data Content.

Combining Data Content.

Changing an Attribute to an Element.

Changing an Element to an Attribute.

Solving Typical Navigation Problems.

Mapping a Flat Structure to a Hierarchy.

Mapping a Hierarchy to a Flat Structure.

Tips for Dealing with Other Navigation Problems.

Advanced Techniques for Processing Content.

Omitting Empty Elements and Attributes.

Converting Coded Values.

Handling Calculations.

Handling Namespaces.

Calling Non-XSLT Procedures.

References.

Resources.



11. Using the Conversion Techniques Together.

Pipe and Filter Revisited.

Sample Conversion Scenarios and Scripts.

Purchase Order: UBL to XML to CSV.

Invoice: Flat File to XML to EDI.

Campaign Contribution Reporting: CSV to XML to Flat File.

Building a System: Babel Blaster.

Version 1.0 Requirements.

Architectural Overview.

Trading Partner/Application Information.

Linking Pipes and Filters.

Version 1.1 Requirements.

Resources.



12. Building XML Support into a Business Application.

What Should Be XMLized?

Devising an Architecture.

Selecting the XML Format.

Changing Your Code.

What about Databases?

Other Approaches and APIs.

Non-XML Issues.

Resources.



13. Security, Transport, Packaging, and Other Issues.

Some General Observations about Security.

Dealing with Security.

Security Requirements and Exposure.

Countermeasures and Remediation Strategies.

Prevention Countermeasures.

Transport.

Packaging.

Common Combinations for Security, Transport, and Packaging.

Emerging Technologies.

What This Means for You.

Reference.



Appendix A. GNU General Public License.


Appendix B. Pseudocode Conventions.


Appendix C. COM Essentials for the Non-COM Programmer.


Bibliography.


Credits.


Index.
Preface.


1. Introduction.

The Problem.

What Do We Need in a Solution?

Functional Requirements.

Nonfunctional Requirements: Good, Fast, and Cheap.

The Overview of a Solution.

Architecture.

Why Not Use XSLT for Everything?

Two Implementations of the Architecture: Java and C++.

The Document Object Model.

Why Use the DOM?

How to Use This Book.

Chapter Organization.

Notes for Primary Audiences.

Chapter Summaries.

Conventions.

What You Need to Use This Book.

What You Should Already Know.

Web Site and Contact Information.

General Software.

Java Software.

C++ Software.

For Developers.

General Coding Approach and Conventions.

Additional C++ Considerations.

How You Can Use the Utilities and Code.

References.

Resources.



2. Converting XML to CSV.

Requirements.

Running the Utility.

Sample Input and Output.

Design.

Naming Elements.

Module Logic.

Java Implementation.

main in XMLToCSVBasic.java.

write in CSVRowWriter.java.

Error Handling.

C++ Implementation.

main in XMLToCSVBasic.cpp.

write in CSVRowWriter.cpp.

Error Handling.

Comparing the Java and C++ Implementations.

Enhancements and Alternatives.

Validation of the Input Document.

Using a ColumnNumber Attribute.

A Recursive Algorithm.

Advanced Functionality.

Resources.



3. Converting CSV to XML.

Requirements.

Running the Utility.

Sample Input and Output.

Design.

Main Routine.

CSVRowReader Class.

Java Implementation.

main in CSVToXMLBasic.java.

parse in CSVRowReader.java.

write in CSVRowReader.java.

C++ Implementation.

main in CSVToXMLBasic.cpp.

parse in CSVRowReader.cpp.

write in CSVRowReader.cpp.

Comparing the Java and C++ Implementations.

Enhancements and Alternatives.

Validation of the Output Document.

Advanced Functionality.

Some Observations.

Resources.



4. Learning to Read XML Schemas.

Rope, Anyone?

A Few Different Document Approaches.

DTD Refresher.

Foundation Concepts and Terminology.

Elements and Types.

Simple and Complex.

General Features.

Schema Declaration in Instance Documents.

Comments and Documentation.

Element Declarations.

Simple Content Elements.

Schema Built-in Data Types.

Extending and Restricting Simple Types.

Setting a Maximum Length.

Setting Minimum and Maximum Values.

Patterns for Identifiers.

Code Lists.

Attribute Declarations.

Complex Content Elements.

Types of Content.

Mandatory, Optional, Limits.

Creating New Complex Types by Extension.

Attribute Declarations.

Understanding Namespaces.

What Is a Namespace?

URIs, URNs, and URLs.

Namespace Qualification in Instance Documents.

The W3C XML Schema-Related Namespaces.

Structuring Schemas.

Global Types and Local Elements versus Global Elements.

Named Types and Anonymous Types.

Modularity: The xs:include and xs:import Elements.

An Example of Importing Type Libraries.

Less Commonly Used W3C XML Schema Language Features.

Is There Data or Not?

Reference.

Resources.



5. Validating against Schemas.

Requirements.

Running the Utilities.

Design.

Java Implementation.

Input Validation in XMLToCSVBasic.java.

Output Validation in CSVToXMLBasic.java.

C++ Implementation.

Input Validation in XMLToCSVBasic.cpp.

Output Validation in CSVToXMLBasic.cpp.

Examples of Input Validation Failures.

Resources.



6. Refining the Design.

Why Refine the Design?

Making XML the Common Format.

Analyzing the Legacy Non-XML Grammars.

Describing the Legacy Non-XML Grammars.

Representing the Legacy Non-XML Grammars in XML.

Instance Document Design.

File Description Document Design.

Schemas for File Description Documents.

Schemas for Source and Target Documents.

Additional DOM Processing Considerations and Strategies.

Multilingual Issues.

Error Handling Strategy.

High-Level Design.

Source Converter Processing.

Target Converter Processing.

Summary of Classes.

Detail Design.

Main Routine Structures.

Converter Base Class.

SourceConverter Base Class (Extends Converter).

TargetConverter Base Class (Extends Converter).

RecordHandler Base Class.

RecordReader Base Class (Extends RecordHandler).

RecordWriter Base Class (Extends RecordHandler).

DataCell Base Class.

Java Implementation.

C++ Implementation.

References.

Resources.



7. Converting CSV Files to and from XML, Revisited.

CSV to XML: Functionality and Operation.

Requirements.

Running the Utility 211 Sample Input and Output: Invoice.

XML to CSV: Functionality and Operation.

Requirements.

Running the Utility.

Sample Input and Output: Purchase Order.

Describing the File Formats.

CSV Physical Characteristics.

XML Output Characteristics.

CSV File Grammar.

Example File Description Documents.

Schema Examples.

High-Level Design Considerations.

Grammar Analysis and Description.

File Description Document Schemas.

CSV to XML: Detail Design.

Main Program.

CSVSourceConverter Class (Extends SourceConverter).

CSVRecordReader Class (Extends RecordReader).

XML to CSV: Detail Design.

Main Program.

CSVTargetConverter Class (Extends TargetConverter).

CSVRecordWriter Class (Extends RecordWriter).

New DataCell Methods and Derived Classes.

New DataCell Methods.

DataCellAN Class.

DataCellReal Class.

DataCellDateMMsDDsYYYY Class.

Java Implementation.

C++ Implementation.

Enhancements and Alternatives.

Additional Data Types.

Variety of Record Types.

Efficiency and Performance.

Resources.



8. Converting Flat Files to and from XML.

Flat File to XML: Functionality and Operation.

Requirements.

Running the Utility.

Sample Input and Output: Invoice.

XML to Flat File: Functionality and Operation.

Requirements.

Running the Utility.

Sample Input and Output: Purchase Order.

Describing the File Formats.

Flat File Physical Characteristics.

XML Output Characteristics.

Flat File Grammar.

Example File Description Documents.

Schema Examples.

High-Level Design Considerations.

Grammar Analysis and Description.

File Description Document Schemas.

Flat File to XML: Detail Design.

Main Program.

FlatSourceConverter Class (Extends SourceConverter).

FlatRecordReader Class (Extends RecordReader).

XML to Flat File: Detail Design.

Main Program.

FlatTargetConverter Class (Extends TargetConverter).

FlatRecordWriter Class (Extends RecordWriter).

New DataCell Methods and Derived Classes.

New DataCell Methods.

New Methods in DataCell Derived Classes.

DataCellN Class.

DataCellDateYYYYMMDD Class.

Java Implementation.

C++ Implementation.

Enhancements and Alternatives.

Additional Data Types.

CSV Record Formats.

Rounding versus Truncation.

Group Fields.

Redefined Fields.

Resources.



9. Converting EDI to and from XML.

Overview of the X12 EDI Syntax and Standards.

X12 to XML: Functionality and Operation.

Requirements.

Running the Utility.

Sample Input and Output: 850 Purchase Order.

XML to X12: Functionality and Operation.

Requirements.

Running the Utility.

Sample Input and Output: 810 Invoice.

Describing the File Formats.

X12 File Physical Characteristics.

XML Output Characteristics.

Transaction Set Grammar.

Example File Description Documents.

Schema Examples.

Supplemental Data Store for Control Numbers.

High-Level Design Considerations.

Grammar Analysis and Description.

File Description Document Schemas.

X12 to XML: Detail Design.

Main Program.

X12SourceConverter Class (Extends SourceConverter).

EDIRecordReader Class (Extends RecordReader).

X12RecordReader Class (Extends EDIRecordReader).

XML to X12: Detail Design.

Main Program.

X12TargetConverter Class (Extends TargetConverter).

EDIRecordWriter Class (Extends RecordWriter).

X12RecordWriter Class (Extends EDIRecordWriter).

New DataCell Methods and Derived Classes.

DataCellX12N Class (Extends DataCellN).

DataCellX12R Class (Extends DataCellReal).

DataCellX12DT Class (Extends DataCellDateYYYYMMDD).

DataCellX12TM Class.

Java Implementation.

C++ Implementation.

Enhancements and Alternatives.

Reference.

Resources.



10. Converting from One XML Format to Another with XSLT.

Why XSLT Is Important.

XSLT Overview.

A Simple Example: Hello World.

Another Simple Example: Changing Tag Names.

A General Approach to Using XSLT.

XPath Basics.

Structuring Stylesheets.

A Bit of Housekeeping.

The xsl:output Element.

Running Transformations from a Command Line.

Manipulating Content.

Adding and Removing Content.

Splitting Data Content.

Combining Data Content.

Changing an Attribute to an Element.

Changing an Element to an Attribute.

Solving Typical Navigation Problems.

Mapping a Flat Structure to a Hierarchy.

Mapping a Hierarchy to a Flat Structure.

Tips for Dealing with Other Navigation Problems.

Advanced Techniques for Processing Content.

Omitting Empty Elements and Attributes.

Converting Coded Values.

Handling Calculations.

Handling Namespaces.

Calling Non-XSLT Procedures.

References.

Resources.



11. Using the Conversion Techniques Together.

Pipe and Filter Revisited.

Sample Conversion Scenarios and Scripts.

Purchase Order: UBL to XML to CSV.

Invoice: Flat File to XML to EDI.

Campaign Contribution Reporting: CSV to XML to Flat File.

Building a System: Babel Blaster.

Version 1.0 Requirements.

Architectural Overview.

Trading Partner/Application Information.

Linking Pipes and Filters.

Version 1.1 Requirements.

Resources.



12. Building XML Support into a Business Application.

What Should Be XMLized?

Devising an Architecture.

Selecting the XML Format.

Changing Your Code.

What about Databases?

Other Approaches and APIs.

Non-XML Issues.

Resources.



13. Security, Transport, Packaging, and Other Issues.

Some General Observations about Security.

Dealing with Security.

Security Requirements and Exposure.

Countermeasures and Remediation Strategies.

Prevention Countermeasures.

Transport.

Packaging.

Common Combinations for Security, Transport, and Packaging.

Emerging Technologies.

What This Means for You.

Reference.



Appendix A. GNU General Public License.


Appendix B. Pseudocode Conventions.


Appendix C. COM Essentials for the Non-COM Programmer.


Bibliography.


Credits.


Index.

商品描述(中文翻譯)

 


摘要



'這本書提供了實用的解決方案,幫助您的業務應用程式充分利用XML,並以輕鬆的風格使讀者容易上手。Mike對這方面有豐富的經驗,他對解決方案和其背後的理念有著深入的理解。'
--Eve Maler, XML標準架構師,Sun Microsystems


運行不支援XML的舊應用程式的企業可能面臨艱難的選擇:保留舊應用程式還是轉換為支援XML的新應用程式。對於組織來說,XML既帶來挑戰也帶來機會,因為他們在處理數據時面臨著困境。


這個困境聽起來很熟悉嗎?如果您能使舊應用程式支援XML,該有多好?您可以實現這一點。在《使用XML與舊業務應用程式》中,電子商務專家Michael C. Rawlins介紹了解決日常XML相關數據交換問題的可用技術。Rawlins以易於理解的烹飪書方式,展示了如何使用Java和C++將XML支援集成到舊業務應用程式中。這些技術通過構建舊格式的轉換器進行演示。將CSV文件、平面文件和X12 EDI文件轉換為XML,再從XML轉換回來,將變得更加容易!


本書內容包括:



  • 簡明教程,學習閱讀W3C XML模式

  • 介紹使用XSLT在不同的XML格式之間進行轉換

  • 關於在互聯網上安全傳輸XML文件的簡單實用建議


對於使用MSXML與Visual C++或Java和Xerces的開發人員:



  • 請參閱第3章,了解如何逐步指南將現有的業務應用程式配置為導出XML文件

  • 請參閱第2章,了解如何逐步指南將現有的業務應用程式配置為導入XML文件

  • 請參閱第5章,了解驗證XML文件與模式的代碼示例和技巧

  • 請參閱第12章,了解將商業支援集成到應用程式中的一般技巧


對於需要簡單而強大的轉換工具的最終用戶:



  • 請參閱第7章,了解如何將CSV文件轉換為XML,以及如何從XML轉換回CSV文件

  • 請參閱第8章,了解如何將平面文件轉換為XML,以及如何從XML轉換回平面文件

  • 請參閱第9章,了解如何將X12 EDI文件轉換為XML,以及如何從XML轉換回X12 EDI文件

  • 請參閱第11章,了解如何將這些技術結合使用進行複雜格式轉換的技巧



目錄



前言。


1. 簡介。




問題。




解決方案需要什麼?




功能需求。




非功能需求:好、快、便宜。




解決方案概述。




架構。




為什麼不全部使用XSLT?




架構的兩種實現:Java和C++。




文檔對象模型。




為什麼使用DOM?




如何使用本書。




章節組織。




主要讀者注意事項。




章節摘要。<