Appendix: XML Standards Bodies and Open Specifications - Perl Cd Bookshelf [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Perl Cd Bookshelf [Electronic resources] - نسخه متنی

Mark V. Scardina, Ben ChangandJinyu Wang

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید






Appendix: XML Standards Bodies and Open Specifications

Open software standards are defined as open to use by anybody and standard in the way they specify particular functionality; however, these three simple words convey meaning far beyond what’s stated. For example, in an ideal situation, with open software standards, software developers could write programs with components from different vendors and not fear interoperability problems. The problem of being locked into a particular vendor would go away.

The role of the World Web Consortium (W3C) and other standards bodies is to come up with enough quality functionality to satisfy a majority of the software development community. And because requirements change at different times for different parts of the community, these standards bodies must be constantly attuned to the needs of their users and respond with additional functionality specifications or risk the possibility of their standards becoming obsolete. These software standards are especially important when certain industries need to standardize on new technologies such as XML. Not having such standards or having deficient standards would make it very difficult for businesses to interoperate on the Internet. The standards produced by W3C and other standards bodies are the key to pointing the way toward future work and applications.


Introducing the W3C Specifications


Currently, the most important standards body for the XML industry is W3C. According to its web site:

The World Wide Web Consortium was created in October 1994 to lead the World Wide Web to its full potential by developing common protocols that promote its evolution and ensure its interoperability…. By promoting interoperability and encouraging an open forum for discussion, W3C commits to leading the technical evolution of the Web.

Basically, W3C is a consortium composed of W3C employees and companies, such as Oracle, IBM, Microsoft, and Sun Microsystems, that pay membership dues to place their representatives on a number of committees that produce open software standards specifications according to which developers in the industries code. In short, it is a very powerful consortium.

Although some member companies do not wait for the committees to formalize such specifications before they develop company-proprietary APIs, and although some APIs—such as the SAX APIs developed by Dave Megginson—don’t fall under the auspices of W3C, developers know when it comes to the Internet that open standards are the way to go. When W3C comes out with a new API specification, developers flock to it unless the specification is horribly flawed. After the industry developers flock to it, company-proprietary APIs often fall by the wayside. The implications are that many companies can then participate in an industry mechanism, such as an electronic exchange, rather than being subjected to one company dictating what all others should do. W3C’s home page is located at http://www.w3.org, and a free companion tutorial site on the XML family of standards is at http://www.w3schools.com.


W3C XML Specification


The seminal XML specification produced by W3C is the XML 1.0 specification, currently in its third edition, which describes a class of data objects called XML documents and explains how software modules, such as an XML parser, are used by applications to read such documents and provide them with access to the documents’ content and structure. The URL for the XML 1.0 (third edition) specification is http://www.w3.org/TR/2004/REC-xml-20040204/.

The XML 1.1 specification, located at http://www.w3.org/TR/2004/REC-xml11-20040204/, updates the XML 1.0 specification so that it uses the latest Unicode version and adds checking of normalization. If you do not need these features, then you can develop your XML documents per the XML 1.0 specification. XML parsers should be able to understand both versions of the specification.


W3C DOM Specification


DOM is based on an object structure that closely resembles the structure of the documents it models. In DOM, the documents have a logical structure that is similar to a tree, with a root node, leaf nodes, and operations that traverse and extract information from the tree. The DOM 1.0 specification, located at http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/, covers this object structure.

A subsequent version of the DOM specification, the 2.0 specification, splits the specification into the following different modules to address the expanded requirements of the user community:



DOM Level 2 Core http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/



DOM Level 2 Views http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113/



DOM Level 2 Events http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/



DOM Level 2 Style http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/



DOM Level 2 Traversal and Range http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/



DOM Level 2 HTML http://www.w3.org/2003/06/Process-20030618/trl#rec-publication



The final version of the DOM specification, the 3.0 specification, addresses further needs of the user community with these modules:



DOM Level 3 Core http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/



DOM Level 3 Load and Save http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/



DOM Level 3 Validation http://www.w3.org/TR/2004/REC-DOM-Level-3-Val-20040127/




SAX Specification


The SAX specification is not a W3C specification, but because many XML application developers think that it is, it is included in this section. Many XML application developers believe that SAX is a W3C specification because it is a W3C Note and its APIs and the DOM APIs are the main APIs that they use to access and manipulate XML documents. SAX parsing is event-based XML parsing, meaning that when certain events occur or are encountered when processing the XML document—for example, when the root node of the document is encountered—the event handlers or functions are then invoked through function callbacks.

Compared to DOM parsing, SAX is much faster and less memory-intensive because it does not construct an in-memory tree representation. The documentation for both SAX 1.0 and SAX 2.0 with support for XML Namespaces and filters is located at http://www.saxproject.org/.


W3C Namespace Specifications


An XML namespace is a collection of names, identified by a URI reference, that is used in XML documents to differentiate element and attribute names. A namespace is useful when a single XML document contains elements and attributes that are defined for and used by multiple software modules. A namespace is introduced in an XML document by defining a special namespace prefix and prepending that prefix (followed by a colon) to the names of elements and attributes. Namespace prefixes are attributes that are themselves defined using a special prefix called xmlns. The specification is located at http://www.w3.org/TR/1999/REC-xml-names-19990114/.


W3C XML Schema Specification


The W3C XML Schema specification describes the XML Schema language, which provides a more structured and informative constraint on the XML document than a DTD, namely one that also, among other things:



Supports both primitive and complex data types



Supports restrictions or extensions on data types



Is written in XML



Divided into two documents, the Structures portion is located at http://www.w3.org/TR/xmlschema-1/ and the Datatypes portion is located at http://www.w3.org/TR/xmlschema-2/. If you need help understanding XML Schema, there is a non-normative Primer at http://www.w3.org/TR/xmlschema-0/.


W3C XML Query Specification


The W3C XML Query standards effort is made up of several specifications (at the time of this writing, all are in Last Call Working Draft form) and provides flexible query facilities to extract data from XML documents, treating collections of XML documents as databases on the Web. It is a query language that is based on expressions, and it is a typed language.



XQuery 1.0: An XML Query Language is the language specification. Located at http://www.w3.org/TR/xquery/.



XML Syntax for XQuery 1.0 (XQueryX) is the XML syntax specification. Located at http://www.w3.org/TR/xqueryx/.



XQuery 1.0 and XPath 2.0 Formal Semantics is the formal semantics or algebra specification used by XQuery and XPath. Located at http://www.w3.org/TR/xquery-semantics/.



XQuery 1.0 and XPath 2.0 Data Model is the data model specification used by XQuery and XPath. Located at http://www.w3.org/TR/xpath-datamodel/.



XQuery 1.0 and XPath 2.0 Functions and Operators is the functions and operators specification for both XQuery and XPath. Located at http://www.w3.org/TR/xpath-functions/.



XSLT 2.0 and XQuery 1.0 Serialization is the optional serialization specification for XSLT and XQuery. Located at http://www.w3.org/TR/xslt-xquery-serialization/.



To get a feel for the language and its capabilities, take a look at the use case specification located at http://www.w3.org/ TR/xmlquery/query-usecases and the requirements document located at http://www.w3.org/TR/xmlquery/query-requirements.


W3C XSLT and XPath Specification


The W3C XSL working group produces several specifications, which are divided into three areas: Formatting Objects, Transformations, and XPath.

The XSL Formatting Objects specification is located at http://www.w3.org/TR/xsl/ and describes in XML the semantics for formatting an XML document.

The XSL Transformations (XSLT) specification has two versions. XSLT 1.0 (http://www.w3.org/TR/xslt) describes the language for transforming XML documents. XSLT 2.0 (http://www.w3.org/TR/xslt20/), in Last Call Working Draft form at the time of this writing, introduces not only additional functional support but also the use of XML Schema data types.

Similarly, the XML Path Language (XPath) specification has two versions. XPath 1.0 (http://www.w3.org/TR/xpath) describes the expression language used by XSLT to access or describe different parts of the XML document. Version 2.0 (http://www.w3.org/TR/xpath20/) is shared with the XML Query (XQuery) specification but is partitioned for XSLT 2.0 use. Its companion functions and operators specification is located at http://www.w3.org/TR/xpath-functions/, and its optional serialization specification is located at http://www.w3.org/TR/xslt-xquery-serialization/.


W3C XML Pipeline Definition Language Specification


The W3C XML Pipeline Definition Language specification (http://www.w3.org/TR/2002/NOTE-xml-pipeline-20020228/), which is still a W3C Note and not a Recommendation, provides a language in XML to describe the processing relationships between XML resources. A pipeline document would be coded in such a language to allow the inputs and outputs to be specified so that a pipeline processor can process this document to get a certain result.


W3C XML Protocol


The W3C XML Protocol working group, now part of the Web Services working group, has produced the SOAP 1.2 specification. This specification is divided into two parts. Part 1, called Messaging Framework (http://www.w3.org/TR/2003/REC-soap12-part1-20030624/), provides a messaging framework that contains a message construct that can be exchanged over a number of protocols. Part 2, called Adjuncts (http://www.w3.org/TR/2003/REC-soap12-part2-20030624/), covers topics such as the data model, encoding, and SOAP RPC representation.

/ 218