Course: Complete Guide to XML for Microsoft Developers

Neal Walters published his new XML for Microsoft developers training course on Udemy as of June 2020. Parts of the course apply to non-Microsoft environments and that includes XML basics, XSD, XPath, XQuery, and XSLT, which are all W3C ( standards. The course shows how to deal with XML in three programming languages: 1) Visual Studio, 2) PowerShell, and 3) Transact SQL (T-SQL) for SQL Server.

The course includes other tools such as how to check, format, and validate XML with the NotePad++ plugins, and how to use other tools like VSCode and Microsoft’s XML Notepad.

The full outline is below.

Intro to XML

  1. XML Files with Elements and Nesting (Flight01/Flight02) and Empty Element
  2. XML Files with Attributes (Flight03-07)
  3. XML Files – Misc Features – Declarative, Comments (Sample01)
  4. XML Encoding Special Characters (Sample02) – Intro to PowerShell
  5. XML Unicode & Byte Order Mark (Sample03_Unicode.xml)
  6. XML Files – Namespace
  7. Review with chart (see image tab)
  8. XML to JSON using PowerShell/NewtonSoft .Net Library
  9. XML to JSON – PowerShell – formatting/indenting
  10. Bonus: Example of JSON Used in JavaScript
  11. Finding Well-Formed Errors (The Divide and Conquer Method)

XML Tools: Editors & Browsers

  1. Editing XML with NotePad++
  2. Editing XML with Visual Studio (2019)
  3. Adding Xpath Tools (Extension) to Visual Studio (From Marketplace)
  4. Editing XML with VS Code
  5. Microsoft XML Notepad
  6. Commercial Tools: Stylus Studio, XML Spy, Oxygen
  7. How Browsers handle XML (normal, with errors, with stylesheet)


  1. XPath Intro – and How to Practice Answers to Quizes In this Module
  2. Simple element selection (including subscripts and text())
  3. Attributes and simple “where” clauses
  4. More where clauses (elements and/or)
  5. Relative paths
  6. XPath Axes – Documentation and Samples
  7. Namespaces – Part 1
  8. Namespaces – Part 2
  9. Real world, Difficult XPath
  10. Functions: Count, Sum, Contains, Starts-with, Substring-Before
  11. XPath 2.0, 3.0, 3.1

C# Programming – XmlDocument and XPath

  1. XMLDocument – Load, LoadXML, Save, PrettyPrint
  2. XMLDocument, SelectNodes, SelectSingleNode, GetElementsByTagName
  3. XMLDocument – pretty print to a string
  4. XMLDocument – Navigation: NextSibling, PreviousSibling, ParentNode
  5. Validate XML data against a Schema
  6. Add a new attribute to existing element
  7. Add a new element to existing element
  8. Removing elements and attributes (XmlNode Properties/Methods)
  9. C# Assignment – Getting values from an XML Config File
  10. C# Assignment Solution – Getting values from an XML Config File

C# – Streaming – XMLReader

  1. Validate XML data against a Schema
  2. XPathNavigator (Streaming)
  3. Saxon (Third Party Library)
  4. Microsoft CORE

XSD Schemas

  1. XSD Schema Intro (also mention DTD, XDR Schemas, RelaxNG, Schematron)
  2. Generate Schema from Web – Validation in NotePad++
  3. PowerShell – using .Net Library – Schema Inference
  4. XSD Elements and Attributes (MaxOccurs)
  5. XSD Restrictions
  6. XSD Empty, Elements Only, Text Only, Mixed
  7. XSD Indicators, All, Choice, Sequence, maxOccurs, MinOccurs, Groups
  8. Any Element and anyAttribute
  9. XSD Data Types
  10. Allowing Nulls
  11. Validating the Schema Syntax in C#
  12. PowerShell Equivalent of Last Video
  13. Discussion of Schema Editors (And Demo of BizTalk)
  14. Industry Standard Schemas – Example OAGIS
  15. Schema/Contract Development

JSON Schema

  1. Generate JSON Schema from JSON file


  1. How Mapping Fits into the Business Processes
  2. Intro to XSLT – Big Picture
  3. HelloWorld Example – Running .NET XSLT 1.0 in PowerShell
  4. HelloWorld Example – Running Saxon XSLT 3.0 in PowerShell
  5. ForEach and ApplyTemplates
  6. If/Test and Choose/When (Long Version with Errors/Debugging)
  7. If/Test and Choose/When (Short pre-canned version)
  8. Variables in XSLT
  9. Sort
  10. Key and Xpath Lookup
  11. Muenchian Grouping in 1.0 and new feature in 3.0
  12. Assignment 1 – Map Shakespeare to New XML
  13. Assignment 1 – Solution
  14. Assignment 2 – Build HTML Web Page from Flight03
  15. Assignment 2 – Solution – Part 1 of 3
  16. Assignment 2 – Solution – Part 2 of 3
  17. Assignment 2 – Solution – Part 2 of 3


  1. Introduction (Slide Presentation)
  2. Saxon.exe – Example Flight03.xml
  3. Saxon.exe – Example Shakespeare Hamlet.xml
  4. Saxon.exe – Example Vidoes.xml – join and multiple FLWOR
  5. XQuery in SQL Server Queries
  6. PowerShell Examples (Saxonica and SQL/XQuery)

C# Programming with Saxonica API

  1. Downloading and Documentation
  2. XPath
  3. XSLT
  4. XQuery

C# Programming and XSD.exe – Serialization/Deserialization

  1. Serialize (Object to XML) and Deserialize (XML to Object)
  2. XSD.exe – big picture (slides)
  3. XSD.exe – Generated a class from a schema
  4. Creating a fully populated object from the generated class
  5. XSD.exe – Generated schema from a class

XML DataType in SQL Server

  1. The XML Column
  2. Populating XML Column with Shakespeare File Data
  3. Querying XML Column using XPath
  4. Querying XML Column using XPath
  5. Query XML Column – one to many – with Cross Apply
  6. XML Column and the Like Clause
  7. XML Column and the Exist Method
  8. XML Column and the Modify Method
  9. Working with Namespaces Prefixes
  10. Intro to XML Column Indexes
  11. Vote for Future SQL Improvements

Loading XML into SQL Tables (using T-SQL and SSMS)

  1. Bonus – Designing/Creating Tables – Part 1
  2. Bonus – Designing/Creating Tables – Part 2
  3. Bonus – Database Redesign – Part 3
  4. Bonus – Manual Data Entry Airlines, Airports, Flights
  5. Populate Reservation Table from Flight03.xml using OpenRowSet
  6. Improve Last SQL Script (for Reservation Table)
  7. Manually Entering Flight Data
  8. Loading FlightReservation Table (one to many relationships)
  9. Canned shorter version of prior Video
  10. Bonus: Overview of UpdateGrams (SQLXML 4.0)
  11. OpenXML
  12. Bonus: How The Database could be Populated with Biztalk (and UDTs)
  13. Assignment – C# Load of Database
  14. Assignment – C# Load of Database Solution

Querying SQL Data as XML

  1. Intro to the “For XML” clause and it’s variations
  2. For XML RAW in T-SQL
  3. For XML AUTO in T-SQL
  4. For XML EXPLICIT in T-SQL – Introductory Concepts
  5. For XML EXPLICIT in T-SQL – Sample
  6. For XML PATH in T-SQL – Introductory Concepts
  7. For XML PATH in T-SQL – Sample
  8. PowerShell to run For XML SQL command and save result to file

XML and PowerShell

  1. Simple PowerShell with Flight01.xml
  2. Some PowerShell Tips for Newbies (MOVE TO INTRO???)
  3. Simple PowerShell – Pipe to Format-Table and Format-List
  4. Using Select-XML or the .NET SelectNode/SelectSingleNode
  5. Convert XML To CSV or to HTML
  6. Convert To XML
  7. Converting XML to JSON
  8. Pretty-Print all XML in disk directories (preserving datetime)

Get the XML Course for Microsoft Visual Studio, PowerShell, and SQL Developers here.

Leave a Reply

Your email address will not be published. Required fields are marked *