XML (.NET 1.1) Performance Checklist

From Guidance Share
Jump to navigationJump to search

J.D. Meier, Srinath Vasireddy, Ashish Babbar, Rico Mariani, and Alex Mackman

Design Considerations

  • Choose the appropriate XML class for the job.
  • Consider validating large documents.
  • Process large documents in chunks, if possible.
  • Use streaming interfaces.
  • Consider hard-coded transformations.
  • Consider element and attribute name lengths.
  • Consider sharing the XmlNameTable.

Parsing XML

  • Use XmlTextReader to parse large XML documents.
  • Use XmlValidatingReader for validation.
  • Consider combining XmlReader and XmlDocument.
  • On the XmlReader, use the MoveToContent and Skip methods to skip unwanted items.

Validating XML

  • Use XmlValidatingReader.
  • Do not validate the same document more than once.
  • Consider caching the schema.

Writing XML

  • Use XmlTextWriter.

XPath Queries

  • Use XPathDocument to process XPath statements.
  • Avoid the // operator by reducing the search scope.
  • Compile both dynamic and static XPath expressions.

XSLT Processing

  • Use XPathDocument for faster XSLT transformations.
  • Consider caching compiled style sheets.
  • Consider splitting complex transformations into several stages.
  • Minimize the size of the output document.
  • Write efficient XSLT.