SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
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

Contenu connexe

En vedette

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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Plus de 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
 

Plus de 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
 

Dernier

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Dernier (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

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