SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
XML and Apache
 An overview


        Ted Leung

O’Reilly Open Source Convention
         July 26–30, 2004
Overview
• xml.apache.org      • ws.apache.org
   –   Xerces            –   XML-RPC
   –   Xalan             –   Axis
   –   FOP               –   WSIF
   –   Batik             –   JaxMe
   –   Xindice        • cocoon.apache.org
   –   Forrest           – Cocoon
   –   XML-Security      – Lenya (incubated)
   –   XML-Commons
   –   XMLBeans




                                               Ted Leung
Xerces-J
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<books xmlns=quot;http://sauria.com/schemas/apache-xml-book/booksquot;
 xmlns:tns=quot;http://sauria.com/schemas/apache-xml-book/booksquot;
 xmlns:xsi=quot;http://www.w3.org/2001/XMLSchema-instancequot;
 xsi:schemaLocation=
  quot;http://sauria.com/schemas/apache-xml-book/books
   http://www.sauria.com/schemas/apache-xml-book/books.xsdquot;
 version=quot;1.0quot;>
 <book>
  <title>Effective Java</title>
  <author>Joshua Bloch</author>
  <isbn>yyy-yyyyyyyyyy</isbn>
  <month>August</month>
  <year>2001</year>
  <publisher>Addison-Wesley</publisher>
  <address>New York, New York</address>
 </book>
</books>




                                                                 Ted Leung
Xerces-J
•   Provide API’s to the parts
     –   SAX
     –   DOM
     –   XNI
     –   XNI-based pull
•   Validation
     – DTDs
     – XML Schema Support
     – Relax NG support via Andy Clark’s Neko Tools for XNI
•   When would I use it?
     – Everywhere




                                                              Ted Leung
Xalan-J
• What does it do?
   – XSLT Processor
• Converts one kind of XML into another
   – Uses a stylesheet (XML document)
   – Stylesheet describes tree transformation
   – Declarative programming model
       • Based on pattern matching




                                                Ted Leung
Xalan-J
<?xml version=quot;1.0quot;?>                    <html>
<books>                                  <head>
<book>                                   <META http-equiv=quot;Content-Typequot;
 <title>Effective Java</title>           content=quot;text/html; charset=UTF-8quot;>
 <author>Joshua Bloch</author>           <title>Book Inventory</title>
 <isbn>yyy-yyyyyyyyyy</isbn>             </head>
 <month>August</month>                   <body>
 <year>2001</year>                       <em>Effective Java</em>
 <publisher>Addison-Wesley</publisher>   <br>
 <address>New York, New York</address>   <b>Joshua Bloch</b>
</book>                                  <br>
</books>                                   yyy-yyyyyyyyyy<br>
                                           August,

                                           2001<br>
                                           Addison-Wesley<br>
                                           New York, New York<br>
                                         <p></p>
                                         </body>
                                         </html>




                                                                               Ted Leung
Xalan-J
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<xsl:stylesheet version=quot;1.0quot;
 xmlns:xsl=quot;http://www.w3.org/1999/XSL/Transformquot;
 xmlns:books=quot;http://sauria.com/schemas/apache-xml-book/booksquot;
 exclude-result-prefixes=quot;booksquot;>
  <xsl:output method=quot;htmlquot; version=quot;4.0quot; encoding=quot;UTF-8quot;
     indent=quot;yesquot; omit-xml-declaration=quot;yesquot;/>
  <xsl:template match=quot;books:booksquot;>
   <html>
     <head><title>Book Inventory</title></head>
     <body>
       <xsl:apply-templates/>
     </body>
   </html>
  </xsl:template>
  <xsl:template match=quot;books:bookquot;>
    <xsl:apply-templates/>
   <p />
  </xsl:template>
  <xsl:template match=quot;books:titlequot;>
   <em><xsl:value-of select=quot;.quot;/></em><br />
  </xsl:template>
  …

                                                                 Ted Leung
Xalan-J
• TrAX API is part of JAXP
• XSLTC Compiler
• Extensions
   – EXSLT
   – Xalan specific
• When would I use it?
   – Convert XML to HTML
   – Convert XML to XML
       • WML
       • Vocabulary translation




                                  Ted Leung
FOP
• What does it do?
   – XSL Processor
   – Convert XML with XSL elements into non XML
     formats




                                                  Ted Leung
FOP – XSL Input
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<fo:root xmlns:fo=quot;http://www.w3.org/1999/XSL/Formatquot;>
<fo:layout-master-set>
 <fo:simple-page-master margin-right=quot;0.5inquot; margin-left=quot;0.5inquot;
    margin-bottom=quot;0.5inquot; margin-top=quot;0.5inquot; page-width=quot;8.5inquot;
    page-height=quot;11inquot; master-name=quot;book-pagequot;>
  <fo:region-body margin=quot;1inquot;/>
 </fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference=quot;book-pagequot;>
 <fo:flow flow-name=quot;xsl-region-bodyquot;>
  <fo:block>
  <fo:list-block provisional-label-separation=quot;3ptquot;
     provisional-distance-between-starts=quot;18ptquot;>
   <fo:list-item>
    <fo:list-item-label>
    <fo:block space-after.optimum=quot;15ptquot;>
     <fo:inline font-size=quot;14ptquot;>• Effective Java</fo:inline>
    </fo:block>
    </fo:list-item-label>




                                                                   Ted Leung
FOP – PDF output
    <fo:list-item-body>
    <fo:block space-after.optimum=quot;15ptquot;>
     <fo:inline font-weight=quot;boldquot;>Joshua Bloch</fo:inline>
     <fo:inline>yyy-yyyyyyyyyy</fo:inline>
     <fo:inline>August, </fo:inline>
     <fo:inline>2001</fo:inline>
     <fo:inline>Addison-Wesley</fo:inline>
     <fo:inline>New York, New York</fo:inline>
    </fo:block>
    </fo:list-item-body>
   </fo:list-item>
  </fo:list-block>
  </fo:block>
 </fo:flow>
</fo:page-sequence>
</fo:root>




                                                              Ted Leung
FOP
• Supported formats include
   – PDF
   – PostScript
   – RTF
• Font Handling
• Hyphenation
• When would I use it?
   – Any where you need a format that FOP can produce




                                                   Ted Leung
Batik
• What does it do?
   – Scalable Vector Graphics (SVG)
        • Vector drawing commands as XML
        • Declarative animation
        • Imperative animation (scripting)




                                             Ted Leung
Batik - SVG Input
 <?xml version=quot;1.0quot; standalone=quot;noquot;?>
 <!DOCTYPE svg PUBLIC quot;-//W3C//DTD SVG 20010904//ENquot;
  quot;http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtdquot;>
 <svg width=quot;5inquot; height=quot;3inquot; viewBox=quot;0 0 800 600quot;
    xmlns=quot;http://www.w3.org/2000/svgquot;
    xmlns:xlink=quot;http://www.w3.org/1999/xlinkquot;>
 <g id=quot;plainPathquot;>
  <path style=quot;stroke:black; fill:nonequot;
      d=quot;M 0 200
        C 100 100 200 0 300 100
        C 400 200 500 300 600 200
        C 700 100 800 100 800 100quot;/>
 </g>

 <g id=quot;labelledPathquot; transform=quot;translate(0,200)quot;>
  <path id=quot;followMequot; style=quot;stroke:blue; fill:nonequot;
      d=quot;M 0 200
        C 100 100 200 0 300 100
        C 400 200 500 300 600 200
        C 700 100 800 100 800 100quot;/>
  <text font-family=quot;Verdanaquot; font-size=quot;42.5quot; fill=quot;bluequot; >
   <textPath xlink:href=quot;#followMequot; startOffset=quot;40quot;>
   Just following my way along the path here
   </textPath>
  </text>
 </g>
 </svg>


                                                                Ted Leung
Batik SVG Output




                   Ted Leung
Batik
• Toolbox
   –   SVGGraphics2D
   –   JSVGCanvas
   –   Browser
   –   Image Transcoding
   –   Rasterizer
   –   Scripting
• When would I use it?
   – Graphical Output – Static or Dynamic
   – Flash-like user interfaces




                                            Ted Leung
Xindice
• What does it do?
   – Native XML Database
• XML:DB API
   – Collections of XML Documents
   – Searchable by XPath
   – XUpdate
• When would I use it?
   – You want to store XML directly
   – You need XPath query capability




                                       Ted Leung
XML-RPC
• What does it do?
   – Use XML to markup RPC’s
   – Deliver the XML via HTTP
   – Supports a fixed set of datatypes




                                         Ted Leung
XML-RPC
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<methodCall>
<methodName>createBook</methodName>
<params>
 <param><value><string>Effective Java</string></value></param>
 <param><value><string>Joshua Bloch</string></value></param>
 <param><value><string>yyy-yyyyyyyyyy</string></value></param>
 <param><value><string>August</string></value></param>
 <param><value><i4>2001</i4></value></param>
 <param><value><string>Addison-Wesley</string></value></param>
 <param><value><string>New York, New York</string></value></param>
</params>
</methodCall>




                                                                     Ted Leung
XML-RPC
• When would I use it?
   – You need to talk to another XML-RPC application
• For More:
   – http://www.xmlrpc.com




                                                   Ted Leung
Axis
• What does it do?
   – SOAP
       • The standardized extensible XML-RPC
   – WSDL
       • A way to describe SOAP services




                                               Ted Leung
Axis
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<soapenv:Envelope
xmlns:soapenv=quot;http://schemas.xmlsoap.org/soap/envelope/quot;
xmlns:xsd=quot;http://www.w3.org/2001/XMLSchemaquot;
xmlns:xsi=quot;http://www.w3.org/2001/XMLSchema-instancequot;>
<soapenv:Body>
 <book xmlns=quot;http://sauria.com/schemas/apache-xml-book/bookquot;>
  <author>Joshua Bloch</author>
  <title>Effective Java</title>
  <isbn>yyy-yyyyyyyyyy</isbn>
  <month>August</month>
  <year>2001</year>
  <publisher>Addison-Wesley</publisher>
  <address>New York, New York</address>
 </book>
</soapenv:Body>
</soapenv:Envelope>




                                                                 Ted Leung
Axis
• JAX-RPC programming model (JSR-101)
• WSDL tools
   – WSDL2Java
   – Java2WSDL
• TCPMon




                                        Ted Leung
Axis




       Ted Leung
Axis
• When would I use it?
   – You need a SOAP based web service
   – You need to integrate systems
       • You need to do it over the Internet
   – You need to talk to .NET




                                               Ted Leung
XML-Security
• What does it do?
   – XML Digital Signature
   – XML Encryption




                             Ted Leung
XML-Security
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<book version=quot;1.0quot;
xmlns=quot;http://sauria.com/schemas/apache-xml-book/bookquot;
xmlns:xsi=quot;http://www.w3.org/2001/XMLSchema-instancequot;
xsi:schemaLocation=quot;http://sauria.com/schemas/apache-xml-book/book
    http://www.sauria.com/schemas/apache-xml-book/book.xsdquot;>
<title>Apache XML Tools</title>
<xenc:EncryptedData Type=quot;http://www.w3.org/2001/04/xmlenc#Elementquot;
 xmlns:xenc=quot;http://www.w3.org/2001/04/xmlenc#quot;>
 <xenc:EncryptionMethod
  Algorithm=quot;http://www.w3.org/2001/04/xmlenc#aes256-cbcquot;
  xmlns:xenc=quot;http://www.w3.org/2001/04/xmlenc#quot;/>
 <xenc:CipherData xmlns:xenc=quot;http://www.w3.org/2001/04/xmlenc#quot;>
  <xenc:CipherValue xmlns:xenc=quot;http://www.w3.org/2001/04/xmlenc#quot;>
Pyn0AqcaMaCg5Cv1wy5sDe0I1aox/JzvupzyXcS0AGilXaF4SCbBaiBVS33KxGS8P
  </xenc:CipherValue>
 </xenc:CipherData>
</xenc:EncryptedData>
<isbn>xxx-xxxxxxxxxx</isbn>
<month>October</month>
<year>2003</year>
<publisher>John Wiley and Sons</publisher>
<address>New York, New York</address>
</book>


                                                                      Ted Leung
XML-Security
• When would I use it?
   – When you need digital signatures
   – When you need encryption
   – XML based workflows




                                        Ted Leung
Cocoon
• What does it do?
   –   Web publishing framework
   –   Based on XML
   –   Not an implementation of a standard
   –   Relies on a pipeline architecture




                                             Ted Leung
Cocoon
                                     Sitemap
 HTTP
Request

Matcher

Matcher    Generator   Transformer       Serializer
                         Pipeline
Matcher




                                                 Ted Leung
Cocoon
• When would I use it?




                         Ted Leung
Lenya (incubated)
•   What does it do?
     – Content Management System for Cocoon
         •   Revision Control
         •   Scheduling
         •   Search Engine
         •   Staging areas
         •   Workflow
         •   Browser based WSIWYG Editors
•   When would I use it?
     – When you are developing a large site in Cocoon




                                                        Ted Leung
Forrest
• What does it do?
   – Documentation platform based on Cocoon
• Content Templates
   – FAQs, Changelogs, HOWTOs, etc.
• Skins
• Forrestbot
• When would I use it?
   – Used in many xml.apache.org projects




                                              Ted Leung
XML Commons
• What does it do?
   – Reusable components
      • SAX and DOM
      • Which
      • Resolver
          – OASIS XML Catalogs
          – OASIS TR9401 Catalogs
          – XCatalog

• When would I use it?




                                    Ted Leung
WSIF
•   What does it do?
     – Web Services Invocation Framework
     – Allows you to invoke services via a WSDL document
         • Supports
              –   Java classes
              –   EJB
              –   JMS
              –   JCA

•   When would I use it?
     – If you need a uniform interface to services implemented
       using different technologies
     – You need isolation from the services API’s




                                                             Ted Leung
XMLBeans
•   What does it do?
     – XML instance <-> Java instances
         • Based on XML Schema mapping
         • Populate JavaBeans from XML
         • Generate XML from JavaBeans
     – Cursor based navigation of XML
     – Select XML based using XPath
•   When would I use it?
     – You need to map between XML and Java




                                              Ted Leung
JaxMe
• What does it do?
   – JAXB implementation
       • Convert XML instances <-> Java Bean instances
   – Store JavaBeans into a database
   – Query that database
• When would I use it?
   – You need to use JAXB




                                                         Ted Leung
jakarta.apache.org
• Betwixt
   – XML introspection mechanism for mapping beans to
     XML
• Digester
   – Rule based approach to “digesting” XML
     configuration files
• JXPath
   – Use XPath to traverse graphs of Java objects




                                                    Ted Leung
Book
• Professional XML
  Development with
  Apache Tools
   – Wrox




                     Ted Leung
Questions:
•   http://xml.apache.org
•   http://cocoon.apache.org
•   http://ws.apache.org
•   http://jakarta.apache.org

• twl@apache.org
• http://www.sauria.com/blog




                                Ted Leung
OSCON 2004: XML and Apache

Weitere ähnliche Inhalte

Andere mochten auch

Rohit maitri dhrumil_namrata
Rohit maitri dhrumil_namrataRohit maitri dhrumil_namrata
Rohit maitri dhrumil_namrataDhruv Seth
 
TurboGears2 Pluggable Applications
TurboGears2 Pluggable ApplicationsTurboGears2 Pluggable Applications
TurboGears2 Pluggable ApplicationsAlessandro Molina
 
Fort Mc Murray Hotel Group
Fort Mc Murray Hotel GroupFort Mc Murray Hotel Group
Fort Mc Murray Hotel Groupsaronyk
 
Ways to enhance your social media for nonprofits
Ways to enhance your social media for nonprofitsWays to enhance your social media for nonprofits
Ways to enhance your social media for nonprofitsSuna Gurol
 
Insurance 2 written
Insurance 2 writtenInsurance 2 written
Insurance 2 writtenFAROUQ
 
Developing secure software using Aspect oriented programming
Developing secure software using Aspect oriented programmingDeveloping secure software using Aspect oriented programming
Developing secure software using Aspect oriented programmingIOSR Journals
 

Andere mochten auch (6)

Rohit maitri dhrumil_namrata
Rohit maitri dhrumil_namrataRohit maitri dhrumil_namrata
Rohit maitri dhrumil_namrata
 
TurboGears2 Pluggable Applications
TurboGears2 Pluggable ApplicationsTurboGears2 Pluggable Applications
TurboGears2 Pluggable Applications
 
Fort Mc Murray Hotel Group
Fort Mc Murray Hotel GroupFort Mc Murray Hotel Group
Fort Mc Murray Hotel Group
 
Ways to enhance your social media for nonprofits
Ways to enhance your social media for nonprofitsWays to enhance your social media for nonprofits
Ways to enhance your social media for nonprofits
 
Insurance 2 written
Insurance 2 writtenInsurance 2 written
Insurance 2 written
 
Developing secure software using Aspect oriented programming
Developing secure software using Aspect oriented programmingDeveloping secure software using Aspect oriented programming
Developing secure software using Aspect oriented programming
 

Ähnlich wie OSCON 2004: XML and Apache

XML processing with perl
XML processing with perlXML processing with perl
XML processing with perlJoe Jiang
 
JWU Guest Talk: JavaScript and AJAX
JWU Guest Talk: JavaScript and AJAXJWU Guest Talk: JavaScript and AJAX
JWU Guest Talk: JavaScript and AJAXHilary Mason
 
Douglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation JsonsagaDouglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation JsonsagaAjax Experience 2009
 
The JSON Saga
The JSON SagaThe JSON Saga
The JSON Sagakaven yan
 
Jsonsaga
JsonsagaJsonsaga
Jsonsaganohmad
 
Anvita Dynamic Fontson Web Feb2001
Anvita Dynamic Fontson Web Feb2001Anvita Dynamic Fontson Web Feb2001
Anvita Dynamic Fontson Web Feb2001guest6e7a1b1
 
Introduction To Xml
Introduction To XmlIntroduction To Xml
Introduction To Xmlbdebruin
 
XML Training Presentation
XML Training PresentationXML Training Presentation
XML Training PresentationSarah Corney
 
Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8Tatsuhiko Miyagawa
 
Lca2009 Video A11y
Lca2009 Video A11yLca2009 Video A11y
Lca2009 Video A11yguesta3d158
 
LAMP_TRAINING_SESSION_3
LAMP_TRAINING_SESSION_3LAMP_TRAINING_SESSION_3
LAMP_TRAINING_SESSION_3umapst
 
An Introduction to Solr
An Introduction to SolrAn Introduction to Solr
An Introduction to Solrtomhill
 
Transforming Xml Data Into Html
Transforming Xml Data Into HtmlTransforming Xml Data Into Html
Transforming Xml Data Into HtmlKarthikeyan Mkr
 
XML and Web Services with PHP5 and PEAR
XML and Web Services with PHP5 and PEARXML and Web Services with PHP5 and PEAR
XML and Web Services with PHP5 and PEARStephan Schmidt
 

Ähnlich wie OSCON 2004: XML and Apache (20)

XML processing with perl
XML processing with perlXML processing with perl
XML processing with perl
 
JWU Guest Talk: JavaScript and AJAX
JWU Guest Talk: JavaScript and AJAXJWU Guest Talk: JavaScript and AJAX
JWU Guest Talk: JavaScript and AJAX
 
Douglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation JsonsagaDouglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation Jsonsaga
 
The JSON Saga
The JSON SagaThe JSON Saga
The JSON Saga
 
Jsonsaga
JsonsagaJsonsaga
Jsonsaga
 
XML and XSLT
XML and XSLTXML and XSLT
XML and XSLT
 
Anvita Dynamic Fontson Web Feb2001
Anvita Dynamic Fontson Web Feb2001Anvita Dynamic Fontson Web Feb2001
Anvita Dynamic Fontson Web Feb2001
 
Xml Demystified
Xml DemystifiedXml Demystified
Xml Demystified
 
Introduction To Xml
Introduction To XmlIntroduction To Xml
Introduction To Xml
 
XML Training Presentation
XML Training PresentationXML Training Presentation
XML Training Presentation
 
Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8
 
XMLT
XMLTXMLT
XMLT
 
Lca2009 Video A11y
Lca2009 Video A11yLca2009 Video A11y
Lca2009 Video A11y
 
LAMP_TRAINING_SESSION_3
LAMP_TRAINING_SESSION_3LAMP_TRAINING_SESSION_3
LAMP_TRAINING_SESSION_3
 
An Introduction to Solr
An Introduction to SolrAn Introduction to Solr
An Introduction to Solr
 
Introduction to XML
Introduction to XMLIntroduction to XML
Introduction to XML
 
Transforming Xml Data Into Html
Transforming Xml Data Into HtmlTransforming Xml Data Into Html
Transforming Xml Data Into Html
 
Introduction to XML
Introduction to XMLIntroduction to XML
Introduction to XML
 
XML and Web Services with PHP5 and PEAR
XML and Web Services with PHP5 and PEARXML and Web Services with PHP5 and PEAR
XML and Web Services with PHP5 and PEAR
 
Xml Zoe
Xml ZoeXml Zoe
Xml Zoe
 

Mehr von Ted Leung

DjangoCon 2009 Keynote
DjangoCon 2009 KeynoteDjangoCon 2009 Keynote
DjangoCon 2009 KeynoteTed Leung
 
A Survey of Concurrency Constructs
A Survey of Concurrency ConstructsA Survey of Concurrency Constructs
A Survey of Concurrency ConstructsTed Leung
 
Seeding The Cloud
Seeding The CloudSeeding The Cloud
Seeding The CloudTed Leung
 
Programming Languages For The Cloud
Programming Languages For The CloudProgramming Languages For The Cloud
Programming Languages For The CloudTed Leung
 
MySQL User Conference 2009: Python and MySQL
MySQL User Conference 2009: Python and MySQLMySQL User Conference 2009: Python and MySQL
MySQL User Conference 2009: Python and MySQLTed Leung
 
PyCon US 2009: Challenges and Opportunities for Python
PyCon US 2009: Challenges and Opportunities for PythonPyCon US 2009: Challenges and Opportunities for Python
PyCon US 2009: Challenges and Opportunities for PythonTed Leung
 
Northwest Python Day 2009
Northwest Python Day 2009Northwest Python Day 2009
Northwest Python Day 2009Ted Leung
 
PyCon UK 2008: Challenges for Dynamic Languages
PyCon UK 2008: Challenges for Dynamic LanguagesPyCon UK 2008: Challenges for Dynamic Languages
PyCon UK 2008: Challenges for Dynamic LanguagesTed Leung
 
OSCON 2008: Open Source Community Antipatterns
OSCON 2008: Open Source Community AntipatternsOSCON 2008: Open Source Community Antipatterns
OSCON 2008: Open Source Community AntipatternsTed Leung
 
OSCON 2007: Open Design, Not By Committee
OSCON 2007: Open Design, Not By CommitteeOSCON 2007: Open Design, Not By Committee
OSCON 2007: Open Design, Not By CommitteeTed Leung
 
Ignite The Web 2007
Ignite The Web 2007Ignite The Web 2007
Ignite The Web 2007Ted Leung
 
ApacheCon US 2007: Open Source Community Antipatterns
ApacheCon US 2007:  Open Source Community AntipatternsApacheCon US 2007:  Open Source Community Antipatterns
ApacheCon US 2007: Open Source Community AntipatternsTed Leung
 
OSCON 2005: Build Your Own Chandler Parcel
OSCON 2005: Build Your Own Chandler ParcelOSCON 2005: Build Your Own Chandler Parcel
OSCON 2005: Build Your Own Chandler ParcelTed Leung
 
PyCon 2005 PyBlosxom
PyCon 2005 PyBlosxomPyCon 2005 PyBlosxom
PyCon 2005 PyBlosxomTed Leung
 
SeaJUG March 2004 - Groovy
SeaJUG March 2004 - GroovySeaJUG March 2004 - Groovy
SeaJUG March 2004 - GroovyTed Leung
 
OSCON 2004: A Developer's Tour of Chandler
OSCON 2004: A Developer's Tour of ChandlerOSCON 2004: A Developer's Tour of Chandler
OSCON 2004: A Developer's Tour of ChandlerTed Leung
 
SeaJUG Dec 2001: Aspect-Oriented Programming with AspectJ
SeaJUG Dec 2001: Aspect-Oriented Programming with AspectJSeaJUG Dec 2001: Aspect-Oriented Programming with AspectJ
SeaJUG Dec 2001: Aspect-Oriented Programming with AspectJTed Leung
 
IQPC Canada XML 2001: How to develop Syntax and XML Schema
IQPC Canada XML 2001: How to develop Syntax and XML SchemaIQPC Canada XML 2001: How to develop Syntax and XML Schema
IQPC Canada XML 2001: How to develop Syntax and XML SchemaTed Leung
 
IQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic Communication
IQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic CommunicationIQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic Communication
IQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic CommunicationTed Leung
 
ApacheCon 2000 Everything you ever wanted to know about XML Parsing
ApacheCon 2000 Everything you ever wanted to know about XML ParsingApacheCon 2000 Everything you ever wanted to know about XML Parsing
ApacheCon 2000 Everything you ever wanted to know about XML ParsingTed Leung
 

Mehr von Ted Leung (20)

DjangoCon 2009 Keynote
DjangoCon 2009 KeynoteDjangoCon 2009 Keynote
DjangoCon 2009 Keynote
 
A Survey of Concurrency Constructs
A Survey of Concurrency ConstructsA Survey of Concurrency Constructs
A Survey of Concurrency Constructs
 
Seeding The Cloud
Seeding The CloudSeeding The Cloud
Seeding The Cloud
 
Programming Languages For The Cloud
Programming Languages For The CloudProgramming Languages For The Cloud
Programming Languages For The Cloud
 
MySQL User Conference 2009: Python and MySQL
MySQL User Conference 2009: Python and MySQLMySQL User Conference 2009: Python and MySQL
MySQL User Conference 2009: Python and MySQL
 
PyCon US 2009: Challenges and Opportunities for Python
PyCon US 2009: Challenges and Opportunities for PythonPyCon US 2009: Challenges and Opportunities for Python
PyCon US 2009: Challenges and Opportunities for Python
 
Northwest Python Day 2009
Northwest Python Day 2009Northwest Python Day 2009
Northwest Python Day 2009
 
PyCon UK 2008: Challenges for Dynamic Languages
PyCon UK 2008: Challenges for Dynamic LanguagesPyCon UK 2008: Challenges for Dynamic Languages
PyCon UK 2008: Challenges for Dynamic Languages
 
OSCON 2008: Open Source Community Antipatterns
OSCON 2008: Open Source Community AntipatternsOSCON 2008: Open Source Community Antipatterns
OSCON 2008: Open Source Community Antipatterns
 
OSCON 2007: Open Design, Not By Committee
OSCON 2007: Open Design, Not By CommitteeOSCON 2007: Open Design, Not By Committee
OSCON 2007: Open Design, Not By Committee
 
Ignite The Web 2007
Ignite The Web 2007Ignite The Web 2007
Ignite The Web 2007
 
ApacheCon US 2007: Open Source Community Antipatterns
ApacheCon US 2007:  Open Source Community AntipatternsApacheCon US 2007:  Open Source Community Antipatterns
ApacheCon US 2007: Open Source Community Antipatterns
 
OSCON 2005: Build Your Own Chandler Parcel
OSCON 2005: Build Your Own Chandler ParcelOSCON 2005: Build Your Own Chandler Parcel
OSCON 2005: Build Your Own Chandler Parcel
 
PyCon 2005 PyBlosxom
PyCon 2005 PyBlosxomPyCon 2005 PyBlosxom
PyCon 2005 PyBlosxom
 
SeaJUG March 2004 - Groovy
SeaJUG March 2004 - GroovySeaJUG March 2004 - Groovy
SeaJUG March 2004 - Groovy
 
OSCON 2004: A Developer's Tour of Chandler
OSCON 2004: A Developer's Tour of ChandlerOSCON 2004: A Developer's Tour of Chandler
OSCON 2004: A Developer's Tour of Chandler
 
SeaJUG Dec 2001: Aspect-Oriented Programming with AspectJ
SeaJUG Dec 2001: Aspect-Oriented Programming with AspectJSeaJUG Dec 2001: Aspect-Oriented Programming with AspectJ
SeaJUG Dec 2001: Aspect-Oriented Programming with AspectJ
 
IQPC Canada XML 2001: How to develop Syntax and XML Schema
IQPC Canada XML 2001: How to develop Syntax and XML SchemaIQPC Canada XML 2001: How to develop Syntax and XML Schema
IQPC Canada XML 2001: How to develop Syntax and XML Schema
 
IQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic Communication
IQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic CommunicationIQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic Communication
IQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic Communication
 
ApacheCon 2000 Everything you ever wanted to know about XML Parsing
ApacheCon 2000 Everything you ever wanted to know about XML ParsingApacheCon 2000 Everything you ever wanted to know about XML Parsing
ApacheCon 2000 Everything you ever wanted to know about XML Parsing
 

Kürzlich hochgeladen

Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 

Kürzlich hochgeladen (20)

Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 

OSCON 2004: XML and Apache

  • 1. XML and Apache An overview Ted Leung O’Reilly Open Source Convention July 26–30, 2004
  • 2. Overview • xml.apache.org • ws.apache.org – Xerces – XML-RPC – Xalan – Axis – FOP – WSIF – Batik – JaxMe – Xindice • cocoon.apache.org – Forrest – Cocoon – XML-Security – Lenya (incubated) – XML-Commons – XMLBeans Ted Leung
  • 3. Xerces-J <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <books xmlns=quot;http://sauria.com/schemas/apache-xml-book/booksquot; xmlns:tns=quot;http://sauria.com/schemas/apache-xml-book/booksquot; xmlns:xsi=quot;http://www.w3.org/2001/XMLSchema-instancequot; xsi:schemaLocation= quot;http://sauria.com/schemas/apache-xml-book/books http://www.sauria.com/schemas/apache-xml-book/books.xsdquot; version=quot;1.0quot;> <book> <title>Effective Java</title> <author>Joshua Bloch</author> <isbn>yyy-yyyyyyyyyy</isbn> <month>August</month> <year>2001</year> <publisher>Addison-Wesley</publisher> <address>New York, New York</address> </book> </books> Ted Leung
  • 4. Xerces-J • Provide API’s to the parts – SAX – DOM – XNI – XNI-based pull • Validation – DTDs – XML Schema Support – Relax NG support via Andy Clark’s Neko Tools for XNI • When would I use it? – Everywhere Ted Leung
  • 5. Xalan-J • What does it do? – XSLT Processor • Converts one kind of XML into another – Uses a stylesheet (XML document) – Stylesheet describes tree transformation – Declarative programming model • Based on pattern matching Ted Leung
  • 6. Xalan-J <?xml version=quot;1.0quot;?> <html> <books> <head> <book> <META http-equiv=quot;Content-Typequot; <title>Effective Java</title> content=quot;text/html; charset=UTF-8quot;> <author>Joshua Bloch</author> <title>Book Inventory</title> <isbn>yyy-yyyyyyyyyy</isbn> </head> <month>August</month> <body> <year>2001</year> <em>Effective Java</em> <publisher>Addison-Wesley</publisher> <br> <address>New York, New York</address> <b>Joshua Bloch</b> </book> <br> </books> yyy-yyyyyyyyyy<br> August, 2001<br> Addison-Wesley<br> New York, New York<br> <p></p> </body> </html> Ted Leung
  • 7. Xalan-J <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <xsl:stylesheet version=quot;1.0quot; xmlns:xsl=quot;http://www.w3.org/1999/XSL/Transformquot; xmlns:books=quot;http://sauria.com/schemas/apache-xml-book/booksquot; exclude-result-prefixes=quot;booksquot;> <xsl:output method=quot;htmlquot; version=quot;4.0quot; encoding=quot;UTF-8quot; indent=quot;yesquot; omit-xml-declaration=quot;yesquot;/> <xsl:template match=quot;books:booksquot;> <html> <head><title>Book Inventory</title></head> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match=quot;books:bookquot;> <xsl:apply-templates/> <p /> </xsl:template> <xsl:template match=quot;books:titlequot;> <em><xsl:value-of select=quot;.quot;/></em><br /> </xsl:template> … Ted Leung
  • 8. Xalan-J • TrAX API is part of JAXP • XSLTC Compiler • Extensions – EXSLT – Xalan specific • When would I use it? – Convert XML to HTML – Convert XML to XML • WML • Vocabulary translation Ted Leung
  • 9. FOP • What does it do? – XSL Processor – Convert XML with XSL elements into non XML formats Ted Leung
  • 10. FOP – XSL Input <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <fo:root xmlns:fo=quot;http://www.w3.org/1999/XSL/Formatquot;> <fo:layout-master-set> <fo:simple-page-master margin-right=quot;0.5inquot; margin-left=quot;0.5inquot; margin-bottom=quot;0.5inquot; margin-top=quot;0.5inquot; page-width=quot;8.5inquot; page-height=quot;11inquot; master-name=quot;book-pagequot;> <fo:region-body margin=quot;1inquot;/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference=quot;book-pagequot;> <fo:flow flow-name=quot;xsl-region-bodyquot;> <fo:block> <fo:list-block provisional-label-separation=quot;3ptquot; provisional-distance-between-starts=quot;18ptquot;> <fo:list-item> <fo:list-item-label> <fo:block space-after.optimum=quot;15ptquot;> <fo:inline font-size=quot;14ptquot;>• Effective Java</fo:inline> </fo:block> </fo:list-item-label> Ted Leung
  • 11. FOP – PDF output <fo:list-item-body> <fo:block space-after.optimum=quot;15ptquot;> <fo:inline font-weight=quot;boldquot;>Joshua Bloch</fo:inline> <fo:inline>yyy-yyyyyyyyyy</fo:inline> <fo:inline>August, </fo:inline> <fo:inline>2001</fo:inline> <fo:inline>Addison-Wesley</fo:inline> <fo:inline>New York, New York</fo:inline> </fo:block> </fo:list-item-body> </fo:list-item> </fo:list-block> </fo:block> </fo:flow> </fo:page-sequence> </fo:root> Ted Leung
  • 12. FOP • Supported formats include – PDF – PostScript – RTF • Font Handling • Hyphenation • When would I use it? – Any where you need a format that FOP can produce Ted Leung
  • 13. Batik • What does it do? – Scalable Vector Graphics (SVG) • Vector drawing commands as XML • Declarative animation • Imperative animation (scripting) Ted Leung
  • 14. Batik - SVG Input <?xml version=quot;1.0quot; standalone=quot;noquot;?> <!DOCTYPE svg PUBLIC quot;-//W3C//DTD SVG 20010904//ENquot; quot;http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtdquot;> <svg width=quot;5inquot; height=quot;3inquot; viewBox=quot;0 0 800 600quot; xmlns=quot;http://www.w3.org/2000/svgquot; xmlns:xlink=quot;http://www.w3.org/1999/xlinkquot;> <g id=quot;plainPathquot;> <path style=quot;stroke:black; fill:nonequot; d=quot;M 0 200 C 100 100 200 0 300 100 C 400 200 500 300 600 200 C 700 100 800 100 800 100quot;/> </g> <g id=quot;labelledPathquot; transform=quot;translate(0,200)quot;> <path id=quot;followMequot; style=quot;stroke:blue; fill:nonequot; d=quot;M 0 200 C 100 100 200 0 300 100 C 400 200 500 300 600 200 C 700 100 800 100 800 100quot;/> <text font-family=quot;Verdanaquot; font-size=quot;42.5quot; fill=quot;bluequot; > <textPath xlink:href=quot;#followMequot; startOffset=quot;40quot;> Just following my way along the path here </textPath> </text> </g> </svg> Ted Leung
  • 15. Batik SVG Output Ted Leung
  • 16. Batik • Toolbox – SVGGraphics2D – JSVGCanvas – Browser – Image Transcoding – Rasterizer – Scripting • When would I use it? – Graphical Output – Static or Dynamic – Flash-like user interfaces Ted Leung
  • 17. Xindice • What does it do? – Native XML Database • XML:DB API – Collections of XML Documents – Searchable by XPath – XUpdate • When would I use it? – You want to store XML directly – You need XPath query capability Ted Leung
  • 18. XML-RPC • What does it do? – Use XML to markup RPC’s – Deliver the XML via HTTP – Supports a fixed set of datatypes Ted Leung
  • 19. XML-RPC <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <methodCall> <methodName>createBook</methodName> <params> <param><value><string>Effective Java</string></value></param> <param><value><string>Joshua Bloch</string></value></param> <param><value><string>yyy-yyyyyyyyyy</string></value></param> <param><value><string>August</string></value></param> <param><value><i4>2001</i4></value></param> <param><value><string>Addison-Wesley</string></value></param> <param><value><string>New York, New York</string></value></param> </params> </methodCall> Ted Leung
  • 20. XML-RPC • When would I use it? – You need to talk to another XML-RPC application • For More: – http://www.xmlrpc.com Ted Leung
  • 21. Axis • What does it do? – SOAP • The standardized extensible XML-RPC – WSDL • A way to describe SOAP services Ted Leung
  • 22. Axis <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <soapenv:Envelope xmlns:soapenv=quot;http://schemas.xmlsoap.org/soap/envelope/quot; xmlns:xsd=quot;http://www.w3.org/2001/XMLSchemaquot; xmlns:xsi=quot;http://www.w3.org/2001/XMLSchema-instancequot;> <soapenv:Body> <book xmlns=quot;http://sauria.com/schemas/apache-xml-book/bookquot;> <author>Joshua Bloch</author> <title>Effective Java</title> <isbn>yyy-yyyyyyyyyy</isbn> <month>August</month> <year>2001</year> <publisher>Addison-Wesley</publisher> <address>New York, New York</address> </book> </soapenv:Body> </soapenv:Envelope> Ted Leung
  • 23. Axis • JAX-RPC programming model (JSR-101) • WSDL tools – WSDL2Java – Java2WSDL • TCPMon Ted Leung
  • 24. Axis Ted Leung
  • 25. Axis • When would I use it? – You need a SOAP based web service – You need to integrate systems • You need to do it over the Internet – You need to talk to .NET Ted Leung
  • 26. XML-Security • What does it do? – XML Digital Signature – XML Encryption Ted Leung
  • 27. XML-Security <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <book version=quot;1.0quot; xmlns=quot;http://sauria.com/schemas/apache-xml-book/bookquot; xmlns:xsi=quot;http://www.w3.org/2001/XMLSchema-instancequot; xsi:schemaLocation=quot;http://sauria.com/schemas/apache-xml-book/book http://www.sauria.com/schemas/apache-xml-book/book.xsdquot;> <title>Apache XML Tools</title> <xenc:EncryptedData Type=quot;http://www.w3.org/2001/04/xmlenc#Elementquot; xmlns:xenc=quot;http://www.w3.org/2001/04/xmlenc#quot;> <xenc:EncryptionMethod Algorithm=quot;http://www.w3.org/2001/04/xmlenc#aes256-cbcquot; xmlns:xenc=quot;http://www.w3.org/2001/04/xmlenc#quot;/> <xenc:CipherData xmlns:xenc=quot;http://www.w3.org/2001/04/xmlenc#quot;> <xenc:CipherValue xmlns:xenc=quot;http://www.w3.org/2001/04/xmlenc#quot;> Pyn0AqcaMaCg5Cv1wy5sDe0I1aox/JzvupzyXcS0AGilXaF4SCbBaiBVS33KxGS8P </xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedData> <isbn>xxx-xxxxxxxxxx</isbn> <month>October</month> <year>2003</year> <publisher>John Wiley and Sons</publisher> <address>New York, New York</address> </book> Ted Leung
  • 28. XML-Security • When would I use it? – When you need digital signatures – When you need encryption – XML based workflows Ted Leung
  • 29. Cocoon • What does it do? – Web publishing framework – Based on XML – Not an implementation of a standard – Relies on a pipeline architecture Ted Leung
  • 30. Cocoon Sitemap HTTP Request Matcher Matcher Generator Transformer Serializer Pipeline Matcher Ted Leung
  • 31. Cocoon • When would I use it? Ted Leung
  • 32. Lenya (incubated) • What does it do? – Content Management System for Cocoon • Revision Control • Scheduling • Search Engine • Staging areas • Workflow • Browser based WSIWYG Editors • When would I use it? – When you are developing a large site in Cocoon Ted Leung
  • 33. Forrest • What does it do? – Documentation platform based on Cocoon • Content Templates – FAQs, Changelogs, HOWTOs, etc. • Skins • Forrestbot • When would I use it? – Used in many xml.apache.org projects Ted Leung
  • 34. XML Commons • What does it do? – Reusable components • SAX and DOM • Which • Resolver – OASIS XML Catalogs – OASIS TR9401 Catalogs – XCatalog • When would I use it? Ted Leung
  • 35. WSIF • What does it do? – Web Services Invocation Framework – Allows you to invoke services via a WSDL document • Supports – Java classes – EJB – JMS – JCA • When would I use it? – If you need a uniform interface to services implemented using different technologies – You need isolation from the services API’s Ted Leung
  • 36. XMLBeans • What does it do? – XML instance <-> Java instances • Based on XML Schema mapping • Populate JavaBeans from XML • Generate XML from JavaBeans – Cursor based navigation of XML – Select XML based using XPath • When would I use it? – You need to map between XML and Java Ted Leung
  • 37. JaxMe • What does it do? – JAXB implementation • Convert XML instances <-> Java Bean instances – Store JavaBeans into a database – Query that database • When would I use it? – You need to use JAXB Ted Leung
  • 38. jakarta.apache.org • Betwixt – XML introspection mechanism for mapping beans to XML • Digester – Rule based approach to “digesting” XML configuration files • JXPath – Use XPath to traverse graphs of Java objects Ted Leung
  • 39. Book • Professional XML Development with Apache Tools – Wrox Ted Leung
  • 40. Questions: • http://xml.apache.org • http://cocoon.apache.org • http://ws.apache.org • http://jakarta.apache.org • twl@apache.org • http://www.sauria.com/blog Ted Leung