Hans Brough XML - eXtensible Markup Language - COIN 78 Summer Qtr, 2002 August 04, 2002 -------------------------------------------------------------------------------- Q1. What are the primary differences between XML and HTML? A1. Both are children of SGML but HTML is a specific markup language that enables users to define layout of data whereas XML is a meta language that can be extended to create other markup languages and deals data definition. Q2. Why was XML created? A2. In order that data could be defined, transmitted, validated and interpreted across the web between applications and organizations. Q3. What business problem does XML solve? A3. XML provides a common framework for the exchange of data amongst business's with potentially disparate systems. For example Ford and General Motors could use xml to help with communicate with their supply chain business partners. Q4. Is XML a language or meta-language? Explain A4. "XML provides a metalanguage in which you can write specialized languages to express complex interactions between clients and services or between components of a composite service."1 Q5. What language was XML and HTML derived from? A5. SGML Q6. Why does XML need to be human and machine readable? A6. It is machines who do the processing and presentation of data with an XML document but it is humans who must ultimately turn the data into information. Q7. What are the three requirements for writing well formed XML? A7. The book lists several rules: 1. A root element is required. 2. Closing tags are required. 3. Elements must be properly nested. 4. Case matters 5. values must be enclosed in quotation marks. 6. Entity references must be declared. Q8. What is the role of a DTD with XML? (Think valid XML) A8. DTD's are a type of XML schema that ensure xml documents are valid. In other words they ensure a given xml document is formatted as expected by the markup language's author. Q9. Write a very short DTD document A9. Q10. What is the role of CSS with XML? A10. CSS can optionally be used to format data found within XML. In other words CSS deals entirely with the presentation of XML within a browser to the end user. Q11. Write very short CSS document A11. word {display:block; font-size: 12pt; padding:5;} As you can see CSS is a essentially a set of rules comprised of name value pairs. Q12. What is the role of XSD with XML? (Think namespaces and datatypes) A12. The .xsd file type is used to define an XML Schema. Within the schema is defined what one or more xml documents may look like similar to a DTD although in a more robust fashion. In addition to defining an xml document's elements ,order and content xsd schemas can define each elements allowable datatype. For instance rather than just declaring #PCDATA as might be done in a DTD, elements can be tailored to contain specific datatypes such as strings ,numbers and dates. Q13. Write a very short XSD document A13. Q14. Why are namespaces important to XSD? (Think about the Web as a database) A14. "In order for XML documents to be able to use elements and attributes that have the same name but come from different sources, there must be a way to differentiate between the markup elements that come from the different sources."2 Q15. Compare and contrast DTDs with XSD A15. As I mentioned above DTD's and the .xsd file format are both ways to define a schema for a set of xml documents. DTD's are an older, less flexible approach to declaring a schema. XSD allows more flexibility through the use of datatype declarations for elements similar to those traditionally found in programming and database design. In Addison our book mentions that DTD's force you to declare elements globally and the DTD syntax has 'little to do' with xml as such is impossible to parse with an xml parser. Q16. Compare and contrast CSS with XSLT A16. Both allow you to format xml documents according to a set of rules. CSS however is strictly a formatting tool it has no transformation ability. This means that your end users must use an 'xml-able' browser in able to view the end result. In contrast XSLT does not "contain any explicit formatting instructions itself"4 It can transform xml into any other markup language and in doing include enough HTML that the end result will be the same as a CSS generated file. In addition XSLT has capabilities like batch processing and conditional processing that CSS does not. Q17. What is XSL or XSLT? A17. The formatting and transformation markup language for xml documents. Transformation occurs via a processor that looks at the elements found within an xml document and takes formatting actions according to a predefined set of rules in an xslt file. Q18. What is XLink and XPointer? A18. XLink "allows elements to be inserted into XML documents in order to create and describe links between resources. It uses XML syntax to create structures that can describe links similar to the simple unidirectional hyperlinks of today's HTML, as well as more sophisticated links."5 The W3C says that Xlinks allow linking relationships among more than two resources, associate metadata with a link and express links that reside in a location separate from the linked resources. Q19. What is RDF? A19. Short for Resource Description Framework. An XML based markup which provides a universal method of describing a web sites metadata. For example as search engines index web sites they need to know data about the site such as it's title, description, version etc - RDF provides a common means to this end. Q20. What is EAI? Why is XML useful in EAI? A20. Acronym for enterprise application integration."EAI is the unrestricted sharing of data and business processes throughout the networked applications or data sources in an organization. "2 Because enterprises have developed disparate, proprietary systems there is a need for a common language, such as XML, to share information across an organization. Q21. Compare and contrast middleware with EAI A21. Middleware is defined as software that connects two otherwise separate applications. Middleware could be considered a component of EAI since it enables the sharing of data between otherwise disparate sources although is distinct from any import or export functionality that may also be found in EAI. Q22. How does Microsoft use XML A22. Probably the best known use of xml is their .net initiative which is a of set web services offerings. With .net end users can access functionality like identification and authentication, e-mail, instant messaging, automated alert, calendar, address book, and storage. For example their Passport service allows developers to incorporate a remote authentication scheme within their sites. This is supposed to do away with the need for multiple username/password pairs. Q23. How does Sun use XML? A23. I couldn't find much. They have something called Pipeline which seems to be an alternative to the other 3 web services technologies. Q24. What is UDDI, and why is it important? A24. Short for Universal Description, Discovery and Integration. "Provides a mechanism for clients to dynamically find other web services."1 Using UDDI let's businesses actually connect to the services provided by business partners. There is no point in having web services if no one can find them. Q25. What are web services, SOAP, and WSDL, and how do they incorporate XML? A25. Web services are stand alone components of business logic available for use over the web. "SOAP is a protocol specification that defines a uniform way of passing XML-encoded data as well as a way to perform remote procedure calls (RPCs) using HTTP as the underlying communication protocol."1 WSDL (Web Services Definition Language) is used to describe what a web service can do, where it resides, and how to invoke it. Web services, SOAP and WSDL all use XML as a meta language to describe themselves. ----------------Bonus Essay Start-------------- HTML is so ubiquitous that it truly may not matter how easy to learn or efficient XML is for the average web author. HTML is like the English Language; it's quirky but it's everywhere so it becomes the default lingua franca. If HTML is like English then perhaps XML is akin to Esperanto - well thought out, easier to learn than English, in theory a conversational middleware. I'm sure we all have fond memories of whispering sweet nothings to our loved ones in Esperanto or meaningful conversations in Esperanto with that guy in the coffee shop who doesn't speak English. Ah Esperanto - the sheer brilliance of it! No you say? Well in truth these things never happened to me either. English always sufficed and besides how could I ever be sure the other guy even knew Esperanto? Sometimes I feel the same way about XML. Sure it is easy to learn and isn't it nifty how we can organize data but what the heck can I do with it... today? HTML may be nonsensical at times, cross browser issues may drive me nuts but at least I know the markup and can rest assured everyone's browser also understands some dialect. Some argue that HTML is unable to deal with more-complex application specific problems because it's elements are fixed. This is true but it does provide support for a few fairly robust scripting languages, namely Ecmascript and vbscript. Ecmascript at least is fully able to model data in an object based manner which some might argue makes up for HTML's data modeling deficiencies. In the end economics will be the determining factor. If those who employ us find they can not communicate with their business partners via HTML because of disparate processes or proprietary applications then one day we will all be speaking some variant of XML at work. Business always seems so pre-occupied with the bottom line. All metaphors aside HTML is a dead language in the sense that the W3C plans to release no further enhancements. In fact they have already approved a Recommendation for version 1.0 of what it's dubbed Extensible HTML or XHTML. Resistance is futile. Outside of school I'm a web developer who worked several years after university at a few Bay Area start-ups. My experience is primarily on the client side although I made the switch last year to databases and server-side scripting. I'm currently excited by data modeling in general and despite my sarcasm, specifications like XML specifically. I plan on obtaining an associates degree in Database Administration with an emphasis on obtaining my Oracle DBA certification. I'm also a fan of open source products like PHP and MySQL. I plan on paying the bills as a DBA and if possible heading back to school to obtain an M.A. in Computational Linguistics. Outside of work this is where I plan on using XML to help me model syntactic and semantic elements of the English language for use in web based applications like conversation processors. For the time being I'm thinking about finding a way to incorporate XML into a database driven site I created for fun. The site revolves around the literal paper trail of letters, documents, journals and more that my family has left over the last one hundred years. I've created a schema of this scenario that lets family members search and cross reference everything I've been able to get my hands on. This is all still a work in progress so I hope to find a use for XML. If I'm successful I will send you a link. -----------------Bonus Essay End--------------- References: 1.Vasudevan, Venu, 'A Web Services Primer', http://www.xml.com/pub/a/2001/04/04/webservices/index.html, July 04, 2001 2.www.webopedia.com, assorted pages 3.Simpson,John E., 'Will XML replace HTML?', December 13, 2000, http://www.xml.com/pub/a/2000/12/13/xmlhtml.html 4.Castro, Elizabeth, 'XML for the World Wide Web', Peachpit Press, Berkeley CA,2001 5.DeRose, Steve, XML Linking Language (XLink) Version 1.0 W3C Recommendation 27 June 2001, http://www.w3.org/TR/xlink/ --------------------------------------------------------------------------------