<<

XML for Developers G22.3033-002

Session 2 - Main Theme Markup Language Technologies (Part II)

Dr. Jean-Claude Franchitti

New York University Computer Science Department Courant Institute of Mathematical Sciences

1

Agenda „ Summary of Previous Session / Review New Syllabus

„ XML Applications vs. Applications of XML!?

„ History and Current State of XML Standards

„ Advanced Applications of XML

„ XML’s eXtensible Style Language (XSL)

„ Character Encodings and Text Processing

„ XML and DBMSs

„ Course Approach ...

„ XML Application Development

„ XML References and Class Project

„ Readings

„ Assignment #1a (due today - reminder?) 2 „ Assignment #1b (due next week)

1 Summary of Previous Session

„ XML Generics

„ Course Logistics, Structure and Objectives

„ History of Meta-Markup Languages

„ XML Applications: Markup Languages

„ XML Information Modeling Applications

„ XML-Based Architectures

„ XML and Java

„ XML Development Tools (XML, DTD and Schema Editors)

„ Summary

„ Class Project

„ Readings

„ Assignment #1a 3

Old History

„ Formatting Markups

„ Rendition notations (e.g., LaTeX, TeX, RTF, MIF)

„ Compatible with standard text editors

„ Processed into presentations (printout, or electronic display)

„ WYSIWYG

„ What You See Is “ALL” You Get

„ Meta-Markup Language

„ GML (Goldfarb, Mosher, Lorie - IBM 1969)

„ Generalized (i.e., indep. of systems, devices, applications)

„ Markups (i.e., information related to struct. & content

„ Language (i.e., methodology with formal syntax)

„ Validation capabilities (1974) 4

2 SGML

„ SGML (1978 - 10/15/86)

„ Used by DoD for Continuous Acquisition and Lifecycle Support (CALS)

„ http://www.oasis-open.org/cover/general.html

„ SGML DTD or Schema ]> 5

SGML Markup

XML TUTORIAL <intro> <para>Required first paragraph of intro. <para>Optional second paragraph of intro. </intro> <chap> <title>CHAPTER 1 <para>Required first paragraph of first chapter. <chap> <title>CHAPTER 2 <para>Required first paragraph of optional 2nd chapter. </tutorial </tutorials></p><p>6</p><p>3 W3C and HTML</p><p>„ Tim Berners-Lee (CERN, 1989)</p><p>„ W3 Hypertext System</p><p>„ W3 uses HTML </p><p>„ Founder of W3C in 1994</p><p>„ HTML </p><p>„ Based on SGML, no DTD support)</p><p>„ W3C</p><p>„ HTML (http://www.w3.org/TR/html401/)</p><p>„ CSS + weakly extensible HTML</p><p>„ XML</p><p>„ XHTML (http://www.w3.org/TR/xhtml1) 7</p><p>XML</p><p>„ DTD <!DOCTYPE TUTORIALS [ <!ELEMENT tutorials (tutorial+)> <!ELEMENT tutorial (title, intro, chap+)> <!ELEMENT title (#PCDATA)> <!ELEMENT intro (para+)> <!ELEMENT chap (title, para+)> <!ELEMENT para (#PCDATA)> ]></p><p>„ XML is different from SGML</p><p>„ Names are case sensitive</p><p>„ Non empty elements must have a start and end tag</p><p>„ DTD or Schema not required 8</p><p>4 Current State of XML Standards http://www.w3.org/XML, www.w3.org/XML/Activity.html, www.w3schools.com/xml</p><p>„ eXtensible Markup Language (XML) 1.0 (2nd Edition) - 10/06/00)</p><p>„ Namespaces in XML - 01/14/99</p><p>„ URIs: http://www.w3.org/Addressing/</p><p>„ XML Schema Part 0: Primer - 05/02/01</p><p>„ XML Schema Part 1: Structures - 05/02/01</p><p>„ XML Schema Part 2: Datatypes - 05/02/01</p><p>„ XML Path Language (XPath) Version 1.0 - 11/16/99 </p><p>„ Working Draft of Version 2 - 05/02/03</p><p>„ Associating Stylesheets with XML Documents - 06/29/99</p><p>„ Use “<a href="/tags/XML/" rel="tag">xml</a>:stylesheet” element in the XML document prolog</p><p>„ XSL Transformations (XSLT) Version 1.0 - 11/16/99</p><p>„ Working Draft of Version 2 -05/02/03 9 „ Extensible Stylesheet Language (XSL) Version 2.0 – 10/15/01</p><p>Current State of XML Standards (continued)</p><p>„ Canonical XML Version 1.0 - 03/15/01 „ <a href="/tags/Document_Object_Model/" rel="tag">Document Object Model</a> (DOM) Level 2 - 11/13/00 „ Core, Views, Events, Style, Traversal & Range „ Web Content Accessibility Guidelines 1.0 - 05/05/99 „ Resource Description Framework (RDF) - 02/22/99 „ See http://www.w3.org/TR/ for Additional Specifications „ Core, XSL, Query, Linking, Schema „ <a href="/tags/Microsoft/" rel="tag">Microsoft</a> Validator:</p><p>„ http://msdn.microsoft.com/downloads/samples/Internet/xml/xml_validator/sample.asp „ W3C Schema Validator (3/30/03) „ http://www.w3.org/2001/03/webdata/xsv</p><p>10</p><p>5 Advanced Applications of XML</p><p>„ Ancestors: SGML with Annex K, HyTime, DSSS</p><p>„ Alternatives: HTML 4.01, CSS </p><p>„ HTML-Based</p><p>„ XHTML 1.0, XForms 1.0</p><p>„ POP-Based</p><p>„ e.g., XHTML, CML, MathML, SMIL, SVG, <a href="/tags/P3P/" rel="tag">P3P</a>, RDF, WML </p><p>„ MOM-Based</p><p>„ e.g., ebXML, RosettaNet, cXML, fpML, FIXML</p><p>„ Web Services-Based</p><p>„ Protocols (SOAP, WSDL, UDDI) 11 „ Services & Facilities (XAML – Transaction Authority ML)</p><p>Logical Structure of XML Documents: Namespaces 1.0</p><p>• Namespaces: provides a simple method to qualify element and attribute names used in XML documents by associating them with namespaces identified by URIs – Example: <price> is borrowed from the “edi” schema <?xml version=“1.0”?> <order:x xmlns:order=‘http://ecommerce.org/order’> xmlns:edi=‘http://ecommerce.org/edi’> <edi:price>14.95</edi:price> </order:x> • See http://www.w3.org/TR/REC-xml-names/</p><p>12</p><p>6 eXtensible Style Language (XSL)</p><p>„ “Descendant” of SGML’s DSSSL & DSSSL-O</p><p>„ CSS 1, 2, 3 … </p><p>„ http://www.w3.org/Style/CSS/</p><p>„ XSLT (tree transformation)</p><p>„ XPath (accessing, pointing to, and matching)</p><p>„ XSL-FO (formatting objects)</p><p>„ XSLT Processors</p><p>„ <a href="/tags/Stylus_Studio/" rel="tag">Stylus Studio</a> XSL development environment</p><p>„ IBM XSL Editor</p><p>„ Saxon and Xalan XSLT processors</p><p>„ XSL-FO Processors</p><p>„ Antenna House</p><p>„ fop 13</p><p>XSL Processing</p><p>„ http://www.w3.org/Style/XSL/</p><p>„ Processing Alternatives:</p><p>„ HTML + CSS -> Presentation</p><p>„ XML + CSS -> Presentation</p><p>„ XML + XSLT -> XSL-FO -> Presentation</p><p>„ XML + XSLT -> XML/HTML + CSS -> Presentation</p><p>„ Client or Server Processing ?</p><p>„ See Session 2 handout on IE5+’s implementation</p><p>„ Examples</p><p>„ See Session 2 Sub-Topic 1 Presentation: Beginning XML</p><p>„ See Session 2 handouts on XSL <a href="/tags/Tree_(data_structure)/" rel="tag">Tree</a> <a href="/tags/Transformation_language/" rel="tag">Transformation Language</a> </p><p>„ See Session 2 handout on Cascading Stylesheets 14 „ See Session 2 handout on Styling Documents Using XSL</p><p>7 Character Encodings & Text Processing</p><p>„ ASCII, ISO 8859, and <a href="/tags/Unicode/" rel="tag">Unicode</a></p><p>„ http://www.bbsinc.com/iso8859.html</p><p>„ http://www.oasis-open.org/cover/unicode-xml.html</p><p>„ www.unicode.org</p><p>„ http://www.oasis-open.org/cover/unicode-xml.html</p><p>„ http://home.att.net/~jameskass • Using Unicode characters in XML/HTML – U+ (4 digit min) hex number (e.g., "U+1234”) – Specify as: "ሴ" or "􏿽".</p><p>„ White space processing ?! (wanted vs. unwanted) 15</p><p>XML & DBMSs Comparison</p><p>„ Both separate data from rendition/presentation info</p><p>„ Similar languages</p><p>„ DBMSs: Forms and Reporting, DDL, DQL, DCL</p><p>„ XML: XSL, XQL, and processing instructions</p><p>„ No DML in XML</p><p>„ XML is paired with a scripting or <a href="/tags/Programming_language/" rel="tag">programming language</a></p><p>„ Validation capabilities</p><p>„ DBMSs: datatyping, relationship constraints</p><p>„ XML: data type validity and semantic consistency checks</p><p>„ XML can handle data too complex for some databases</p><p>„ XML interchangeable form of data vs. multidatabases 16</p><p>8 Course Approach ...</p><p>„ IBM XML Certification Test 140 „ IBM Certified Developer – XML and Related Technologies „ http://www-4.ibm.com/software/ad/certify/obj140.html (old) „ http://www-1.ibm.com/certify/tests/obj141.shtml (latest) „ Proficiency Objectives – Architecture Implications on XML Design – Information Modeling – XML Processing – XML Rendering –XML Query – Implementation Testing and Tuning</p><p>17</p><p>XML Application Development</p><p>„ Applications of XML: Markup Languages</p><p>„ XML Applications Using Core XML Technologies</p><p>„ POP (Java is “optional”)</p><p>„ Web Content Programming</p><p>„ Web Application Development</p><p>„ Web-Enabled Enterprise Application Development</p><p>„ MOM</p><p>„ EDI v.s. IEC/B2B</p><p>„ EAI Applications </p><p>„ e.g., ERP, SCM, CRM integration</p><p>„ B2Bi, BPM, LE, and EII Applications</p><p>„ Application Configuration</p><p>„ Architectural Patterns requiring new XML protocols</p><p>„ SOAs, P2P, Grid Computing, Brick by Brick Computing, etc. 18</p><p>9 XML POP Application Development</p><p>„ Java “Independent” Component Models </p><p>„ JSP Custom Tags </p><p>„ XML/XSLT</p><p>„ XML/Servlet Frameworks (e.g., Cocoon)</p><p>„ XML/Servlet Filters</p><p>„ XML/JavaScript</p><p>„ XML Data Bindings</p><p>„ Java Intensive Component Models</p><p>„ JSP/Java</p><p>„ JSP/JavaBeans</p><p>„ Applets/Java Web Start</p><p>„ Servlets</p><p>„ Java Server Faces</p><p>„ Java Applications (Including Thick Clients) 19</p><p>XML MOM Application Development</p><p>„ Java “Independent” Component Models </p><p>„ Scripting Languages</p><p>„ Non J2EE Platforms (e.g., CORBA 3 & .Net) and PLs</p><p>„ Web Services Platforms</p><p>„ Sun Open Net Environment (ONE)</p><p>„ HP NetAction</p><p>„ Oracle Dynamic Services</p><p>„ IBM WebSphere Platform</p><p>„ Microsoft .NET</p><p>„ Java Intensive Component Models</p><p>„ EJBs</p><p>„ JSP/JavaBeans</p><p>„ Applets/Java Web Start</p><p>„ Servlets</p><p>„ Java Applications 20</p><p>10 XML References</p><p>„ Information – www.learnthenet.com/english/index.html – http://www.xml.com – http://www.xml.org – http://www.xmlu.com – http://www.ucc.ie/xml – http://www.oasis-open.org/cover – http://msdn.microsoft.com/xml – http://xml.about.com</p><p>„ Software – http://xml.apache.org – http://www.alphaworks.ibm.com/ – http://www.microsoft.com/xml – http://technet.oracle.com/tech/xml – http://java.sun.com/xml – http://www.xmlsoftware.com – http://www.xmlcenter.com/tools/ 21</p><p>Class Project</p><p>„ Project Description</p><p>„ The project will consist of providing custom XML-based services to support the various aspects of your own selected portable application. The application can be targeted to end-users (B2C), businesses (B2B), developers (toolkit). As an example, you could implement and XML- based training studio supporting VoiceXML, and application-sharing capabilities. </p><p>„ Sample applications used in the past fell in the category of “multi- channel online community platforms”, and included applications such as “community-based shopping”. In that context, examples of useful XML-based services to support these platforms may include synchronized multimedia presentation viewing, and “offline” chat capabilities. A sample specification of the online community platform for a virtual university eBusiness application that was used in the past for this course will be provided for illustration purpose. 22</p><p>11 Generic Architecture Blueprint + Architecture Design Methodology + Mgmt</p><p>XML Applications (logic) Logical View Implementation View Applications of XML (structured content/object data, style information) Use Case XML Application Services Use Case View (logic) View</p><p>XML Application Infrastructure (logic) Process View Deployment View Technology Infrastructure (hardware platforms)</p><p>Management</p><p>Applications XML of Applications XML Processing Structure Application Rendering and Technology Content Infrastructure Querying</p><p>Additional Style Services 23</p><p>Sample Conceptual Architecture Diagram (e.g., virtual classroom environment)</p><p>Presentation Enabling Q&A Enabling (posting, querying, locating, viewing) (questions capture, integration, viewing) SMIL XML Authoring Authoring XLF SMIL Tool Tool XLF Processing/Rendering</p><p>JSP Engine / SMIL Viewer XML POP Framework (processing, rendering) (processing, rendering)</p><p>Web Community Avatar-Based Chat Platform</p><p>Web-Based Infrastructure (lightweight client machines, server platforms) </p><p>Legend</p><p>XML Application (logic ) Applications of XML (content/style) XML Application Services (logic )</p><p>3rd Party Tool XML Application Infrastructure (logic) Technology Infrastructure (OS and hardware)</p><p>24</p><p>12 Structured Applications Design Tips „ Reuse: should focus on Domain Models/System Family Architectures</p><p>„ Applications should separate the various information elements (i.e., content, logic, style, and architecture/handling schemes)</p><p>„ Various content formats: presentation, message, storage, etc.</p><p>„ Application architecture supports:</p><p>„ Web Enabling (WE), XML Enabling (XE), Data Enabling (DE), Enterprise System Assurance Enabling (ESAE)</p><p>„ Various application support services to support:</p><p>„ Interactions with users via content (content + logic) - WE</p><p>„ Encoding of user requests as secure (portable) messages (content generation) - XE/ESAE</p><p>„ Processing of user requests via logic (content + logic) - XE</p><p>„ Rendering of content via logic using style (content + style + logic) - WE/XE</p><p>„ Querying information via logic (content + logic) - XE/DE 25 „ Interactions with back office via content (content + logic) - XE/ESAE</p><p>Readings</p><p>„ Readings</p><p>„ XML and Java: Chapter 1, Appendices A, B, and <a href="/tags/C_(programming_language)/" rel="tag">C</a></p><p>„ Processing XML with Java: Chapter 1, Appendix C</p><p>„ Developing Java Web Services: Chapters 1 and 2</p><p>„ Handouts posted on the course web site</p><p>„ Review Xpath 1.0, XSLT 2.0, XSL 1.0 W3C Recs</p><p>„ Project Frameworks Setup (ongoing)</p><p>„ Apache’s <a href="/tags/Web_server/" rel="tag">Web Server</a>, TomCat, and Cocoon</p><p>„ Apache’s Xerces, Xalan</p><p>26</p><p>13 Assignment</p><p>„ Assignment #1b:</p><p>„ Review the class project description, and the virtual university sample eBusiness application specification</p><p>„ Come up with your own variant of an XML-based portable application </p><p>„ Specify a set of services that would need to be provided to support your portable application </p><p>27</p><p>Assignment (continued)</p><p>„ Assignment #1b (continued):</p><p>„ Provide a written specification of your overall framework (i.e., platform and services), and propose a staged development approach that would demonstrate the use of XML to support the modern approach at building comprehensive business applications suggested in this course. Your proposed approach should include the use of XML Markup Language technologies, XML information modeling, XML information processing, XML information rendering, XML information retrieval, XML-Based frameworks and other services, and XML application implementation and testing methodologies </p><p> and tools 28</p><p>14 Next Session: XML Information Modeling (Part I)</p><p>„ XML Physical Entities</p><p>„ Logical Structure of XML Documents</p><p>„ XML Document Navigation</p><p>„ Custom Markup Languages</p><p>29</p><p>15</p> </div> </div> </div> </div> </div> </div> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="/js/details118.16.js"></script> <script> var sc_project = 11552861; var sc_invisible = 1; var sc_security = "b956b151"; </script> <script src="https://www.statcounter.com/counter/counter.js" async></script> <noscript><div class="statcounter"><a title="Web Analytics" href="http://statcounter.com/" target="_blank"><img class="statcounter" src="//c.statcounter.com/11552861/0/b956b151/1/" alt="Web Analytics"></a></div></noscript> </body> </html>