350 likes | 485 Views
XML Overview. Introduction to XML for the MultiValue Developer. Why are we here?. XML is the post-SQL database environment. MultiValue developers are starting to integrate to data in this format To understand the document structure of XML files To know how XML is used
E N D
XML Overview Introduction to XML for the MultiValue Developer
Why are we here? • XML is the post-SQL database environment. • MultiValue developers are starting to integrate to data in this format • To understand the document structure of XML files • To know how XML is used • To see how it relates to MultiValue systems. • To add more buzzwords on your resume
eris • Database to Web integration since 1992 • Customers with up to $2 Billion in annual revenue • Clients throughout North America • Education, Medical, Manufacturing, EDI, Distribution, Sales Force Automation, Help Desk, and Reporting Systems • e-Commerce and database product development, e.g., WebWizard, DataReady, mv://e-Store • Los Angeles and Chicago offices
Agenda • About eris • What is XML? • How is XML used? • Integration with MultiValue • Syntax • Advanced Issues
What is XML? XML is a cross-platform,software and hardware independent toolfor transmitting information
Main XML Features • Like HTML, it's just ordinary ASCII text • It’s an Extensible Markup Language • Resembles HTML, but does not replace HTML • Delivers or describes data • It doesn't PERFORM anything • Unlike HTML, there are no standard tags. • Advanced XML users deploy Document Type Definition (DTD) and/or XML Schema • DTD and Schema resemble MultiValue dictionaries • Can be viewed using browsers
How is XML used? • For web developers, it separates web pages from the data in the web pages • For interdependent companies, it allows data to be exchanged between incompatible databases • For interdependent software programs, it allows data to be exchanged between software packages • For interdependent companies on the internet, it's the primary language for B2B
Other uses for XML • XML can be used as a database directly • XML has been extended into WAP and WML
Syntax • Requirements • Elements • Attributes • Validation
Example XML Document <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Monica</to> <from>Gus</from> <subject>See you soon</subject> <delivery date="sent">September 21, 2004</delivery> <body>Do you want to grab a drink after the Spectrum show?</body> </note>
This line is a given <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Monica</to> <from>Gus</from> <subject>See you soon</subject> <delivery date="sent">September 21, 2004</delivery> <body>Do you want to grab a drink after the Spectrum show?</body> </note>
A new element called “note” <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Monica</to> <from>Gus</from> <subject>See you soon</subject> <delivery date="sent">September 21, 2004</delivery> <body>Do you want to grab a drink after the Spectrum show?</body> </note>
5 elements that belong to note <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Monica</to> <from>Mel</from> <subject>See you soon</subject> <delivery date="sent">September 21, 2004</delivery> <body>Do you want to grab a drink after the Spectrum show?</body> </note>
The end of the note tag <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Monica</to> <from>Gus</from> <subject>See you soon</subject> <delivery date="sent">September 21, 2004</delivery> <body>Do you want to grab a drink after the Spectrum show?</body> </note>
Requirements • Unlike HTML, closing tags are required • Unlike HTML, the tags are case sensitive • Unlike HTML, the tags can nest but must nest themselves correctly • Unlike HTML, space characters are not ignored
More Requirements • XML documents require a root element • Descriptive attributes need quotation marks (double or single) • <!-- Comments are similar to HTML -->
Elements • Programs that deal with XML pay attention to only the element tags they care about • For example, programs that pay attention to just "to" and "body" can ignore "from", "subject" and "delivery"
Element Relationships • Parent • Child • Siblings
Another Example <?xml version="1.0" encoding="ISO-8859-1"?> <spectrum> <location id="UK">London <when day="23" month="09" year="2004"></when> </location> <location id="AU">Sydney <when day="13" month="10" year="2004"></when> </location> <talk>Introduction to XML <topic>What is XML</topic> <topic>XML Syntax</topic> </talk> <talk>Introduction to SQL <topic>SQL versus Multi-Value</topic> <topic>Popular SQL databases</topic> </talk> </spectrum>
The Element jargon continues • element content - <spectrum> • simple or text content - <topic> • mixed content - <talk> and <location> • empty content - <when> • attributes - month and year • values for the attributes - "09", "10" and "2004"
Element – Naming Rules • Names can contain letters, numbers, and other characters (except spaces and colons) • Names must begin with a letter • Names must not begin with the letters "XML" in any case combination • Suggestions • Don't use periods or hyphens • Keep them simple but descriptive • Try to use names similar to how the data • Perhaps use underscores instead of periods
Attributes [ <when day="23" month="09" year="2004"></when> ]
Elements versus Attributes [ <when day="23" month="09" year="2004"></when> ] [ <when> <day>23</day> <month>09</month> <year>2004</year> </when> ]
Why Avoid Attributes? • Might be obvious for MultiValue developers • They cannot contain multiple values (child elements can) • They are not easily expandable (for future changes) • They cannot nest • Document Type Definition have a harder time validating attributes
Imagine the following bad attribute situation <?xml version="1.0" encoding="ISO-8859-1"?> <note to="Monica" from=“Mel" subject="See you soon" delivery_day="23" delivery_month="09" delivery_year="2004" body="Do you want to grab a drink after the Spectrum show?" </note>
When attributes make sense:Describing the element, not the data <location id="UK">London <when day="23" month="09" year="2004"></when> </location> <location id="AU">Sydney <when day="13" month="10" year="2004"></when> </location>
Advanced Issue: Validation • Valid documents have rules that they can be compared against • Documents that have any errors whatsoever are supposed to be rejected
Example for validation <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE note SYSTEM "note.dtd"> <note to="Monica" from=“Mel" subject="See you soon" delivery_day="23" delivery_month="09" delivery_year="2004" body="Do you want to grab a drink after the Spectrum show?" </note>
Two types of advanced XML design • Document Type Definition (DTD) allows you to create a validation • Internal Definition • External Definition • Schemas allow you to create validations and database structures
DTD Syntax • Internal<!DOCTYPE root-element [element-declarations]> • External<!DOCTYPE root-element SYSTEM "filename">
Example of an Internal DTD <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE note [ <!ELEMENT note (to,from,subject,delivery,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT subject (#PCDATA)> <!ELEMENT delivery (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>Monica</to> <from>Mel</from> <subject>See you soon</subject> <delivery date="sent">September 21, 2004</delivery> <body>Do you want to grab a drink after the Spectrum show?</body> </note>
Example of an External DTD <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE note SYSTEM "http://somewhere.com/note.dtd" > <note> <to>Monica</to> <from>Mel</from> <subject>See you soon</subject> <delivery date="sent">September 21, 2004</delivery> <body>Do you want to grab a drink after the Spectrum show?</body> </note>
Sample Product Catalog (Page 1 of 2) <!DOCTYPE CATALOG [ <!ENTITY AUTHOR "John Doe"> <!ENTITY COMPANY "JD Power Tools, Inc."> <!ENTITY EMAIL "jd@jd-tools.com"> <!ELEMENT CATALOG (PRODUCT+)> <!ELEMENT NOTES (#PCDATA)> <!ELEMENT PRODUCT (SPECIFICATIONS+,OPTIONS?,PRICE+,NOTES?)> <!ATTLIST PRODUCT NAME CDATA #IMPLIED CATEGORY (HandTool|Table|Shop-Professional) "HandTool" PARTNUM CDATA #IMPLIED PLANT (Pittsburgh|Milwaukee|Chicago) "Chicago" INVENTORY (InStock|Backordered|Discontinued) "InStock">
Sample Product Catalog (Page 2 of 2) <!ELEMENT SPECIFICATIONS (#PCDATA)> <!ATTLIST SPECIFICATIONS WEIGHT CDATA #IMPLIED POWER CDATA #IMPLIED> <!ELEMENT OPTIONS (#PCDATA)> <!ATTLIST OPTIONS FINISH (Metal|Polished|Matte) "Matte" ADAPTER (Included|Optional|NotApplicable) "Included" CASE (HardShell|Soft|NotApplicable) "HardShell"> <!ELEMENT PRICE (#PCDATA)> <!ATTLIST PRICE MSRP CDATA #IMPLIED WHOLESALE CDATA #IMPLIED STREET CDATA #IMPLIED SHIPPING CDATA #IMPLIED> ]>
Contact us Main Office: 199 S. Los Robles Ave, Suite 860 Pasadena, CA 91101 Tel: (626) 535-9658 Fax: (626) 628-3229 www.eriscorp.com info @ eriscorp.com