what about xml - xtuml
TRANSCRIPT
![Page 1: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/1.jpg)
What About XML?
Marc BalcerThoughtWorks
![Page 2: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/2.jpg)
XML-01-2
Why this talk?
• XML is all over the news• Be fully buzzword compliant• Another reason to be SMUG —
we’ve had “the answers” all along• See how our sense of RD can help
![Page 3: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/3.jpg)
XML-01-3
Overview
• Why XML?• Domains and XML• Creating an XML Document• Transforming XML• Case Study
![Page 4: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/4.jpg)
XML-01-4
Why XML?
• Data exchange between heterogeneouscomponents
Bank
Brokerage
Brokerage
MortgageCompany
Credit CardCompany
What’s mynet worth?
Credit CardCompany
Life InsuranceCompany
![Page 5: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/5.jpg)
XML-01-5
What a contraption!
BankWeb Server
Brokerage 1Web Server
Brokerage 2Web Server
Mortgage CoWeb Server
Credit CardWeb Server
“Net Worth”Program
HTML
• HTML is focused upon presentation,not content
I’ll wait for thestatements and
use mycalculator...
Insurance Co.Web Server
Parse five differentHTML streams at thecharacter level, findexactly the data wewant, compute the“net worth”, then
display it.
![Page 6: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/6.jpg)
XML-01-6
XML in PracticeCreditBureau
CreditBureau
PricingEngine
FulfillmentSystem
LoanServicing
Sales TaxLookup
XML
LoanOrigination
System
• Use XML for exchanging databetween external systems
![Page 7: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/7.jpg)
XML-01-7
XML in PracticeCreditBureau
CreditBureau
PricingEngine
FulfillmentSystem
LoanServicing
Sales TaxLookup
Web GUI
DocumentGenerator
XML
LoanOrigination
System Browser
HTML
PDFXML
• and internally for extractingdata for presentation
![Page 8: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/8.jpg)
XML-01-8
HTML - Presentation
• HTML tags -presentation– set is fixed– goal: direct display in a
web browser
<HTML><HEAD><TITLE>Student Schedule</TITLE><BODY><H3>Student Schedule</H3><TABLE border=1 cellPadding=1 cellSpacing=1> <TR>
<TH align="left">Student</TH><TD>Brown, Charlie</TD></TR>
<TR><TH align="left">Term</TH><TD>Fall 2000</TD></TR>
</TABLE><TABLE border=1 cellPadding=1 cellSpacing=1> <TR> <TH>Department</TH> <TH>Course#</TH> <TH>Course Name</TH> <TH>Days</TH> <TH>Time</TH></TR> <TR> <TD>Comp Sci</TD> <TD>202</TD> <TD>Object-Oriented Analysis</TD> <TD>MWF</TD> <TD>10-11 a.m.</TD></TR>
Student ScheduleStudent Brown, CharlieTerm Fall 2000
Department Course# Course Name Days TimeComp Sci 202 Object-Oriented Analysis MWF 10-11 a.m.PE 316 Baseball TTh 3-6 p.m.
![Page 9: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/9.jpg)
XML-01-9
XML - Content
• XML tags– set defined by the type
of data being displayed– goal: describe structured
data
<?xml version=“1.0”><Schedule Term=“Spring 2000” Student=“Brown, Charlie” > <Enrollment Department=“Comp Sci” CourseNum=“202” Title=“Object-Oriented Analysis” Days=“MWF” Times=“10-11 a.m.”/> <Enrollment Department=“PE” CourseNum=“316” Title=“Baseball” Days=“TTh” Times=“3-6 p.m.”/></Schedule>
Student ScheduleStudent Brown, CharlieTerm Fall 2000
Department Course# Course Name Days TimeComp Sci 202 Object-Oriented Analysis MWF 10-11 a.m.PE 316 Baseball TTh 3-6 p.m.
![Page 10: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/10.jpg)
XML-01-10
XML concepts
• Document• Element• Attributes
<?xml version=“1.0”><Schedule Term=“Spring 2000” Student=“Brown, Charlie” > <Enrollment Department=“Comp Sci” CourseNum=“202” Title=“Object-Oriented Analysis” Days=“MWF” Times=“10-11 a.m.”/> <Enrollment Department=“PE” CourseNum=“316” Title=“Baseball” Days=“TTh” Times=“3-6 p.m.”/></Schedule>
![Page 11: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/11.jpg)
XML-01-11
HTML and XML
• Properly formed HTML is XML (remember this…!)<?xml version=“1.0”><Schedule Term=“Spring 2000” Student=“Brown, Charlie” > <Enrollment Department=“Comp Sci” CourseNum=“202” Title=“Object-Oriented Analysis” Days=“MWF” Times=“10-11 a.m.”/> <Enrollment Department=“PE” CourseNum=“316” Title=“Baseball” Days=“TTh” Times=“3-6 p.m.”/></Schedule>
<HTML><HEAD><TITLE>Student Schedule</TITLE><BODY><H3>Student Schedule</H3><TABLE border=1 cellPadding=1 cellSpacing=1> <TR>
<TH align="left">Student</TH><TD>Brown, Charlie</TD></TR>
<TR><TH align="left">Term</TH><TD>Fall 2000</TD></TR>
</TABLE><TABLE border=1 cellPadding=1 cellSpacing=1> <TR> <TH>Department</TH> <TH>Course#</TH> <TH>Course Name</TH> <TH>Days</TH> <TH>Time</TH></TR> <TR> <TD>Comp Sci</TD> <TD>202</TD>
![Page 12: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/12.jpg)
XML-01-12
Classic XML example
XMLDocument
HTMLDocument
XSLStylesheet
Formatter
XSL?Don’t worryabout itnow...
Separatecontent
frompresentation
![Page 13: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/13.jpg)
XML-01-13
Classic XML Example
• XML document tags (elements & attributes)– Student, Course, Enrollment
• HTML document tags– H1, H2, Table, TR, TH, TD
(header, subhead, table, row,table header, table data)
![Page 14: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/14.jpg)
XML-01-14
Domains and XML
• Each XML document describes a singlesubject matter
XMLDocument
HTMLDocument
XSLStylesheet
Formatter
Universitysubjectmatter
Web“browser”subjectmatter
![Page 15: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/15.jpg)
XML-01-15
Domains and XML
• Each XML document isbased upona single domain
• The elements are basedupon the objectsin that domain
• There may be manydocumentsper domain
University
UniversityCatalog
StudentSchedule
ClassSchedule
StudentTranscript
DepartmentMajors
![Page 16: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/16.jpg)
XML-01-16
Commentary...
• While the rest of the world is struggling tofigure out how to organize an XML project,we’re SMUG enough toalready know the answer… Domain
Chart!
HTML
University
Universitysubjectmatter
Web“browser”subjectmatter
![Page 17: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/17.jpg)
XML-01-17
Creating an XML Document
• Start with a root object• Select attributes and related objects• Traverse relationships,
maintain multiplicity & conditionality
CourseScheduledocument
![Page 18: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/18.jpg)
XML-01-18
“Data Server”
• Applications provide interfacesfor producing their XML documents
UniversityCourse
EnrollmentSystem
http://registration.bigstateu.edu/studentschedule?studentid=36378
StudentSchedule
“XML over HTTP”
![Page 19: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/19.jpg)
XML-01-19
Data Type Definition (DTD)
• Official way to specify and to validatean XML document(1)
– What are the elements– What are the elements’ attributes– Which elements include other elements
and the multiplicity of those inclusions
1 XML “schemas” are a new all-XML means of specifying an XML document, but they do notvalidate XML documents in all parsers yet.
![Page 20: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/20.jpg)
XML-01-20
Deriving a DTD
• Start with a root object• Select attributes and related objects• Traverse relationships,
maintain multiplicity & conditionality
CourseSchedule
DTD
![Page 21: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/21.jpg)
XML-01-21
Root Object
It’s “Coloring!”
![Page 22: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/22.jpg)
XML-01-22
Attributes & Related Objects
Department.DepartmentNameCourse.CourseNumber, CourseName, Description
CourseSection.SectionNumber, Days, StartTime, EndTime
Professor.ProfessorName
![Page 23: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/23.jpg)
XML-01-23
Traverse Relationships
Department.DepartmentNameCourse.CourseNumber, CourseName, Description
CourseSection.SectionNumber, Days, StartTime, EndTime
Professor.ProfessorNameUML or no UML…those double-headedarrows are back!
![Page 24: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/24.jpg)
XML-01-24
Single-Instance Object
Department.DepartmentNameCourse.CourseNumber, CourseName, Description
CourseSection.SectionNumber, Days, StartTime, EndTime
Professor.ProfessorName
CourseSchedule
![Page 25: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/25.jpg)
XML-01-25
Course Schedule DTD
<!ELEMENT CourseSchedule (Department)+><!ATTLIST CourseSchedule Term CDATA #IMPLIED><!ELEMENT Department (Course+)><!ATTLIST Department Name CDATA #IMPLIED><!ELEMENT Course (CourseSection)+><!ATTLIST Course CourseName CDATA #IMPLIED CourseNumber CDATA #IMPLIED CreditHours CDATA #IMPLIED><!ELEMENT CourseSection EMPTY><!ATTLIST CourseSection SectionNumber CDATA #IMPLIED EndTime CDATA #IMPLIED ProfessorName CDATA #IMPLIED StartTime CDATA #IMPLIED Days CDATA #IMPLIED>
CourseSchedule
![Page 26: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/26.jpg)
XML-01-26
XML Document
CourseSchedule
<?xml version=“1.0”?><CourseSchedule Term=“Spring 2000”> <Department Name=“Comp Sci”> <Course CourseNumber=“101” CourseName=“Java Programming” CreditHours=“3”> <CourseSection SectionNumber=“1” Days=“MWF” StartTime=“10 a.m.” EndTime=“11 a.m.” ProfessorName=“Gosling”/> <CourseSection SectionNumber=“2” Days=“MWF” StartTime=“3 p.m.” EndTime=“4 p.m.” ProfessorName=“Gates”/> </Course> <Course CourseNumber=“202” CourseName=“Object-Oriented Analysis” CreditHours=“3”> <CourseSection SectionNumber=“1” Days=“MWF” StartTime=“11 a.m.” EndTime=“12 a.m.” ProfessorName=“Mellor”/>
![Page 27: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/27.jpg)
XML-01-27
Combining Attributes
CourseSchedule
<?xml version=“1.0”?><CourseSchedule Term=“Spring 2000”> <Department Name=“Comp Sci”> <Course CourseNumber=“101” CourseName=“Java Programming” CreditHours=“3”> <CourseSection SectionNumber=“1” Days=“MWF” StartTime=“10 a.m.” EndTime=“11 a.m.” ProfessorName=“Gosling”/> <CourseSection SectionNumber=“2” Days=“MWF” StartTime=“3 p.m.” EndTime=“4 p.m.” ProfessorName=“Gates”/> </Course> <Course CourseNumber=“202” CourseName=“Object-Oriented Analysis” CreditHours=“3”> <CourseSection SectionNumber=“1” Days=“MWF” StartTime=“11 a.m.” EndTime=“12 a.m.” ProfessorName=“Mellor”/>
With a :1relationship...
…the relatedobject’sattributescan becombinedinto theelement.
![Page 28: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/28.jpg)
XML-01-28
Combining Attributes
• Can combine attributes for– :1 relationship– subtype - supertype
• Include elements for leaf subtypes
• Put this into the coloring
![Page 29: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/29.jpg)
XML-01-29
Special Considerations
• Relationship Loops– Careful!
• Referential Attributes– Generally don’t include
• Structured types– Include as sub-elements
![Page 30: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/30.jpg)
XML-01-30
XML Archetype
• Coloring tables for– which objects– which relationships
• Colorings + OOA IM can be used to create– the DTD or XML schema– code for the “data server”
(as part of an overall architecture)
![Page 31: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/31.jpg)
XML-01-31
Transforming XML
XMLDocument
HTMLDocument
XSLStylesheet
Formatter
Set of rules fortransformingUniversity XMLinto browser HTML
Universitysubjectmatter
Web“browser”subjectmatter
![Page 32: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/32.jpg)
XML-01-32
XSL Stylesheets
• XSL (eXtensible Stylesheet Language)is a means for representing atransformation of XML documentsinto any other representation.– XSL doesn’t just create HTML!– XSL can create any other XML– XSL can create more than XML
Does thephrase
“archetypelanguage”
come to mind?
![Page 33: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/33.jpg)
XML-01-33
XSL Example<?xml version=“1.0”><Schedule Term=“Spring 2000” Student=“Brown, Charlie” > <Enrollment Department=“Comp Sci” CourseNum=“202” Title=“Object-Oriented Analysis” Days=“MWF” Times=“10-11 a.m.”/> <Enrollment Department=“PE” CourseNum=“316” Title=“Baseball” Days=“TTh” Times=“3-6 p.m.”/></Schedule>
<HTML><HEAD><TITLE>Student Schedule</TITLE><BODY><H3>Student Schedule</H3><TABLE border=1 cellPadding=1 cellSpacing=1> <TR>
<TH align="left">Student</TH><TD>Brown, Charlie</TD></TR>
<TR><TH align="left">Term</TH><TD>Fall 2000</TD></TR>
</TABLE><TABLE border=1 cellPadding=1 cellSpacing=1> <TR> <TH>Department</TH> <TH>Course#</TH> <TH>Course Name</TH> <TH>Days</TH> <TH>Time</TH></TR> <TR> <TD>Comp Sci</TD> <TD>202</TD>
Can also apply differentstylesheets to produce differentforms of the same information, e.g.a display view and an editable form
![Page 34: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/34.jpg)
XML-01-34
Multiple Transformations
XMLDocument
HTMLDocument
XSLStylesheet
FormatterXML
Document
XSLStylesheet
Formatter
• So we could also do this...
Universitysubjectmatter
Generic“reports”subjectmatter
Web“browser”subjectmatter
![Page 35: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/35.jpg)
XML-01-35
Multiple Transformations
• Or in a more familiar representation…
HTML
University
Reports
Generic“reports”subjectmatter
Universitysubjectmatter
Web“browser”subjectmatter
![Page 36: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/36.jpg)
XML-01-36
Generic “Reports” Domain
• Same reasons for creating service domainscan justify intermediate steps in XML apps– division of responsibilities
(e.g. client / consultant)– consistency
(many reports, all use same stylesheet)– reuse
(many things need reports)– simplification
(two small steps easier than one)
![Page 37: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/37.jpg)
XML-01-37
Intermediate XML
UniversityXML
BrowserHTML
XSLStylesheet
FormatterReports
XML
XSLStylesheet
Formatter
• What does this intermediate XML look like?
Generic“reports”subjectmatter
![Page 38: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/38.jpg)
XML-01-38
Intermediate XML
<Report Title=“Semester Schedule”><Table Title=“Spring 2000”>
<HeaderRow><Column Name=“Days” Title=“Days”/><Column Name=“Times” Title=“Times”/><Column Name=“Department” Title=“Dept”/><Column Name=“CourseNum” Title=“Course No.”/><Column Name=“Course” Title=“Course Name”/>
</HeaderRow><Row>
<Cell Name=“Days” Value=“MWF”/><Cell Name=“Times” Value=“10-11 a.m.”/><Cell Name=“Department” Value=“Comp Sci”/><Cell Name=“CourseNum” Value=“202”/><Cell Name=“Course” Value=“Object-Oriented Analysis”/>
</Row>. . .
</Table></Report>
Look at the tags...
![Page 39: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/39.jpg)
XML-01-39
Intermediate XML
<Report Title=“Semester Schedule”><Table Title=“Spring 2000”>
<HeaderRow><Column Name=“Days” Title=“Days”/><Column Name=“Times” Title=“Times”/><Column Name=“Department” Title=“Dept”/><Column Name=“CourseNum” Title=“Course No.”/><Column Name=“Course” Title=“Course Name”/>
</HeaderRow><Row>
<Cell Name=“Days” Value=“MWF”/><Cell Name=“Times” Value=“10-11 a.m.”/><Cell Name=“Department” Value=“Comp Sci”/><Cell Name=“CourseNum” Value=“202”/><Cell Name=“Course” Value=“Object-Oriented Analysis”/>
</Row>. . .
</Table></Report>
…they’re objects in theReports service domain
![Page 40: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/40.jpg)
XML-01-40
Do an OOA Model
• So we should start figuring out anintermediate XML by doing a model of thatservice domain!
Report
Table
Bar Graph
Row Set
TableColumn
Pie Graph
Dataset
HeaderRow
Data Row
Start withan objectblitz
![Page 41: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/41.jpg)
XML-01-41
Reports Domain
• Define the Reports XML as an XML basedupon the Reports domain IM
![Page 42: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/42.jpg)
XML-01-42
App -> Reports Mapping
• Define the instances of the reports(populate the instances of the Reportsdomain)
• Map things in Reports to things in University
• These mappings can be formed as– XSL stylesheets– database entries– code
![Page 43: What About XML - xtUML](https://reader034.vdocuments.us/reader034/viewer/2022042405/625dc59a1ad3547c4e68ae04/html5/thumbnails/43.jpg)
XML-01-43
Commentary...
• While the rest of the world is struggling tofigure out how to organize an XML project,we’re SMUG enough toalready know the answer… Domains
andBridges!