ebook img

Beginning XML with C# 7: XML Processing and Data Access for C# Developers PDF

464 Pages·2017·15.01 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Beginning XML with C# 7: XML Processing and Data Access for C# Developers

Beginning XML with C# 7 XML Processing and Data Access for C# Developers — Second Edition — Bipin Joshi Beginning XML with C# 7 XML Processing and Data Access for C# Developers Second Edition Bipin Joshi Beginning XML with C# 7: XML Processing and Data Access for C# Developers Bipin Joshi 301 Pitruchhaya, Thane, India ISBN-13 (pbk): 978-1-4842-3104-3 ISBN-13 (electronic): 978-1-4842-3105-0 https://doi.org/10.1007/978-1-4842-3105-0 Library of Congress Control Number: 2017961825 Copyright © 2017 by Bipin Joshi This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Cover image by Freepik (www.freepik.com) Managing Director: Welmoed Spahr Editorial Director: Todd Green Acquisitions Editor: Steve Anglin Development Editor: Matthew Moodie Technical Reviewer: Michael Thomas Coordinating Editor: Mark Powers Copy Editor: Kezia Endsley Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail [email protected], or visit http://www.apress.com/ rights-permissions. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the book's product page, located at www.apress.com/9781484231043. For more detailed information, please visit http://www.apress.com/source-code. Printed on acid-free paper This work is dedicated to Lord Shiva, who, I believe, resides in each one of us as pure consciousness. Contents About the Author ���������������������������������������������������������������������������������������������������xvii About the Technical Reviewer ��������������������������������������������������������������������������������xix Introduction ������������������������������������������������������������������������������������������������������������xxi ■ Chapter 1: Introducing XML and the �NET Framework ������������������������������������������1 What Is XML? �������������������������������������������������������������������������������������������������������������������1 Benefits of XML ��������������������������������������������������������������������������������������������������������������������������������������2 XML-Driven Applications ������������������������������������������������������������������������������������������������������������������������3 Rules of XML Grammar ����������������������������������������������������������������������������������������������������5 Markup Is Case Sensitive �����������������������������������������������������������������������������������������������������������������������6 A Document Must Have One and Only One Root Element ����������������������������������������������������������������������6 A Start Tag Must Have an End Tag ����������������������������������������������������������������������������������������������������������6 Start and End Tags Must Be Properly Nested �����������������������������������������������������������������������������������������7 Attribute Values Must Be Enclosed in Quotes �����������������������������������������������������������������������������������������7 DTD and XML Schema ������������������������������������������������������������������������������������������������������7 Parsing XML Documents ��������������������������������������������������������������������������������������������������8 XSLT ����������������������������������������������������������������������������������������������������������������������������������9 XPath ������������������������������������������������������������������������������������������������������������������������������10 The �NET Framework ������������������������������������������������������������������������������������������������������11 �NET Framework and XML ����������������������������������������������������������������������������������������������12 Assemblies and Namespaces ���������������������������������������������������������������������������������������������������������������13 The Classic XML Parsing Model of the �NET Framework ����������������������������������������������������������������������14 The LINQ-Based Parsing Model of the �NET Framework ����������������������������������������������������������������������14 �NET Configuration Files �����������������������������������������������������������������������������������������������������������������������15 v ■ Contents ADO�NET ������������������������������������������������������������������������������������������������������������������������������������������������17 ASP�NET Web Forms Server Controls ����������������������������������������������������������������������������������������������������17 XML Serialization ����������������������������������������������������������������������������������������������������������������������������������18 Web Services, WCF Services, and Web API �������������������������������������������������������������������������������������������19 XML Documentation �����������������������������������������������������������������������������������������������������������������������������19 XAML Markup ���������������������������������������������������������������������������������������������������������������������������������������21 SQL Server XML Features ���������������������������������������������������������������������������������������������������������������������21 Working with Visual Studio ���������������������������������������������������������������������������������������������21 Creating Windows Forms Applications �������������������������������������������������������������������������������������������������22 Creating Class Libraries ������������������������������������������������������������������������������������������������������������������������25 Summary ������������������������������������������������������������������������������������������������������������������������28 ■ Chapter 2: Manipulating XML Documents Using the Document Object Model������29 Using the DOM Parser ����������������������������������������������������������������������������������������������������29 Knowing When to Use DOM ��������������������������������������������������������������������������������������������31 A Sample XML Document �����������������������������������������������������������������������������������������������32 Opening an Existing XML Document for Parsing ������������������������������������������������������������33 Navigating Through an XML Document ��������������������������������������������������������������������������35 Looking for Specific Elements and Nodes ����������������������������������������������������������������������36 Retrieving Specific Elements Using the GetElementsByTagName() Method ����������������������������������������37 Retrieving Specific Elements Using the GetElementById() Method ������������������������������������������������������38 Selecting Specific Nodes Using the SelectNodes() Method ������������������������������������������������������������������41 Selecting a Single Specific Node Using the SelectSingleNode() Method ���������������������������������������������43 Modifying XML Documents���������������������������������������������������������������������������������������������44 Navigating Between Various Nodes ������������������������������������������������������������������������������������������������������45 Modifying Existing Content �������������������������������������������������������������������������������������������������������������������46 Deleting Existing Content ���������������������������������������������������������������������������������������������������������������������47 Adding New Content �����������������������������������������������������������������������������������������������������������������������������48 Using Helper Methods ��������������������������������������������������������������������������������������������������������������������������50 Dealing with Whitespace ������������������������������������������������������������������������������������������������50 vi ■ Contents Dealing with Namespaces ����������������������������������������������������������������������������������������������54 Understanding Events of the XmlDocument Class ���������������������������������������������������������55 Summary ������������������������������������������������������������������������������������������������������������������������58 ■ Chapter 3: Reading and Writing XML Documents ������������������������������������������������59 What Are XML Readers and Writers? ������������������������������������������������������������������������������59 When to Use Readers and Writers ����������������������������������������������������������������������������������60 Reader Classes ���������������������������������������������������������������������������������������������������������������60 The XmlTextReader Class ���������������������������������������������������������������������������������������������������������������������60 The XmlValidatingReader Class ������������������������������������������������������������������������������������������������������������60 The XmlNodeReader Class �������������������������������������������������������������������������������������������������������������������60 Reading XML Documents Using XmlTextReader ������������������������������������������������������������61 Opening XML Documents ���������������������������������������������������������������������������������������������������������������������61 Reading Attributes, Elements, and Values ��������������������������������������������������������������������������������������������63 Improving Performance by Using Name Tables ������������������������������������������������������������������������������������65 Dealing with Namespaces ��������������������������������������������������������������������������������������������������������������������66 Moving Between Elements ���������������������������������������������������������������������������������������������66 The ReadSubTree() Method ������������������������������������������������������������������������������������������������������������������66 The ReadToDescendant() Method ���������������������������������������������������������������������������������������������������������67 The ReadToFollowing() Method ������������������������������������������������������������������������������������������������������������67 The ReadToNextSibling() Method ����������������������������������������������������������������������������������������������������������68 The Skip() Method ��������������������������������������������������������������������������������������������������������������������������������68 Moving Between Attributes ��������������������������������������������������������������������������������������������69 Reading Content �������������������������������������������������������������������������������������������������������������69 The ReadInnerXml() Method �����������������������������������������������������������������������������������������������������������������70 The ReadOuterXml() Method �����������������������������������������������������������������������������������������������������������������70 The ReadString() Method ����������������������������������������������������������������������������������������������������������������������70 Writing XML Documents Using XmlTextWriter ����������������������������������������������������������������71 Exporting Columns As Elements �����������������������������������������������������������������������������������������������������������75 Exporting Columns As Attributes ����������������������������������������������������������������������������������������������������������75 Specifying Character Encoding�������������������������������������������������������������������������������������������������������������75 vii ■ Contents Formatting the Output ��������������������������������������������������������������������������������������������������������������������������76 Including Namespace Support �������������������������������������������������������������������������������������������������������������78 Dealing with Nontextual Data �����������������������������������������������������������������������������������������81 Serializing Data ������������������������������������������������������������������������������������������������������������������������������������82 Deserializing Data ���������������������������������������������������������������������������������������������������������������������������������83 Summary ������������������������������������������������������������������������������������������������������������������������84 ■ Chapter 4: Accessing XML Documents Using the XPath Data Model �������������������85 Overview of XPath ����������������������������������������������������������������������������������������������������������85 Location Path ����������������������������������������������������������������������������������������������������������������������������������������86 Axis �������������������������������������������������������������������������������������������������������������������������������������������������������86 Node Tests ��������������������������������������������������������������������������������������������������������������������������������������������86 Predicates ���������������������������������������������������������������������������������������������������������������������������������������������87 Putting It All Together����������������������������������������������������������������������������������������������������������������������������87 XPath Functions ������������������������������������������������������������������������������������������������������������������������������������87 The XPath Data Model ����������������������������������������������������������������������������������������������������89 Creating XPathNavigator �����������������������������������������������������������������������������������������������������������������������89 Navigating an XML Document Using XPathNavigator ���������������������������������������������������������������������������90 Selecting Nodes ������������������������������������������������������������������������������������������������������������������������������������92 Navigating Between Attributes �������������������������������������������������������������������������������������������������������������96 Retrieving Inner and Outer XML ������������������������������������������������������������������������������������������������������������97 Getting an XmlReader from XPathNavigator �����������������������������������������������������������������������������������������99 Getting an XmlWriter from XPathNavigator ����������������������������������������������������������������������������������������102 Editing XML Documents with the XPathNavigator Class ��������������������������������������������������������������������104 Summary ����������������������������������������������������������������������������������������������������������������������109 ■ Chapter 5: Validating XML Documents ��������������������������������������������������������������111 Providing Structure for XML Documents ����������������������������������������������������������������������111 Document Type Definition (DTD) ���������������������������������������������������������������������������������������������������������112 XML Data Reduced (XDR) Schema ������������������������������������������������������������������������������������������������������112 XML Schema Definition (XSD) Schema �����������������������������������������������������������������������������������������������112 Creating Structure for an XML Document ��������������������������������������������������������������������112 viii ■ Contents The Structure of Employees�xml ���������������������������������������������������������������������������������������������������������112 Creating the DTD ��������������������������������������������������������������������������������������������������������������������������������113 Creating the XML Schema ������������������������������������������������������������������������������������������������������������������115 Creating Schemas by Using the Schema Object Model (SOM) �������������������������������������126 The Core SOM Classes ������������������������������������������������������������������������������������������������������������������������126 Creating an XML Schema Using the SOM �������������������������������������������������������������������������������������������128 Attaching the DTD and XML Schemas to XML Documents �������������������������������������������135 Inline DTDs �����������������������������������������������������������������������������������������������������������������������������������������136 External DTDs �������������������������������������������������������������������������������������������������������������������������������������136 Inline XML Schema �����������������������������������������������������������������������������������������������������������������������������137 External XML Schema �������������������������������������������������������������������������������������������������������������������������137 Adding Frequently Used Schemas to the Schema Cache �������������������������������������������������������������������138 Using XmlReader to Validate XML Documents �������������������������������������������������������������139 Using XmlDocument to Validate XML Documents ��������������������������������������������������������142 Using XPathNavigator to Validate XML Documents ������������������������������������������������������145 Specifying XML Schema via Code ��������������������������������������������������������������������������������145 Summary ����������������������������������������������������������������������������������������������������������������������147 ■ Chapter 6: Transforming XML with XSLT �����������������������������������������������������������149 Overview of XSLT ����������������������������������������������������������������������������������������������������������149 Applying Templates Using <xsl:apply-templates> �����������������������������������������������������������������������������153 Branching Using <xsl:if> ��������������������������������������������������������������������������������������������������������������������154 Branching Using <xsl:choose> and <xsl:when> �������������������������������������������������������������������������������156 Transforming Elements and Attributes �����������������������������������������������������������������������������������������������158 The XslCompiledTransform Class ���������������������������������������������������������������������������������161 Performing Transformations Using XslCompiledTransform ����������������������������������������������������������������161 Passing Arguments to a Transformation ���������������������������������������������������������������������������������������������164 Using Script Blocks in an XSLT Style Sheet ����������������������������������������������������������������������������������������166 Using Extension Objects ���������������������������������������������������������������������������������������������������������������������170 Compiling XSLT Style Sheets ��������������������������������������������������������������������������������������������������������������171 Summary ����������������������������������������������������������������������������������������������������������������������173 ix ■ Contents ■ Chapter 7: XML in ADO�NET �������������������������������������������������������������������������������175 Overview of ADO�NET Architecture �������������������������������������������������������������������������������175 Connected Data Access ����������������������������������������������������������������������������������������������������������������������175 Disconnected Data Access �����������������������������������������������������������������������������������������������������������������176 ADO�NET Data Providers ���������������������������������������������������������������������������������������������������������������������177 ADO�NET Classes ��������������������������������������������������������������������������������������������������������������������������������178 XML and Connected Data Access ���������������������������������������������������������������������������������180 Using the ExecuteXmlReader() Method ����������������������������������������������������������������������������������������������180 XML and Disconnected Data Access ����������������������������������������������������������������������������182 Understanding DataSet �����������������������������������������������������������������������������������������������������������������������183 Understanding DataAdapter ���������������������������������������������������������������������������������������������������������������184 Working with DataSet and DataAdapter ���������������������������������������������������������������������������������������������186 Saving DataSet Contents As XML �������������������������������������������������������������������������������������������������������192 Reading XML Data into DataSet ����������������������������������������������������������������������������������������������������������197 Generating Menus Dynamically Based On an XML File ����������������������������������������������������������������������200 Reading Only the Schema Information �����������������������������������������������������������������������������������������������202 Creating a Typed DataSet ���������������������������������������������������������������������������������������������204 Using Visual Studio to Create a Typed DataSet �����������������������������������������������������������������������������������205 Using the xsd�exe Tool to Create a Typed DataSet ������������������������������������������������������������������������������210 Summary ����������������������������������������������������������������������������������������������������������������������210 ■ Chapter 8: XML Serialization �����������������������������������������������������������������������������211 Understanding the Flavors of Serialization ������������������������������������������������������������������211 Classes Involved in the XML Serialization ������������������������������������������������������������������������������������������212 Serializing and Deserializing Objects Using XmlSerializer �������������������������������������������212 Handling Events Raised During Deserialization ����������������������������������������������������������������������������������215 Serializing and Deserializing Complex Types��������������������������������������������������������������������������������������217 Serialization and Inheritance ��������������������������������������������������������������������������������������������������������������221 Customizing the Serialized XML ���������������������������������������������������������������������������������������������������������224 x

Description:
Master the basics of XML as well as the namespaces and objects you need to know in order to work efficiently with XML. You’ll learn extensive support for XML in everything from data access to configuration, from raw parsing to code documentation. You will see clear, practical examples that illustr
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.