|By Steve Hoenisch||
|May 22, 2001 12:00 AM EDT||
XML. And XSLT, DTD, XPath, XSL-FO, XLink, XPointer, SAX, and DOM. To the uninitiated, all the talk about XML quickly dissolves into an alphabet soup of W3C recommendations, abbreviations, and acronyms.
This column, with a minimum of technobabble and a good dose of hands-on work, aims to indoctrinate you into the world of XML and to teach you how to use it for Web publishing. In the next 12 issues of XML-Journal, I'll use tutorials to expand your knowledge of XML and, after the first couple of columns, expose you to a different member of the XML family of technologies or to one of its close relatives.
Today I'll introduce you to XML and show how to create a simple XML document. The next column will pick up where this one leaves off and will discuss the fundamentals of structuring and marking up data. Subsequent columns will address such core XML technologies as XSL, DTDs, and XLink. Later in the year I'll turn to more advanced XML topics and related technologies: XSLT, XSL-FO, XML Schema, XPath, DOM, SAX, JSP, and Web publishing frameworks such as Apache Cocoon. Along the way I'll also touch on Cascading Style Sheets (CSS), XHTML, and Wireless Markup Language (WML) as well as on XML parsers, XSL processors, and a few handy XML tools.
To help you learn, each column will assign some related hands-on work to spur you to think about and work with the technology. The work will be of two kinds: 1. Reading references: To provide additional information.
2. Working with XML code or files: The coding will, at least during the first few columns, center on converting your résumé to XML and readying it for publication on the Web.
The degree of difficulty of the hands-on work - and indeed the column itself - is geared toward new users of XML, though I'll assume you have some knowledge of HTML. The column's primary target audience is anyone without a formal programming background - content authors, Web designers, HTML coders, technical writers, and amateur programmers - who wants to learn XML. Others are, of course, welcome, too.
For continuity each column will be structured in a similar manner. It will begin with an introduction that lays out its objectives and scope. The next section will present the background, concepts, and terminology necessary to understand the tutorial and to perform the hands-on work. Then the tutorial will demonstrate how to develop and apply the XML technology in question. The column's final section will assign a new hands-on task, review last month's column, and address e-mail from readers. Throughout the column I'll provide plenty of points of departure - references and resources, both online and in books - that you can pursue to find out more about those aspects of XML that interest you. As we proceed in this way, each subsequent column will extend the knowledge gained the previous month.
All this talk about XML begs the question: What is it anyway? And what about the jumble of abbreviations that cloaks XML from the curious eyes of an HTML coder or content author? How do XSLT, DTD, XLink, and all the rest fit into the XML equation?
Extensible Markup Language is, first and foremost, a metalanguage for describing and structuring data with tags. Metalanguage means a language used to describe other languages. Like HTML, XML uses tags (words bracketed by "<" and ">"), but, unlike HTML, XML has neither a predefined set of tags nor rules on how to use them (though XML does have generic rules governing markup; for instance, tags may not overlap). In XML, tags and their rules or grammar are defined by the users themselves. XML programmers use tags and their corresponding grammar to describe and structure data in a simple text format similar to HTML (as opposed to a binary format). Because users can define their own tags, XML, as its full name implies, is also extensible, meaning that unlike HTML it's capable of being extended. You'll begin learning how to create your own XML tags today in the tutorial section.
The hodgepodge of abbreviations and acronyms surrounding XML points up another of its characteristics: it's a family of technologies designed to be used over the Internet. Some of XML's family members and their main functions are as follows.
- Extensible Stylesheet Language (XSL) XSL comprises Extensible Stylesheet Language Transformations (XSLT) and Extensible Stylesheet Language Formatting Objects (XSL-FO). It's an XML-based language for expressing stylesheets. XSLT is a language for transforming XML documents into (typically) other XML documents, HTML, and WML. XSL-FO is used to format XML documents for printing. My third column will present a tutorial on XSLT. Later columns will delve into XSL-FO and expand on XSLT.
- Document Type Definition (DTD) Stemming from Standard Generalized Markup Language, the progenitor of both HTML and XML, a DTD defines the rules that constrain an XML document or a set of XML documents. In my fourth column I'll teach you how to construct a DTD.
- XML Schema Thankfully we've been spared yet another abbreviation to remember. XML Schema may eventually supplant DTDs as the primary mechanism for constraining XML data. An XML Schema, which is in the format of an XML document, serves the same function as a DTD while correcting some of its limitations. This column will cover XML Schema later in the year.
- XLink, XPath, and XPointer Together these provide the foundation for creating links and asserting relationships within and among XML documents. XLink describes how to create hyperlinks among XML documents and provides mechanisms for advanced capabilities such as multidirectional linking. XPath, widely used by XSLT, allows users to locate specific nodes or node sets within XML documents (you'll learn about nodes in the next column). XPointer specifies how to describe and point to locations of various kinds within an XML document. My fifth column will address linking in XML. For a quick description of it, check out "XML Linking: An Introduction" at www.stg.brown.edu/~sjd/xlinkintro.html.
- Namespaces A specification that describes how to associate a URL with all the tags in an XML document to ensure they're unique, thereby eliminating ambiguity when the same tag is used by different XML coders. I'll introduce you to namespaces after we move through some of the more fundamental aspects of XML.
- The Document Object Model (DOM) and the Simple API for XML (SAX) The Document Object Model, an application programming interface (API), is used to represent the structure and content of XML (and other) documents and provides an interface that allows programs and scripts to manipulate them. SAX, like DOM, also allows applications to get information from an XML document and do something with it. This column will provide an introductory tutorial on DOM and SAX toward the end of the year.
For a more complete description of what XML is and what its core-related technologies are, I'd like you to read two short pieces: an article on the W3C Web site called "XML in 10 Points," at www.w3.org/XML/1999/XML-in-10-points, and the first half of Chapter 1 in Brett McLaughlin's book, Java and XML, published by O'Reilly. For a slightly more technical introduction to XML, visit www.xml.com/pub/a/98/10/guide0.html.
Now that you have a sense of what XML is, let's jump into the language and begin working with it by creating a simple XML document from the top down.
An XML document typically comprises several fundamental components, all of which must be enclosed in angle brackets ("<" and ">"):
- A processing instruction containing an XML declaration; this should be the first line of your XML document
- A document type declaration
- A root element
- Other elements
<?xml version="1.0" standalone="yes"?>
The attribute-value pair version="1.0" signals to the XML processor that the document conforms to version 1.0 of the XML specification, which was developed under the auspices of the W3C and is available at www.w3.org/TR/2000/REC-xml-20001006. The stand-alone attribute, which is optional and takes yes or no in either single or double quotation marks as its value, specifies whether an external DTD is required to parse the XML document. If the value of "standalone" is yes, an external DTD is not required.
Document type declarations, not to be confused with document type definitions, begin with <!DOCTYPE and perform two functions. They provide a list of document type definitions or specify the location of the file's external document type definition, and they identify the document's root element, also called its root node. Since XML documents don't need a document type definition to be well formed, I will, for now, skip this aspect of the declaration.
A root element, however, is required. All XML documents must have one (though it's not required to be declared with a document type declaration if the document doesn't use an internal or external DTD). In the following declaration, the root element is the word after <!DOCTYPE:
Remember, you define your own tags in XML, so the root element can be any combination of permitted characters that you choose. Even though the root element has been specified in the document type declaration, it must still appear as the document's first element:
Besides a root element, XML documents typically contain a hierarchy of other elements, as this example shows:
<contactInfo>All elements, including the root, may optionally take one or more attribute-value pairs:
<street>10 First Avenue</street>
<resume name="Hoenisch" field="IT" date="February 2001">
In XML, all values of attributes, including those in the processing instructions and declarations, must be enclosed in either single or double quotation marks. XML is not forgiving like HTML: no quotation marks around attribute values, no disco.
Comments begin with <!-- and end with -->. Almost anything except a double hyphen ("--") may be placed inside the comment tags and be ignored by the XML processor. Comments may appear anywhere after the XML declaration. They may not, however, be embedded inside an element tag: <resume <!-- my resume ... -->> won't work.
Listing 1 shows how these fundamental components can appear together in a simple document.
Let's consider some markup rules to which XML documents must adhere to be considered well formed. A well-formed document is one that conforms to XML syntax rules and contains correctly positioned elements and attributes. A valid XML document, in contrast, is one that conforms to the constraints of its DTD. For more on well-formed and valid documents, see Robert Eckstein's XML Pocket Reference, published by O'Reilly.
First, notice in Listing 1 that some of the elements are in mixed case. Unlike HTML, XML is case-sensitive: <contactinfo> is, to the XML processor parsing your document, a completely different tag from <contactInfo>. Though it doesn't matter what case or combination of cases you use, the name of an opening tag must match the name of its closing tag; otherwise your XML document is not well formed and the XML parser will fail to process it.
Second, an empty element - that is, one that contains no other elements or text, like <phone/> in the previous examples - must have a closing tag, which may be combined with the starting tag. Thus an empty element can be marked up either as <phone></phone> or as <phone/>.
Third, every nonempty element's opening tag must have a corresponding closing tag. If you open a nonempty element with <resume>, it must have a corresponding closing tag of </resume> that's properly nested, which brings us to our fourth rule: XML documents, again unlike HTML, may not contain any overlapping tags. Whereas <h2> Headline</h2> might work in HTML, it won't in XML.
Finally, as I've already mentioned, all attribute values must be enclosed in either single or double quotes.
Now I'd like you to start getting your hands dirty with XML by doing the following work to prepare for my next column:
- Make sure you have version 5.0 or greater of Microsoft Internet Explorer installed on your computer. You can download it for free from www.microsoft.com/windows/ie/. Internet Explorer's XML parser allows you to debug and view XML files, and we'll be using it to do just that.
- Use Notepad or, better, UltraEdit, a trial version of which is available at www.ultraedit.com/, to mark up your résumé or part of it with tags using not only elements but also attributes. As you do so, try to create tags that describe the structure or content of your résumé. Also, think about what aspects of your résumé's structure or content should be captured in attributes as opposed to elements. Don't worry about using a document type definition (but remember to set the value of the stand-alone attribute in the XML declaration to yes):
<?xml version="1.0" standalone="yes"?>)
- Edit your marked-up document to make sure it's well formed, according to the rules I set out. Save it on your hard drive as a plain old text file (ASCII or Unicode on Windows NT) with an .xml file extension.
- Next, open it in Internet Explorer and use Explorer to debug any problems with your markup. If you didn't craft your tags according to the rules I described, Explorer will display an error message that usually provides enough information to find and fix the offending code. Continue debugging your file until it displays as an XML page.
In his session at @ThingsExpo, Eric Lachapelle, CEO of the Professional Evaluation and Certification Board (PECB), will provide an overview of various initiatives to certifiy the security of connected devices and future trends in ensuring public trust of IoT. Eric Lachapelle is the Chief Executive Officer of the Professional Evaluation and Certification Board (PECB), an international certification body. His role is to help companies and individuals to achieve professional, accredited and worldw...
Mar. 24, 2017 08:15 PM EDT Reads: 244
DevOps is often described as a combination of technology and culture. Without both, DevOps isn't complete. However, applying the culture to outdated technology is a recipe for disaster; as response times grow and connections between teams are delayed by technology, the culture will die. A Nutanix Enterprise Cloud has many benefits that provide the needed base for a true DevOps paradigm.
Mar. 24, 2017 08:00 PM EDT Reads: 1,502
Your homes and cars can be automated and self-serviced. Why can't your storage? From simply asking questions to analyze and troubleshoot your infrastructure, to provisioning storage with snapshots, recovery and replication, your wildest sci-fi dream has come true. In his session at @DevOpsSummit at 20th Cloud Expo, Dan Florea, Director of Product Management at Tintri, will provide a ChatOps demo where you can talk to your storage and manage it from anywhere, through Slack and similar services ...
Mar. 24, 2017 06:30 PM EDT Reads: 4,105
My team embarked on building a data lake for our sales and marketing data to better understand customer journeys. This required building a hybrid data pipeline to connect our cloud CRM with the new Hadoop Data Lake. One challenge is that IT was not in a position to provide support until we proved value and marketing did not have the experience, so we embarked on the journey ourselves within the product marketing team for our line of business within Progress. In his session at @BigDataExpo, Sum...
Mar. 24, 2017 06:30 PM EDT Reads: 2,604
What sort of WebRTC based applications can we expect to see over the next year and beyond? One way to predict development trends is to see what sorts of applications startups are building. In his session at @ThingsExpo, Arin Sime, founder of WebRTC.ventures, will discuss the current and likely future trends in WebRTC application development based on real requests for custom applications from real customers, as well as other public sources of information,
Mar. 24, 2017 05:30 PM EDT Reads: 373
SYS-CON Events announced today that SoftLayer, an IBM Company, has been named “Gold Sponsor” of SYS-CON's 18th Cloud Expo, which will take place on June 7-9, 2016, at the Javits Center in New York, New York. SoftLayer, an IBM Company, provides cloud infrastructure as a service from a growing number of data centers and network points of presence around the world. SoftLayer’s customers range from Web startups to global enterprises.
Mar. 24, 2017 05:15 PM EDT Reads: 1,290
SYS-CON Events announced today that Ocean9will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Ocean9 provides cloud services for Backup, Disaster Recovery (DRaaS) and instant Innovation, and redefines enterprise infrastructure with its cloud native subscription offerings for mission critical SAP workloads.
Mar. 24, 2017 04:45 PM EDT Reads: 1,765
SYS-CON Events announced today that Linux Academy, the foremost online Linux and cloud training platform and community, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Linux Academy was founded on the belief that providing high-quality, in-depth training should be available at an affordable price. Industry leaders in quality training, provided services, and student certification passes, its goal is to c...
Mar. 24, 2017 01:15 PM EDT Reads: 3,844
SYS-CON Events announced today that Interoute, owner-operator of one of Europe's largest networks and a global cloud services platform, has been named “Bronze Sponsor” of SYS-CON's 20th Cloud Expo, which will take place on June 6-8, 2017 at the Javits Center in New York, New York. Interoute is the owner-operator of one of Europe's largest networks and a global cloud services platform which encompasses 12 data centers, 14 virtual data centers and 31 colocation centers, with connections to 195 add...
Mar. 24, 2017 01:15 PM EDT Reads: 562
SYS-CON Events announced today that Telecom Reseller has been named “Media Sponsor” of SYS-CON's 20th International Cloud Expo, which will take place on June 6–8, 2017, at the Javits Center in New York City, NY. Telecom Reseller reports on Unified Communications, UCaaS, BPaaS for enterprise and SMBs. They report extensively on both customer premises based solutions such as IP-PBX as well as cloud based and hosted platforms.
Mar. 24, 2017 12:45 PM EDT Reads: 1,859
SYS-CON Events announced today that Loom Systems will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Founded in 2015, Loom Systems delivers an advanced AI solution to predict and prevent problems in the digital business. Loom stands alone in the industry as an AI analysis platform requiring no prior math knowledge from operators, leveraging the existing staff to succeed in the digital era. With offices in S...
Mar. 24, 2017 12:15 PM EDT Reads: 958
Keeping pace with advancements in software delivery processes and tooling is taxing even for the most proficient organizations. Point tools, platforms, open source and the increasing adoption of private and public cloud services requires strong engineering rigor - all in the face of developer demands to use the tools of choice. As Agile has settled in as a mainstream practice, now DevOps has emerged as the next wave to improve software delivery speed and output. To make DevOps work, organization...
Mar. 24, 2017 12:15 PM EDT Reads: 1,396
SYS-CON Events announced today that T-Mobile will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. As America's Un-carrier, T-Mobile US, Inc., is redefining the way consumers and businesses buy wireless services through leading product and service innovation. The Company's advanced nationwide 4G LTE network delivers outstanding wireless experiences to 67.4 million customers who are unwilling to compromise on ...
Mar. 24, 2017 12:00 PM EDT Reads: 1,886
SYS-CON Events announced today that Cloudistics, an on-premises cloud computing company, has been named “Bronze Sponsor” of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Cloudistics delivers a complete public cloud experience with composable on-premises infrastructures to medium and large enterprises. Its software-defined technology natively converges network, storage, compute, virtualization, and management into a ...
Mar. 24, 2017 12:00 PM EDT Reads: 1,640
SYS-CON Events announced today that CA Technologies has been named “Platinum Sponsor” of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY, and the 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. CA Technologies helps customers succeed in a future where every business – from apparel to energy – is being rewritten by software. From ...
Mar. 24, 2017 10:45 AM EDT Reads: 1,421
SYS-CON Events announced today that Infranics will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Since 2000, Infranics has developed SysMaster Suite, which is required for the stable and efficient management of ICT infrastructure. The ICT management solution developed and provided by Infranics continues to add intelligence to the ICT infrastructure through the IMC (Infra Management Cycle) based on mathemat...
Mar. 24, 2017 09:45 AM EDT Reads: 2,736
Now that the world has connected “things,” we need to build these devices as truly intelligent in order to create instantaneous and precise results. This means you have to do as much of the processing at the point of entry as you can: at the edge. The killer use cases for IoT are becoming manifest through AI engines on edge devices. An autonomous car has this dual edge/cloud analytics model, producing precise, real-time results. In his session at @ThingsExpo, John Crupi, Vice President and Eng...
Mar. 24, 2017 08:45 AM EDT Reads: 3,679
In the enterprise today, connected IoT devices are everywhere – both inside and outside corporate environments. The need to identify, manage, control and secure a quickly growing web of connections and outside devices is making the already challenging task of security even more important, and onerous. In his session at @ThingsExpo, Rich Boyer, CISO and Chief Architect for Security at NTT i3, will discuss new ways of thinking and the approaches needed to address the emerging challenges of securit...
Mar. 24, 2017 08:30 AM EDT Reads: 4,263
The taxi industry never saw Uber coming. Startups are a threat to incumbents like never before, and a major enabler for startups is that they are instantly “cloud ready.” If innovation moves at the pace of IT, then your company is in trouble. Why? Because your data center will not keep up with frenetic pace AWS, Microsoft and Google are rolling out new capabilities In his session at 20th Cloud Expo, Don Browning, VP of Cloud Architecture at Turner, will posit that disruption is inevitable for c...
Mar. 24, 2017 08:30 AM EDT Reads: 1,907
There are 66 million network cameras capturing terabytes of data. How did factories in Japan improve physical security at the facilities and improve employee productivity? Edge Computing reduces possible kilobytes of data collected per second to only a few kilobytes of data transmitted to the public cloud every day. Data is aggregated and analyzed close to sensors so only intelligent results need to be transmitted to the cloud. Non-essential data is recycled to optimize storage.
Mar. 24, 2017 08:15 AM EDT Reads: 2,903