Languages of the WEB

Languages of the WEB

Languages of the WEB Jukka K. Nurminen 21.1.2013 Adver&sements • Summer internships to apply – h5p://cse.aalto.fi/2013/01/15/summer- internships-in-data-communicaons-soAware-2/ • EIT master school inFo event on 6 February at 16 – 18 – Spend a year in Berlin, Rennes, Paris, Trento, etc. and come back to Aalto to finalize the studies and do the master’s thesis – Innovaon & entrepreneurship minor included Prac&cali&es • Last &me Prac&cali&es + Introduc&on – Slides available in Noppa • Assignments – GIT training – Other news – Pair Formaon during break/aer lecture – Remember to signup For the assignments • Tomorrow 1st mobile lecture Languages For WEB apps Languages For WEB apps • Programming languages – JavaScript (client side, also server side node.js) – PHP, Python, Pearl, Java, Scala, Erlang, … (server side) • Data interchange and storage languages – XML, JSON (textual) – EXI, BSON, Protobuf (binary) – (HTML) • Presentaon languages – CSS – (HTML) • Metalevel languages – XML Schema, XSLT, JSON Schema HTML <html> <head> • Tags speciFy how the <title> title goes here </title> page looks like (e.g. </head> h1) <body bgcolor="white" text="blue"> • This is fine For the <h1> My first page </ browser to show h1> stac pages This is my first web • But it is not easy to </body> use this Form For data </html> transFer Server-Browser data transFer (stac content) Browser HTML Server 1 rendering • When the browser just renders the page created by the server HTML works fine Server-Browser data transFer (dynamic content) HTML => XML, JSON Browser processing & Server 1 rendering • If the client needs to process the incoming data HTML is problematic. • E.g. in if only part of the page needs to be redisplayed (as is the case in AJAX) • This requires that the browser is able to parse and understand the data to be able to process it Server-Server data transFer Server wants to process data coming from other servers HTML Browser Server 1 HTML? => XML • Server1 is not interested in page presentation => HTML not optimal Server 2 • A data transfer language is needed => XML, JSON Personalized tags needed • HTML started with very Few tags … • Language evolved, as more tags were added – forms – tables – Fonts – Frames ⇒ Need For personalized tags For different domains ⇒ E.g. For math, music, purchase orders, … MathML 2 • Designed to • x + 4x + 4 =0 <mrow> express <mrow> <msup> <mi>x</mi> <mn>2</mn> </msup> seman&cs of <mo>+</mo> maths <mrow> <mn>4</mn> <mo>&invisiblemes;</mo> <mi>x</mi> </mrow> <mo>+</mo> • cut & paste <mn>4</mn> </mrow> into Maple, <mo>=</mo> <mn>0</mn> Mathemaca </mrow> Applicaons need to parse the data • HTML syntax was loosely defined which makes its programmac manipulaon difficult – closing tags are op&onal – Different browsers tolerated different violaons oF HTML syntax – XHTML tried to be strict but its adop&on was slow because oF compability issues • HTML5 will replace ⇒ Need For a more structured and well-defined presentaon ⇒Separate language For data presentaon (XML) Elements and aributes • <messages> Attributes (for auxiliary data) <note id="p501"> <to>Tove</to> Elements between tags <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> Borderline between <note id="p502"> elements and attributes <to>Jani</to> … is not clear. Attributes are mainly for auxiliary data. Elements for main data Suitability oF XML • Suitable For storing and exchanging any data that can plausibly be encoded as text. • Unsuitable For digi&zed data such as photographs, recorded sound, video, and other very large bit sequences – But it works well For storing the metadata oF such items • Uses oF XML – Data transFer between applicaons – configuraon files Example Uses • A web browser, such as Netscape Navigator or Internet Explorer, that displays the document to a reader • A word processor, such as StarOffice Writer, that loads the XML document for editing • A database, such as Microsoft SQL Server, that stores the XML data in a new record • A personal finance program, such as Microsoft Money, that sees the XML as a bank statement • A syndication program that reads the XML document and extracts the headlines for today's news What XML is not • Not a programming language – you cannot execute XML • Not a network transport protocol – Actual sending with HTTP, FTP, etc. • Not a database – But XML can be stored and retrieved From databases – Some databases are able to return query results in XML Form Parsing XML DOM SAX • Document Object Model • SAX is Simple API For XML (DOM) API • SAX is an event based parser •DOM is a tree model parser • Parses node by node • Stores the en&re XML • Doesn’t store the XML in document into memory beFore memory processing • We can’t insert or delete a • Occupies more memory node • We can insert or delete • SAX generally runs a li5le nodes Faster than DOM • Traverse in any direc&on. • DOM is used as the internal data model oF browsers PerFormance comparison Source: http://www.devx.com/xml/Article/16922/1954 HTML vs. XML • HTML • XML – Fixed set oF tags – Extensible set oF tags – Presentaon oriented – content oriented – The language oF web – The meta language For pages defining new domain specific languages SGML – the Father oF all (1986) • SGML Old markup languages: – Standard Generalized troff, tex, etc Markup Language – Meta language For defining languages – complex, sophis&cated, powerful – Very advanced but also very complicated SGML example (1985) Languages For XML manipulaon • Meta-level languages • XML Schema – For checking the validity oF XML document • XSLT – For document transFormaons Related standards • Namespaces – Modular document defini&on, mul&ple inheritance, collision avoidance • XPath / XQuery – Navigaon and query oF parts oF the document • XML linking language (Xlink) – Associaons between mul&ple resources – Rules For traversal • XML Schema – defini&on oF document structure and custom data types • XSLT – Extensible Stylesheet Language TransFormaon – TransFormaon oF documents XML Schemas and instances • To be useFul all par&es have to agree what tags are available and what they mean • => Need to describe what tags are available and how they are used • Also what kind oF values should they contain Well-Formed and Valid • Well-Formed – Syntac&cally correct XML • Valid – Matches a defined XML Schema XML Schemas and instances Defines tags and Compare to object- other parameters oriented programming XML Schema class XML instance Instance (.XML file) Provides the data Schema defini&on • Main alternaves – DTD • Document Type Defini&on • Borrowed From SGML – XML Schema • XML based way to define XML schemas DTD • <!DOCTYPE NEWSPAPER [ <!ELEMENT NEWSPAPER (ARTICLE+)> <!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)> <!ELEMENT HEADLINE (#PCDATA)> <!ELEMENT BYLINE (#PCDATA)> <!ELEMENT LEAD (#PCDATA)> <!ELEMENT BODY (#PCDATA)> <!ELEMENT NOTES (#PCDATA)> <!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED> <!ATTLIST ARTICLE EDITOR CDATA #IMPLIED> <!ATTLIST ARTICLE DATE CDATA #IMPLIED> <!ATTLIST ARTICLE EDITION CDATA #IMPLIED> ]> Limitaons oF DTD • Difficult to define other constraints than element nes&ng and recurrence • DTD syntax is not XML XML Schema • <?xml version="1.0"?> <xs:schema xmlns:xs=http://www.w3.org/2001/ XMLSchema> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading” type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> About XML Schema • XML language For describing and constraining the content oF XML documents • A W3c Recommendaon • Used to speciFy – The allowed structure oF an XML document – The allowed data types contained in XML documents • XML Schema documents are XML documents • Schema document: elements, aributes, and type defini&ons + annotaons Defining a simple element • A simple element is defined as <xs:element name="name" type="type" /> where: – name is the name oF the element – the most common values For type are xs:boolean xs:integer xs:date xs:string xs:decimal xs:time • Example • <xs:element name="to" type="xs:string"/> Defining an aribute • A5ributes themselves are always declared as simple types • An aribute is defined as <xs:attribute name="name" type="type" /> where: – name and type are the same as For xs:element • Other aributes a simple element may have: – default="default value" if no other value is specified – fixed="value" no other value may be specified – use="optional" the a6ribute is not required (default) – use="required" the a6ribute must be present • Example – <xs:attribute name="orderid" type="orderidtype" use="required"/> Restric&ons, or “Facets” • The general Form For pung a restric&on on a text value is: – <xs:element name="name"> (or xs:attribute) <xs:restriction base="type"> ... the restrictions ... </xs:restriction> </xs:element> • For example: – <xs:element name="age"> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"> <xs:maxInclusive value="140"> </xs:restriction> </xs:element> complex elements • A complex element is defined as <xs:element name="name"> <xs:complexType> ... information about the complex type... </xs:complexType> </xs:element> • Example: Local definition of complex type <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="firstName" type="xs:string" /> <xs:element name="lastName" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> • <xs:sequence> says that elements must occur in this order Globally defined complex type • Definition

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    65 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us