MSXML InDepth Features Current And Future Charlie Heinemann

  • Slides: 33
Download presentation
MSXML In-Depth Features: Current And Future Charlie Heinemann Program Manager XML Core Services Microsoft

MSXML In-Depth Features: Current And Future Charlie Heinemann Program Manager XML Core Services Microsoft Corporation 9 -326

MSXML in 2000 l What’s available today? MSXML in Windows 2000 l What’s available

MSXML in 2000 l What’s available today? MSXML in Windows 2000 l What’s available tomorrow? MSXML 2 in SQL Server 2000 l What’s on the horizon? MSXML 3 on the Web

MSXML in Windows 2000 l l l l l XML 1. 0 Namespace 1.

MSXML in Windows 2000 l l l l l XML 1. 0 Namespace 1. 0 DOM 1. 0 (Document Object Model) Schema (Validation) XSL (Transformations) XSL Pattern (Querying) XMLHTTP (Posting and Getting XML) XML Data Source Object IE 5 XML Support

MSXML in Production l Microsoft. com Ø Ø Ø Document Management Document Interchange 200,

MSXML in Production l Microsoft. com Ø Ø Ø Document Management Document Interchange 200, 000 – 2 million hits/day

MSXML 2: Performance l l Advanced XML Interfaces In-line Schemas General Performance Enhancements Improved

MSXML 2: Performance l l Advanced XML Interfaces In-line Schemas General Performance Enhancements Improved Scalability

Advanced XML API’s l XSL Interfaces Ø Ø l l XSLTemplate Interface XSLProcessor Interface

Advanced XML API’s l XSL Interfaces Ø Ø l l XSLTemplate Interface XSLProcessor Interface DOMSelection Interface Schema. Collection Interface

XSL Interfaces l l l Passing parameters to stylesheets Passing objects to stylesheets Caching

XSL Interfaces l l l Passing parameters to stylesheets Passing objects to stylesheets Caching stylesheets

Demo Part 1 l l l XSLT Transform Passing Parameters Passing Objects

Demo Part 1 l l l XSLT Transform Passing Parameters Passing Objects

XSL Interfaces: Passing Parameters xslprocessor. add. Parameter(“color”, “red”). . . <xsl: param name=“color”/> <xsl:

XSL Interfaces: Passing Parameters xslprocessor. add. Parameter(“color”, “red”). . . <xsl: param name=“color”/> <xsl: template name=“Body. Template”> <tr style="color: {$color}"> … </tr> </xsl: template>

XSL Interfaces: Passing Objects my. Obj. number. Value =. 15 xslproc. add. Object(my. Obj,

XSL Interfaces: Passing Objects my. Obj. number. Value =. 15 xslproc. add. Object(my. Obj, "urn: my-percent-object") … <xsl: stylesheet xmlns: per. Obj=“urn: my-percent-object” …> <xsl: template match="price"> <xsl: value-of select=". "/> @ <xsl: value-of select="per. Obj: get-percent()"/> discount </xsl: template>

DOMSelection Interface l Querying the DOM using Xpath xmldoc. set. Property(“Selection. Language”, “XPath”) domsel

DOMSelection Interface l Querying the DOM using Xpath xmldoc. set. Property(“Selection. Language”, “XPath”) domsel = xmldoc. select. Nodes(“//child: : *”) l Returns an DOMSelection Object Inherits from IXMLDOMNode. List Ø Added functionality for managing result sets returned from a query Ø l Caching queries Compile the XPath expression once Ø Programmatically set multiple contexts Ø

Schema. Collection Interface l l l Caching schemas to improve performance Validating XML against

Schema. Collection Interface l l l Caching schemas to improve performance Validating XML against external schemas Validating XML at run-time

Demo Part 2 l l l In-line Schema Support Validating against external schemas Re-applying

Demo Part 2 l l l In-line Schema Support Validating against external schemas Re-applying the schema cache

In-Line Schema Support <root xmlns: foo=“x-schema: #my. Schema”> <Schema name=“my. Schema” xmlns=“urn: schemas-microsoft-com: xmldata”>

In-Line Schema Support <root xmlns: foo=“x-schema: #my. Schema”> <Schema name=“my. Schema” xmlns=“urn: schemas-microsoft-com: xmldata”> <Element. Type name=“bar”/> </Schema> <foo: bar>Hello World</foo: bar> </root>

Schema. Collection Interface: Creating a Schema Cache cache = new Active. XObject(“MSXML 2. XMLSchema.

Schema. Collection Interface: Creating a Schema Cache cache = new Active. XObject(“MSXML 2. XMLSchema. Cache"); cache. add("my. Foo. URI", "http: //server/xmldataschema 1. xml"); cache. add("uri 3", my. Dom. Document); xmldoc. schemas = cache; xmdoc. load("http: //myserver/mydata. xml");

Schema. Collection Interface: Applying the Schema Cache cache. add(“urn: book-ns”, schema. Doc) xmldoc. schemas

Schema. Collection Interface: Applying the Schema Cache cache. add(“urn: book-ns”, schema. Doc) xmldoc. schemas = cache xmldoc. load(“xmlfile. xml”) new. Node = xmldoc. create. Element(“pub”) doc. El = xmldoc. document. Element doc. El. append. Child(new. Node) xmldoc. validate()

General Performance Enhancements l XSLT Transformations Ø l l l Up to 3 x

General Performance Enhancements l XSLT Transformations Ø l l l Up to 3 x Improvement over MSXML Querying the DOM Walking the DOM Plug in MSXML 2 and improve performance of old scenarios

Improved Scalability l l l 100% increase in scaling Greatest increase in 4+ procs

Improved Scalability l l l 100% increase in scaling Greatest increase in 4+ procs See http: //msdn. microsoft. com/xml/articles/ xml 03202000. asp for numbers and scenarios

MSXML 3: Standards l l Full XSLT Support Full XPath Support SAX (Simple API

MSXML 3: Standards l l Full XSLT Support Full XPath Support SAX (Simple API for XML) Finishing touches on XML 1. 0

XSLT/XPath Support l XSLT Ø Ø l Full compliance Script Blocks XPath Ø Ø

XSLT/XPath Support l XSLT Ø Ø l Full compliance Script Blocks XPath Ø Ø Full compliance Select. Nodes Support

Demo Part 3 l l XPath Querying XPath support in the DOM select. Nodes

Demo Part 3 l l XPath Querying XPath support in the DOM select. Nodes

SAX 2 l Low-level Parser Interfaces Ø Ø l Event-driven parser Parsing w/o building

SAX 2 l Low-level Parser Interfaces Ø Ø l Event-driven parser Parsing w/o building a DOM tree Needed for messaging and other highthroughput scenarios Needed for processing large documents Currently available for C++ programmers - VB interfaces coming soon

Demo Part 4 l l SAXXMLReader SAX in VB

Demo Part 4 l l SAXXMLReader SAX in VB

Event-driven Parser Private Sub ISAXContent. Handler_Start. Element( Namespace. URI, Local. Name, Raw. Name, Attributes)

Event-driven Parser Private Sub ISAXContent. Handler_Start. Element( Namespace. URI, Local. Name, Raw. Name, Attributes) If Local. Name = “Book” Then Debug. Print "Book Data Present" End If End Sub

Full XML 1. 0 Compliance l l Put the finishing touches on 1. 0

Full XML 1. 0 Compliance l l Put the finishing touches on 1. 0 compliance Full Namespace 1. 0 compliance

Advanced XMLDSO Support l l l Better integration with ADO Binding Flat XML to

Advanced XMLDSO Support l l l Better integration with ADO Binding Flat XML to Controls using ADO 2. 5 Binding Complex XML to Hierarchical Controls using ADO 2. 6

Demo Part 5 l l XML Data Source Object Displaying XML in Excel

Demo Part 5 l l XML Data Source Object Displaying XML in Excel

Binding XML to Grid Controls CN. Provider = “MSDAOSP” CN. Properties(“Data. Source”) = “MSXML

Binding XML to Grid Controls CN. Provider = “MSDAOSP” CN. Properties(“Data. Source”) = “MSXML 2. DSOControl” CN. Open RS. Open “http: //server/simple. xml”, CN Set Data. Grid 1. Data. Source = RS

Conclusion l l l MSXML in Production Now MSXML 2 – new Performanceenhancing XML

Conclusion l l l MSXML in Production Now MSXML 2 – new Performanceenhancing XML API’s, additional schema work, general performance improvements MSXML 3 – Standards Release: Full XSLT and XPath support, SAX 2, Full XML 1. 0 Compliance XML

Resources and Services l XML Developer Center http: //msdn. microsoft. com/xml l SOAP Toolkit

Resources and Services l XML Developer Center http: //msdn. microsoft. com/xml l SOAP Toolkit http: //msdn. microsoft. com/xml/general/ toolkit_intro. asp l SQL Server 2000 Beta http: //www. microsoft. com/SQL/productinfo/ sql 2 kord. htm l Biztalk Server 2000 Technical Preview http: //www. microsoft. com/biztalkserver/ techres/techpreview. asp

Call to Action l l l Download the latest MSXML release (MSXML 3) Visit

Call to Action l l l Download the latest MSXML release (MSXML 3) Visit the XML Developer Center and check out the new materials there Start prototyping and developing applications using XML technologies