The Cloudbrowser Web Application Framework

Total Page:16

File Type:pdf, Size:1020Kb

The Cloudbrowser Web Application Framework The CloudBrowser Web Application Framework Brian McDaniel Godmar Back Department of Computer Science Virginia Tech [email protected] [email protected] CloudBrowser is a web application framework that sup- the state of the user interface is retained across page nav- ports the development of rich Internet applications whose igation and sessions so they can pick up where they leave entire user interface and application logic resides on the off. server, while all client/server communication is provided by The creation of such rich Internet applications within the the framework. CloudBrowser thus hides the distributed na- context of the current web infrastructure is difficult for mul- ture of these applications from the developer, creating an en- tiple reasons. Application developers and framework design- vironment similar to that provided by a desktop user inter- ers must decide how to split the application’s user interface face library. CloudBrowser preserves the user interface state code and its business logic between client-side JavaScript in a server-side virtual browser that is maintained across vis- code and server-side code, and how to structure the com- its. Unlike other server-centric frameworks, CloudBrowser’s munication between the client and the server on top of the exclusive use of the HTML document model and associ- stateless HTTP protocol. ated JavaScript execution environment allows it to exploit Traditional AJAX [18] applications, which are developed existing client-side user interface libraries and toolkits while using a mix of client- and server-side programming, fully ex- transparently providing access to other application tiers. We pose developers to the underlying infrastructure’s distributed have implemented a prototype of CloudBrowser as well as nature. Developers must write view logic to produce an ini- several example applications to demonstrate the benefits of tial rendering of the user interface, then implement client- its server-centric design. side controller logic to track the user interface state using Categories and Subject Descriptors D.2.2 [Software En- JavaScript, use some variation of AJAX to inform the server gineering]: Design Tools and Techniques User Interfaces; of relevant changes to the application data, and incorporate H.5.3 [Information Interfaces and Presentation]: Group and any server responses into the HTML document that is ren- Organization Interfaces Web-based Interaction dered for the user. If the user refreshes the page, or makes use of the browser’s navigation buttons, the ephemeral client Keywords web application framework, AJAX, server-cen- state must be restored from scratch, often using hints stored tric, remote display, PaaS, cloud applications on the server, because there is no automatic way of preserv- ing user interface state. 1. Introduction To address these problems, server-centric AJAX frame- More and more applications are moving from the desktop works [11, 27] move all application logic to the server, to the web. Web applications can be accessed from any web hiding most or all client-side programming from the de- browser, regardless of underlying platform, allowing them to veloper. Such frameworks maintain the view state for each be deployed and updated instantly. Users have begun to ex- visit in a server-side representation, such as a document in a pect rich and expressive user interfaces whose single-page framework-specific, higher-level markup language that pro- design mirrors that of desktop applications. At the same vides elements that represent user interface components. time, users assume that the data on which these applications These components encapsulate the initial rendering into operate resides “in the cloud,” which stores any changes im- HTML, manage the forwarding of client-side events to mediately and persistently. Increasingly, users expect that server-side controller logic, and handle the propagation of any resulting updates to the client-side document with which the user interacts. Existing server-centric frameworks suffer from multiple Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed shortcomings. First, since they instantiate components for for profit or commercial advantage and that copies bear this notice and the full citation each visit, they also do not automatically preserve user in- on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. terface state across visits. Second, they still require the pro- SPLASH’12, October 19–26, 2012, Tucson, Arizona, USA. grammer to synchronize updates to the application’s model Copyright c 2012 ACM 978-1-4503-1563-0/12/10. $10.00 state across visits. Third, in practice they can make styling 2. Motivation difficult, since the specifics of the rendering strategy used by We motivate our approach using several example application these high-level components is encapsulated in their imple- scenarios. First, consider an example application such as the mentation. Fourth, the necessary computation of incremental popular meeting scheduling service ’Doodle’ (doodle.com). client-side document updates after mutating the server-side A user may initiate event scheduling by entering a set of pos- view is tedious and error prone. Fifth, these server-centric sible meeting times, which are displayed to potential partici- frameworks often do not leverage the numerous JavaScript pants on a specially crafted webpage. Participants then enter libraries that have been developed to facilitate the interac- their name, check boxes indicating their preferences when to tion with HTML documents, and thus cannot leverage the meet, and hit a submit button, which navigates to a new page substantial skill sets developers have acquired. that displays their preferences along with the preferences of This paper presents CloudBrowser, a web application all other participants who have entered their preferences so framework that addresses these concerns. CloudBrowser far. maintains an application’s user interface state server-side, The user experience of Doodle, as well as many other cur- as a document in a headless, virtual browser. The applica- rently available similar services, could in our opinion be sig- tion logic interacts with the server-side representation in a nificantly improved. For instance, a user does not see what manner similar to how a desktop application interacts with other participants have entered until they submit their own, a graphical user interface (GUI) library, by creating and ma- and subsequently only when they refresh or revisit the page, nipulating components and listening for events fired in re- even when the potential meeting participants visit the page sponse to user interactions. This design hides the distributed at around the same time. In addition, if the process of enter- nature of the web from the application developer, because ing their name and checking appropriate times is interrupted, all client-server communication is encapsulated inside our perhaps because the user clicked an ad and navigated to an- framework. Clients connecting to application instances mir- other page and returned to the page, the user will need to start ror the user interface state using a synchronization/update over. Lastly, if the user overlooks the submit button before protocol we have developed. CloudBrowser automatically closing the page, their submission will not reach the server interposes on any changes to the server-side document, re- at all, which frequently happens to users accustomed to the moving the need to manually compute updates. For effi- single-click style used in their native OS (i.e., Mac OSX). ciency, the actual layout and rendering of user interface el- Second, consider a social forum application such as Pi- ements is performed inside the actual browser by the client, azza (piazza.com), which provides an interactive Q & A rather than the virtual browser on the server. forum for instructional settings in which students can post CloudBrowser uses exclusively HTML, CSS, and Java- questions to other students and to instructors. From an in- Script to express the user interface and its interaction with structor’s perspective, the Piazza user interface presents a the application, allowing us to leverage existing libraries and constantly changing dashboard - new questions are being developer skill sets, and avoiding any semantic overhead posted, questions are withdrawn, marked as answered by associated with a translation from high-level components other instructors or students, or archived (hidden from view) to low-level components. Since CloudBrowser application after being answered. If the Piazza application is used from instances persist across visits, this design naturally handles multiple computers (say, the instructor’s work PC, work lap- page navigation and refresh. It also provides a natural co- top, home PC, and perhaps a mobile device), the dashboard browsing ability since it can support simultaneous display to views are not kept in sync: already answered questions ap- multiple clients. pear as unanswered when the instructor revisits the class site CloudBrowser is targeted at developing web applications after returning home from work, forcing a manual refresh of in which most user interactions trigger persistent changes to the page. When such a refresh happens, some user interface the application data that
Recommended publications
  • CRISPR/Cas9-Mediated Trp53 and Brca2 Knockout
    Published OnlineFirst August 16, 2016; DOI: 10.1158/0008-5472.CAN-16-1272 Cancer Tumor and Stem Cell Biology Research CRISPR/Cas9-Mediated Trp53 and Brca2 Knockout to Generate Improved Murine Models of Ovarian High-Grade Serous Carcinoma Josephine Walton1,2, Julianna Blagih3, Darren Ennis1, Elaine Leung1, Suzanne Dowson1, Malcolm Farquharson1, Laura A. Tookman4, Clare Orange5, Dimitris Athineos3, Susan Mason3, David Stevenson3, Karen Blyth3, Douglas Strathdee3, Frances R. Balkwill2, Karen Vousden3, Michelle Lockley4, and Iain A. McNeish1,4 Abstract – – There is a need for transplantable murine models of ovarian ating novel ID8 derivatives that harbored single (Trp53 / )or – – – – high-grade serous carcinoma (HGSC) with regard to mutations in double (Trp53 / ;Brca2 / ) suppressor gene deletions. In these the human disease to assist investigations of the relationships mutants, loss of p53 alone was sufficient to increase the growth between tumor genotype, chemotherapy response, and immune rate of orthotopic tumors with significant effects observed on the microenvironment. In addressing this need, we performed whole- immune microenvironment. Specifically, p53 loss increased exome sequencing of ID8, the most widely used transplantable expression of the myeloid attractant CCL2 and promoted the model of ovarian cancer, covering 194,000 exomes at a mean infiltration of immunosuppressive myeloid cell populations into – – – – depth of 400Â with 90% exons sequenced >50Â. We found no primary tumors and their ascites. In Trp53 / ;Brca2 / mutant functional mutations in genes characteristic of HGSC (Trp53, cells, we documented a relative increase in sensitivity to the PARP Brca1, Brca2, Nf1, and Rb1), and p53 remained transcriptionally inhibitor rucaparib and slower orthotopic tumor growth – – active. Homologous recombination in ID8 remained intact in compared with Trp53 / cells, with an appearance of intratumoral þ functional assays.
    [Show full text]
  • Extending Basic Block Versioning with Typed Object Shapes
    Extending Basic Block Versioning with Typed Object Shapes Maxime Chevalier-Boisvert Marc Feeley DIRO, Universite´ de Montreal,´ Quebec, Canada DIRO, Universite´ de Montreal,´ Quebec, Canada [email protected] [email protected] Categories and Subject Descriptors D.3.4 [Programming Lan- Basic Block Versioning (BBV) [7] is a Just-In-Time (JIT) com- guages]: Processors—compilers, optimization, code generation, pilation strategy which allows rapid and effective generation of run-time environments type-specialized machine code without a separate type analy- sis pass or complex speculative optimization and deoptimization Keywords Just-In-Time Compilation, Dynamic Language, Opti- strategies (Section 2.4). However, BBV, as previously introduced, mization, Object Oriented, JavaScript is inefficient in its handling of object property types. The first contribution of this paper is the extension of BBV with Abstract typed object shapes (Section 3.1), object descriptors which encode type information about object properties. Type meta-information Typical JavaScript (JS) programs feature a large number of object associated with object properties then becomes available at prop- property accesses. Hence, fast property reads and writes are cru- erty reads. This allows eliminating run-time type tests dependent on cial for good performance. Unfortunately, many (often redundant) object property accesses. The target of method calls is also known dynamic checks are implied in each property access and the seman- in most cases. tic complexity of JS makes it difficult to optimize away these tests The second contribution of this paper is a further extension through program analysis. of BBV with shape propagation (Section 3.3), the propagation We introduce two techniques to effectively eliminate a large and specialization of code based on object shapes.
    [Show full text]
  • Machine Learning in the Browser
    Machine Learning in the Browser The Harvard community has made this article openly available. Please share how this access benefits you. Your story matters Citable link http://nrs.harvard.edu/urn-3:HUL.InstRepos:38811507 Terms of Use This article was downloaded from Harvard University’s DASH repository, and is made available under the terms and conditions applicable to Other Posted Material, as set forth at http:// nrs.harvard.edu/urn-3:HUL.InstRepos:dash.current.terms-of- use#LAA Machine Learning in the Browser a thesis presented by Tomas Reimers to The Department of Computer Science in partial fulfillment of the requirements for the degree of Bachelor of Arts in the subject of Computer Science Harvard University Cambridge, Massachusetts March 2017 Contents 1 Introduction 3 1.1 Background . .3 1.2 Motivation . .4 1.2.1 Privacy . .4 1.2.2 Unavailable Server . .4 1.2.3 Simple, Self-Contained Demos . .5 1.3 Challenges . .5 1.3.1 Performance . .5 1.3.2 Poor Generality . .7 1.3.3 Manual Implementation in JavaScript . .7 2 The TensorFlow Architecture 7 2.1 TensorFlow's API . .7 2.2 TensorFlow's Implementation . .9 2.3 Portability . .9 3 Compiling TensorFlow into JavaScript 10 3.1 Motivation to Compile . 10 3.2 Background on Emscripten . 10 3.2.1 Build Process . 12 3.2.2 Dependencies . 12 3.2.3 Bitness Assumptions . 13 3.2.4 Concurrency Model . 13 3.3 Experiences . 14 4 Results 15 4.1 Benchmarks . 15 4.2 Library Size . 16 4.3 WebAssembly . 17 5 Developer Experience 17 5.1 Universal Graph Runner .
    [Show full text]
  • Histcoroy Pyright for Online Information and Ordering of This and Other Manning Books, Please Visit Topwicws W.Manning.Com
    www.allitebooks.com HistCoroy pyright For online information and ordering of this and other Manning books, please visit Topwicws w.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact Tutorials Special Sales Department Offers & D e al s Manning Publications Co. 20 Baldwin Road Highligh ts PO Box 761 Shelter Island, NY 11964 Email: [email protected] Settings ©2017 by Manning Publications Co. All rights reserved. Support No part of this publication may be reproduced, stored in a retrieval system, or Sign Out transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid­free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15 percent recycled and processed without the use of elemental chlorine. Manning Publications Co. PO Box 761 Shelter Island, NY 11964 www.allitebooks.com Development editor: Cynthia Kane Review editor: Aleksandar Dragosavljević Technical development editor: Stan Bice Project editors: Kevin Sullivan, David Novak Copyeditor: Sharon Wilkey Proofreader: Melody Dolab Technical proofreader: Doug Warren Typesetter and cover design: Marija Tudor ISBN 9781617292576 Printed in the United States of America 1 2 3 4 5 6 7 8 9 10 – EBM – 22 21 20 19 18 17 www.allitebooks.com HistPoray rt 1.
    [Show full text]
  • THE FUTURE of SCREENS from James Stanton a Little Bit About Me
    THE FUTURE OF SCREENS From james stanton A little bit about me. Hi I am James (Mckenzie) Stanton Thinker / Designer / Engineer / Director / Executive / Artist / Human / Practitioner / Gardner / Builder / and much more... Born in Essex, United Kingdom and survived a few hair raising moments and learnt digital from the ground up. Ok enough of the pleasantries I have been working in the design field since 1999 from the Falmouth School of Art and onwards to the RCA, and many companies. Ok. less about me and more about what I have seen… Today we are going to cover - SCREENS CONCEPTS - DIGITAL TRANSFORMATION - WHY ASSETS LIBRARIES - CODE LIBRARIES - COST EFFECTIVE SOLUTION FOR IMPLEMENTATION I know, I know, I know. That's all good and well, but what does this all mean to a company like mine? We are about to see a massive change in consumer behavior so let's get ready. DIGITAL TRANSFORMATION AS A USP Getting this correct will change your company forever. DIGITAL TRANSFORMATION USP-01 Digital transformation (DT) – the use of technology to radically improve performance or reach of enterprises – is becoming a hot topic for companies across the globe. VERY DIGITAL CHANGING NOT VERY DIGITAL DIGITAL TRANSFORMATION USP-02 Companies face common pressures from customers, employees and competitors to begin or speed up their digital transformation. However they are transforming at different paces with different results. VERY DIGITAL CHANGING NOT VERY DIGITAL DIGITAL TRANSFORMATION USP-03 Successful digital transformation comes not from implementing new technologies but from transforming your organisation to take advantage of the possibilities that new technologies provide.
    [Show full text]
  • Vbscript Programmer's Reference
    Table of Contents VBScript Programmer's Reference...................................................................................................................1 Introduction.........................................................................................................................................................6 Who is this Book For?............................................................................................................................6 How to Use this Book.............................................................................................................................6 What is VBScript?..................................................................................................................................7 What Can You Do With VBScript?......................................................................................................11 What Tools Do You Need to Use VBScript?.......................................................................................14 What's New in VBScript 5?..................................................................................................................15 Code Conventions.................................................................................................................................17 Tell Us What You Think.......................................................................................................................17 Customer Support.................................................................................................................................18
    [Show full text]
  • Xcentrisity® BIS Addpack for Visual COBOL
    Xcentrisity® BIS AddPack for Visual COBOL User's Guide Micro Focus The Lawn 22-30 Old Bath Road Newbury, Berkshire RG14 1QN UK http://www.microfocus.com © Copyright 2009-2020 Micro Focus or one of its affiliates. MICRO FOCUS, the Micro Focus logo and Visual COBOL are trademarks or registered trademarks of Micro Focus or one of its affiliates. All other marks are the property of their respective owners. 2020-06-17 ii Contents Xcentrisity Business Information Server for Visual COBOL User's Guide ............................................................................................................................. 5 Copyright and Trademarks .................................................................................................. 5 Introducing the Business Information Server ...................................................................... 5 Overview .................................................................................................................. 6 Installation on Windows ............................................................................................7 Installation on UNIX ..................................................................................................9 Testing the Installation ............................................................................................11 Uninstalling BIS for IIS ........................................................................................... 11 Uninstalling BIS for Apache ....................................................................................12
    [Show full text]
  • HTTP Cookie - Wikipedia, the Free Encyclopedia 14/05/2014
    HTTP cookie - Wikipedia, the free encyclopedia 14/05/2014 Create account Log in Article Talk Read Edit View history Search HTTP cookie From Wikipedia, the free encyclopedia Navigation A cookie, also known as an HTTP cookie, web cookie, or browser HTTP Main page cookie, is a small piece of data sent from a website and stored in a Persistence · Compression · HTTPS · Contents user's web browser while the user is browsing that website. Every time Request methods Featured content the user loads the website, the browser sends the cookie back to the OPTIONS · GET · HEAD · POST · PUT · Current events server to notify the website of the user's previous activity.[1] Cookies DELETE · TRACE · CONNECT · PATCH · Random article Donate to Wikipedia were designed to be a reliable mechanism for websites to remember Header fields Wikimedia Shop stateful information (such as items in a shopping cart) or to record the Cookie · ETag · Location · HTTP referer · DNT user's browsing activity (including clicking particular buttons, logging in, · X-Forwarded-For · Interaction or recording which pages were visited by the user as far back as months Status codes or years ago). 301 Moved Permanently · 302 Found · Help 303 See Other · 403 Forbidden · About Wikipedia Although cookies cannot carry viruses, and cannot install malware on 404 Not Found · [2] Community portal the host computer, tracking cookies and especially third-party v · t · e · Recent changes tracking cookies are commonly used as ways to compile long-term Contact page records of individuals' browsing histories—a potential privacy concern that prompted European[3] and U.S.
    [Show full text]
  • Create Mobile Apps with HTML5, Javascript and Visual Studio
    Create mobile apps with HTML5, JavaScript and Visual Studio DevExtreme Mobile is a single page application (SPA) framework for your next Windows Phone, iOS and Android application, ready for online publication or packaged as a store-ready native app using Apache Cordova (PhoneGap). With DevExtreme, you can target today’s most popular mobile devices with a single codebase and create interactive solutions that will amaze. Get started today… ・ Leverage your existing Visual Studio expertise. ・ Build a real app, not just a web page. ・ Deliver a native UI and experience on all supported devices. ・ Use over 30 built-in touch optimized widgets. Learn more and download your free trial devexpress.com/mobile All trademarks or registered trademarks are property of their respective owners. Untitled-4 1 10/2/13 11:58 AM APPLICATIONS & DEVELOPMENT SPECIAL GOVERNMENT ISSUE INSIDE Choose a Cloud Network for Government-Compliant magazine Applications Geo-Visualization of SPECIAL GOVERNMENT ISSUE & DEVELOPMENT SPECIAL GOVERNMENT ISSUE APPLICATIONS Government Data Sources Harness Open Data with CKAN, OData and Windows Azure Engage Communities with Open311 THE DIGITAL GOVERNMENT ISSUE Inside the tools, technologies and APIs that are changing the way government interacts with citizens. PLUS SPECIAL GOVERNMENT ISSUE APPLICATIONS & DEVELOPMENT SPECIAL GOVERNMENT ISSUE & DEVELOPMENT SPECIAL GOVERNMENT ISSUE APPLICATIONS Enhance Services with Windows Phone 8 Wallet and NFC Leverage Web Assets as Data Sources for Apps APPLICATIONS & DEVELOPMENT SPECIAL GOVERNMENT ISSUE ISSUE GOVERNMENT SPECIAL DEVELOPMENT & APPLICATIONS Untitled-1 1 10/4/13 11:40 AM CONTENTS OCTOBER 2013/SPECIAL GOVERNMENT ISSUE OCTOBER 2013/SPECIAL GOVERNMENT ISSUE magazine FEATURES MOHAMMAD AL-SABT Editorial Director/[email protected] Geo-Visualization of Government KENT SHARKEY Site Manager Data Sources MICHAEL DESMOND Editor in Chief/[email protected] Malcolm Hyson ..........................................
    [Show full text]
  • Onclick Event-Handler
    App Dev Stefano Balietti Center for European Social Science Research at Mannheim University (MZES) Alfred-Weber Institute of Economics at Heidelberg University @balietti | stefanobalietti.com | @nodegameorg | nodegame.org Building Digital Skills: 5-14 May 2021, University of Luzern Goals of the Seminar: 1. Writing and understanding asynchronous code: event- listeners, remote functions invocation. 2. Basic front-end development: HTML, JavaScript, CSS, debugging front-end code. 3. Introduction to front-end frameworks: jQuery and Bootstrap 4. Introduction to back-end development: NodeJS Express server, RESTful API, Heroku cloud. Outputs of the Seminar: 1. Web app: in NodeJS/Express. 2. Chrome extensions: architecture and examples. 3. Behavioral experiment/survey: nodeGame framework. 4. Mobile development: hybrid apps with Apache Cordova, intro to Ionic Framework, progressive apps (PWA). Your Instructor: Stefano Balietti http://stefanobalietti.com Currently • Fellow in Sociology Mannheim Center for European Social Research (MZES) • Postdoc at the Alfred Weber Institute of Economics at Heidelberg University Previously o Microsoft Research - Computational Social Science New York City o Postdoc Network Science Institute, Northeastern University o Fellow IQSS, Harvard University o PhD, Postdoc, Computational Social Science, ETH Zurich My Methodology Interface of computer science, sociology, and economics Agent- Social Network Based Analysis Models Machine Learning for Optimal Experimental Experimental Methods Design Building Platforms Patterns
    [Show full text]
  • Extracting Taint Specifications for Javascript Libraries
    Extracting Taint Specifications for JavaScript Libraries Cristian-Alexandru Staicu Martin Toldam Torp Max Schäfer TU Darmstadt Aarhus University GitHub [email protected] [email protected] [email protected] Anders Møller Michael Pradel Aarhus University University of Stuttgart [email protected] [email protected] ABSTRACT ACM Reference Format: Modern JavaScript applications extensively depend on third-party Cristian-Alexandru Staicu, Martin Toldam Torp, Max Schäfer, Anders Møller, and Michael Pradel. 2020. Extracting Taint Specifications for JavaScript libraries. Especially for the Node.js platform, vulnerabilities can Libraries. In 42nd International Conference on Software Engineering (ICSE have severe consequences to the security of applications, resulting ’20), May 23–29, 2020, Seoul, Republic of Korea. ACM, New York, NY, USA, in, e.g., cross-site scripting and command injection attacks. Existing 12 pages. https://doi.org/10.1145/3377811.3380390 static analysis tools that have been developed to automatically detect such issues are either too coarse-grained, looking only at 1 INTRODUCTION package dependency structure while ignoring dataflow, or rely on JavaScript is powering a wide variety of web applications, both manually written taint specifications for the most popular libraries client-side and server-side. Many of these applications are security- to ensure analysis scalability. critical, such as PayPal, Netflix, or Uber, which handle massive In this work, we propose a technique for automatically extract- amounts of privacy-sensitive user data and other assets. An impor- ing taint specifications for JavaScript libraries, based on a dynamic tant characteristic of modern JavaScript-based applications is the analysis that leverages the existing test suites of the libraries and extensive use of third-party libraries.
    [Show full text]
  • 1. the ZK User Interface Markup Language
    1. The ZK User Interface Markup Language The ZK User Interface Markup Language (ZUML) is based on XML. Each XML element describes what component to create. XML This section provides the most basic concepts of XML to work with ZK. If you are familiar with XML, you could skip this section. If you want to learn more, there are a lot of resources on Internet, such as http://www.w3schools.com/xml/xml_whatis.asp and http://www.xml.com/pub/a/98/10/guide0.html. XML is a markup language much like HTML but with stricter and cleaner syntax. It has several characteristics worth to notice. Elements Must Be Well-formed First, each element must be closed. They are two ways to close an element as depicted below. They are equivalent. Close by an end tag: <window></window> Close without an end tag: <window/> Second, elements must be properly nested. Correct: <window> <groupbox> Hello World! </groupbox> </window> Wrong: <window> <groupbox> Hello World! </window> </groupbox> Special Character Must Be Replaced XML uses <element-name> to denote an element, so you have to replace special characters. For example, you have to use &lt; to represent the < character. ZK: Developer's Guide Page 1 of 92 Potix Corporation Special Character Replaced With < &lt; > &gt; & &amp; " &quot; ' &apos; It is interesting to notice that backslash (\) is not a special character, so you don't need to escape it at all. Attribute Values Must Be Specified and Quoted Correct: width="100%" checked="true" Wrong: width=100% checked Comments A comment is used to leave a note or to temporarily edit out a portion of XML code.
    [Show full text]