Automating Google Workspace (GWS) & more with Apps Script
Xml session08
1. Extensible Markup Language
Objectives
In this session, you will learn to:
Identify the XML Document Object Model
Validate an XML document against an XML schema using the
Document Object Model
Apply a Style Sheet to an XML document
Ver. 1.0 Session 8 Slide 1 of 31
2. Extensible Markup Language
Identifying the XML Document Object Model
DOM defines the logical structure of documents.
DOM provides an Application Programming Interface (API)
for dynamically accessing and manipulating a document.
The DOM objects have associated methods and properties
to access and manipulate a document.
A DOM-enabled parser is required to use the features
provided by DOM.
A DOM-enabled parser:
Parses an XML document to ascertain its validity.
Creates an in‑memory representation of the XML document as
a tree structure.
Ver. 1.0 Session 8 Slide 2 of 31
3. Extensible Markup Language
Implementation of DOM in MSXML Parser
MSXML parser:
Is the Microsoft implementation of DOM.
Provides fundamental as well as added interfaces to access
documents.
The following figure represents how a DOM tree is used by
applications to access data.
MSXML Library
XML DOM Tree
Document Parser Root Application
Parsed Child
Document Text
Child
Text
Ver. 1.0 Session 8 Slide 3 of 31
4. Extensible Markup Language
XML DOM Objects and Methods
Following are the key DOM objects:
Document
Element
Node
NodeList
Attr
Text
CDataSection
ParseError
Ver. 1.0 Session 8 Slide 4 of 31
5. Extensible Markup Language
XML DOM Objects and Methods (Contd.)
Following are the key DOM objects:
– Document aIt is the top-level object that implements all the
basic DOM methods.
– Element aIt also has methods that support XSLT.
– Node aIt has methods that can be used to navigate,
– NodeList query, and modify the content and structure of
an XML document.
– Attr aSome of the methods provided by this object
– Text are createElement(), createAttribute(),
createComment() , and createTextNode().
– CDataSection aSome of the properties provided by this object that
– ParseError help in manipulating the information contained in
the object are async, childNodes, firstChild,
documentElement, xml, and readyState.
Ver. 1.0 Session 8 Slide 5 of 31
6. Extensible Markup Language
XML DOM Objects and Methods (Contd.)
Following are the key DOM objects:
– Document
– Element aIt represents all the element nodes in an XML
document.
– Node
aThe attributes associated with the elements are
– NodeList
considered to be the properties of the elements
– Attr rather than their child elements.
– Text aSome of the methods of this object are
– CDataSection also inherited from the Node object.
aSome of the methods provided by this object
– ParseError are
getAttribute(),
getElementsByTagName(),
normalize(), and removeAttributeNS().
Ver. 1.0 Session 8 Slide 6 of 31
7. Extensible Markup Language
XML DOM Objects and Methods (Contd.)
Following are the key DOM objects:
– Document
– Element
– Node It represents a single node in the XML document
tree structure.
– NodeList
It provides methods to work with child elements.
– Attr Some of the methods of this object are
– Text appendChild(newChild),
insertBefore(newNode,refNode),
– CDataSection and removeChild(nodeName).
– ParseError
Ver. 1.0 Session 8 Slide 7 of 31
8. Extensible Markup Language
XML DOM Objects and Methods (Contd.)
Following are the key DOM objects:
– Document
– Element
– Node
– NodeList It provides a list of nodes present in an XML
document for manipulation.
– Attr
This object enables you to iterate through a
– Text collection of nodes.
– CDataSection Some of the method of this object are item()
and nextNode().
– ParseError
Ver. 1.0 Session 8 Slide 8 of 31
9. Extensible Markup Language
XML DOM Objects and Methods (Contd.)
Following are the key DOM objects:
– Document
– Element
– Node
– NodeList
– Attr It represents an attribute of the Element
object.
– Text
It is also a Node and inherits various attributes
– CDataSection
and methods of Node object.
– ParseError
An attribute is not considered by the DOM to
be
a child node of an element, but rather a property.
Ver. 1.0 Session 8 Slide 9 of 31
10. Extensible Markup Language
XML DOM Objects and Methods (Contd.)
Following are the key DOM objects:
– Document
– Element
– Node
– NodeList
– Attr
It represents the text inside an XML element
– Text in
– CDataSection the node tree.
The splitText() method is associated with
– ParseError
this object.
Ver. 1.0 Session 8 Slide 10 of 31
11. Extensible Markup Language
XML DOM Objects and Methods (Contd.)
Following are the key DOM objects:
– Document
– Element
– Node
– NodeList
– Attr
– Text
It represents the CDATA sections in the node
– CDataSection tree.
– ParseError This node is used to escape the parts of text
that normally would be recognized as markup.
Ver. 1.0 Session 8 Slide 11 of 31
12. Extensible Markup Language
XML DOM Objects and Methods (Contd.)
Following are the key DOM objects:
– Document
– Element
– Node
– NodeList
– Attr
– Text
– CDataSection
– ParseError It returns information about the most recent
parse error.
It provides properties to retrieve information,
such as the error code, the error text, and the
line that caused the error.
Some of the properties of this object are
errorCode, reason, line, and srcText.
Ver. 1.0 Session 8 Slide 12 of 31
13. Extensible Markup Language
XML DOM Objects in Scripts
The DOM objects can be used within scripting languages
such as JavaScript and VBScript.
Using DOM objects in scripts allow dynamically applying a
style sheet to an XML document.
The code for using DOM objects for accessing an XML
document needs to be used as an HTML page.
Ver. 1.0 Session 8 Slide 13 of 31
14. Extensible Markup Language
Validating an XML Document Against an XML Schema Using DOM
DOM:
Used to validate XML documents against XML schemas.
Ensures proper grammar and proper formation of the XML
document.
• DOMDocument object:
Main object in a DOM.
Represents the top node in every document tree.
Used to load an XML document, parse it, and validate it.
• XMLSchemaCache object:
Loads the schema document associated with the XML
document.
Ver. 1.0 Session 8 Slide 14 of 31
15. Extensible Markup Language
Accessing an XML Document by Using the XMLSchemaCache Object
• Used to hold a collection of schema documents that
specifies the rules to which XML documents must conform.
• Following table describes some methods provided by the
XMLSchemaCache object.
Method Description
add(namespaceURI, This method adds a new schema to the collection and also
variable) associates the specified namespaceURI with the schema.
addCollection(XMLSch This method adds schemas from other schema collections.
emaCollection It also ensures that the namespaceURIs of the different
object) schemas do not clash.
get(namespaceURI) This method returns a node that contains the <schema>
element.
namespaceURI(index This method returns the namespace that is associated with
number) the schema at the specified index number.
remove(namespaceURI) This method removes a schema from a collection.
Ver. 1.0 Session 8 Slide 15 of 31
16. Extensible Markup Language
Validating an XML Document Against the Schema
To write a script that validates an XML document against
the schema, you need to follow the given tasks:
1. Create the user interface to accept the name of the XML
document and the XML schema.
2. Write the code to load the XML document.
3. Write the code to add the XML schema in the
XMLSchemaCache object.
4. Write the code to validate the XML document against the
schema.
Ver. 1.0 Session 8 Slide 16 of 31
17. Extensible Markup Language
Demo: Validating an XML Document
Problem Statement:
The head office of CyberShoppe receives data in the form of
XML documents from its branches. In order to ensure the
consistency of data sent by the branches, the head office
maintains the definitions for the structures of documents in
schemas. After receiving data from the branches, the head
office needs to verify that the data conforms to the schema of
the respective document. For this, the head office needs to
write a script that validates the data stored in an XML
document against a schema. You will initially do the testing for
the product.xml file.
Ver. 1.0 Session 8 Slide 17 of 31
18. Extensible Markup Language
Applying a Style Sheet to an XML Document
• Style sheet object that passes into the transformNode
method needs to be recompiled every time the method is
called.
• Compiling a style sheet means setting all its template rules
in an executable state.
• Using the XSLTemplate object and the XSLProcessor
object to perform transformation facilitates the following:
Reduction of overheads
Increase in the performance of an XSLT application
Ver. 1.0 Session 8 Slide 18 of 31
19. Extensible Markup Language
The XSLTemplate Object
Is a DOM object that is used to access an XSLT style sheet.
Used to hold a cached style sheet that can then be
dynamically associated with an XML document.
Before a style sheet document can be applied to an XML
document, it is converted into a tree structure by the parser.
XSLT tree structure is loaded into the memory of the
computer and used to process the XML document.
Ver. 1.0 Session 8 Slide 19 of 31
20. Extensible Markup Language
The XSLProcessor Object (Contd.)
• Used to apply a style sheet to an XML document and then
process that document.
• Applies the given XSLT document to a specific XML
document.
• Transforms an XML document by using the XSLT style
sheet.
• JavaScript code to create an XSLProcessor object is as
follows:
var xslprocobj= xsltobj.createProcessor();
Ver. 1.0 Session 8 Slide 20 of 31
21. Extensible Markup Language
Demo: Applying a Style Sheet to an XML Document During Run Time
Problem Statement:
CyberShoppe sells its products through an e-commerce Web
site. Product details, such as product name, description, price,
and quantity, need to be displayed.
A customer can choose to view the product details either as a
table or as a bulleted list.
Ver. 1.0 Session 8 Slide 21 of 31
22. Extensible Markup Language
Exercises
Problem Statement:
The following XML document, customer.xml contains
customer details:
<?xml version="1.0"?>
<CUSTOMER>
<CUSTOMERNAME>Harold Johnson</CUSTOMERNAME>
<ADDRESS>56, Regent Road</ADDRESS>
<CITY>London</CITY>
<COUNTRY>UK</COUNTRY>
<PHONE>444-425-2355</PHONE>
</CUSTOMER>
Create a Web page that accepts the name of the XML file in a
text box. When you click the Submit hyperlink, a JavaScript
code should load the XML document and extract the
CUSTOMERNAME element. The address and phone number
should be changed to 94, McFarlane Avenue and
412-233-2344, respectively, by using XML DOM objects.
Ver. 1.0 Session 8 Slide 22 of 31
23. Extensible Markup Language
Practice Questions
• Which of the following methods of the DOMDocument object
will you use to create an element node that has a
namespace prefix associated with it?
a. createElement()
b. createTextNode()
c. createNode()
d. createAttribute()
Answer:
c. createNode()
Ver. 1.0 Session 8 Slide 23 of 31
24. Extensible Markup Language
Practice Questions
• You have written a script to load an XML document and
validate it against a schema. Which of the following
properties of the DOMDocument object will you use to
ensure that the script waits till the XML document is loaded
before executing the rest of the code?
a. async
b. readyState
c. documentElement
d. xml
Answer:
a. async
Ver. 1.0 Session 8 Slide 24 of 31
25. Extensible Markup Language
Practice Questions
• Which of the following properties of the IXMLDOMNode
object will you use to return the text associated with a
node?
a. nodeName
b. xml
c. nodeType
d. nodeValue
Answer:
d. nodeValue
Ver. 1.0 Session 8 Slide 25 of 31
26. Extensible Markup Language
Practice Questions
• Which of the following properties of the
IXMLDOMParseError object will you use to retrieve the
string containing the line that caused an error while parsing
an XML document?
a. srcText
b. linePos
c. reason
d. line
Answer:
a. srcText
Ver. 1.0 Session 8 Slide 26 of 31
27. Extensible Markup Language
Practice Questions
Which one of the following is an object that represents the
complete XML document map?
a. IXMLDOMNode
b. DOMDocument
c. IXMLDOMNodeList
d. IXMLDOMParseError
Answer:
b. DOMDocument
Ver. 1.0 Session 8 Slide 27 of 31
28. Extensible Markup Language
Summary
In this session, you learned that:
The XMLSchemaCache object is used to associate an XML
document with an XSD document.
The XMLSchemaCache object is used to hold a collection of
schema documents that specifies the rules to which XML
documents must conform.
The XSLTemplate object is used to access an XSLT style
sheet.
The XSLProcessor object is used to apply style sheets on a
given XML document.
The XSLProcessor object is created using the
createProcessor() method.
The XSLProcessor object is associated with an XML
document by using the input property of the XSLProcessor
object.
Ver. 1.0 Session 8 Slide 28 of 31
29. Extensible Markup Language
Summary (Contd.)
The XSLProcessor object provides the transform()
method to transform an XML document according to the
information provided in an XSLT style sheet.
DOM is an application-programming interface that allows an
application to access the contents of an XML document.
DOM objects allow you to access and manipulate XML
documents.
The MSXML parser loads an XML document and creates a
tree structure that represents the various components of the
XML document.
The basic building block of the tree structure is a node. A node
is a container that holds information about the elements,
attributes, and content stored in an XML document.
Ver. 1.0 Session 8 Slide 29 of 31
30. Extensible Markup Language
Summary (Contd.)
Some DOM objects that are used to manipulate data in a
document are:
Document
Element
Node
NodeList
Attr
Text
CDataSection
ParseError
The Document object is the top-level object in the XML DOM.
This object provides various properties and methods that help
you to navigate, query, and modify the content and structure of
XML documents.
The Element object represents all the element nodes in a
document.
Ver. 1.0 Session 8 Slide 30 of 31
31. Extensible Markup Language
Summary (Contd.)
The Node object represents a node in the XML document
structure. This object provides methods to work with the child
elements.
The NodeList object allows you to iterate through a collection
of nodes.
The Attr object represents an attribute of an Element object.
The Text object represents the text inside an XML element in
the node tree.
The ParseError object returns information about the most
recent parse error.
Ver. 1.0 Session 8 Slide 31 of 31
Notas do Editor
Introduce the students to the course by asking them what they know about forensics. Next, ask the students what they know about system forensics and why is it required in organizations dependent on IT. This could be a brief discussion of about 5 minutes. Lead the discussion to the objectives of this chapter.
Introduce the students to the different types of threats that systems face by: Asking the students to give examples of what they think are environmental and human threats. Asking the students to give instances of what they think are malicious and non-malicious threats. Conclude the discussion on the different types of threats by giving additional examples of malicious and non malicious threats.
Introduce the students to the different types of threats that systems face by: Asking the students to give examples of what they think are environmental and human threats. Asking the students to give instances of what they think are malicious and non-malicious threats. Conclude the discussion on the different types of threats by giving additional examples of malicious and non malicious threats.
Hold a two- three minute discussion on the different types of system-related crimes that the students have experienced or heard. At the end of the discussion, give additional examples of system-related crimes.
Hold a two- three minute discussion on the different types of system-related crimes that the students have experienced or heard. At the end of the discussion, give additional examples of system-related crimes.
Hold a two- three minute discussion on the different types of system-related crimes that the students have experienced or heard. At the end of the discussion, give additional examples of system-related crimes.
Hold a two- three minute discussion on the different types of system-related crimes that the students have experienced or heard. At the end of the discussion, give additional examples of system-related crimes.
Hold a two- three minute discussion on the different types of system-related crimes that the students have experienced or heard. At the end of the discussion, give additional examples of system-related crimes.
Hold a two- three minute discussion on the different types of system-related crimes that the students have experienced or heard. At the end of the discussion, give additional examples of system-related crimes.
Hold a two- three minute discussion on the different types of system-related crimes that the students have experienced or heard. At the end of the discussion, give additional examples of system-related crimes.
Hold a two- three minute discussion on the different types of system-related crimes that the students have experienced or heard. At the end of the discussion, give additional examples of system-related crimes.
Hold a two- three minute discussion on the different types of system-related crimes that the students have experienced or heard. At the end of the discussion, give additional examples of system-related crimes.
Elaborate on the role that system forensics plays in an organization, based on the discussion in the previous slide and the information given on this slide.
While explaining the definition of system forensics, ask the students to note the following key words in the definition: Identify Extract Process Analyze Digital and hardware evidence Tell the students that these form an integral aspect of system forensics and would be discussed in detail. Before moving on to the next slide, hold a brief discussion on why is it important for organizations to take the help of system forensics. The discussion should be focused on: The role that system forensics plays in organizations having an IT set up. This discussion will serve as a precursor to the next slide.
While explaining the definition of system forensics, ask the students to note the following key words in the definition: Identify Extract Process Analyze Digital and hardware evidence Tell the students that these form an integral aspect of system forensics and would be discussed in detail. Before moving on to the next slide, hold a brief discussion on why is it important for organizations to take the help of system forensics. The discussion should be focused on: The role that system forensics plays in organizations having an IT set up. This discussion will serve as a precursor to the next slide.
While explaining the definition of system forensics, ask the students to note the following key words in the definition: Identify Extract Process Analyze Digital and hardware evidence Tell the students that these form an integral aspect of system forensics and would be discussed in detail. Before moving on to the next slide, hold a brief discussion on why is it important for organizations to take the help of system forensics. The discussion should be focused on: The role that system forensics plays in organizations having an IT set up. This discussion will serve as a precursor to the next slide.
While explaining the definition of system forensics, ask the students to note the following key words in the definition: Identify Extract Process Analyze Digital and hardware evidence Tell the students that these form an integral aspect of system forensics and would be discussed in detail. Before moving on to the next slide, hold a brief discussion on why is it important for organizations to take the help of system forensics. The discussion should be focused on: The role that system forensics plays in organizations having an IT set up. This discussion will serve as a precursor to the next slide.
While explaining the definition of system forensics, ask the students to note the following key words in the definition: Identify Extract Process Analyze Digital and hardware evidence Tell the students that these form an integral aspect of system forensics and would be discussed in detail. Before moving on to the next slide, hold a brief discussion on why is it important for organizations to take the help of system forensics. The discussion should be focused on: The role that system forensics plays in organizations having an IT set up. This discussion will serve as a precursor to the next slide.
While explaining the definition of system forensics, ask the students to note the following key words in the definition: Identify Extract Process Analyze Digital and hardware evidence Tell the students that these form an integral aspect of system forensics and would be discussed in detail. Before moving on to the next slide, hold a brief discussion on why is it important for organizations to take the help of system forensics. The discussion should be focused on: The role that system forensics plays in organizations having an IT set up. This discussion will serve as a precursor to the next slide.
While explaining the definition of system forensics, ask the students to note the following key words in the definition: Identify Extract Process Analyze Digital and hardware evidence Tell the students that these form an integral aspect of system forensics and would be discussed in detail. Before moving on to the next slide, hold a brief discussion on why is it important for organizations to take the help of system forensics. The discussion should be focused on: The role that system forensics plays in organizations having an IT set up. This discussion will serve as a precursor to the next slide.
While explaining the definition of system forensics, ask the students to note the following key words in the definition: Identify Extract Process Analyze Digital and hardware evidence Tell the students that these form an integral aspect of system forensics and would be discussed in detail. Before moving on to the next slide, hold a brief discussion on why is it important for organizations to take the help of system forensics. The discussion should be focused on: The role that system forensics plays in organizations having an IT set up. This discussion will serve as a precursor to the next slide.
While explaining the definition of system forensics, ask the students to note the following key words in the definition: Identify Extract Process Analyze Digital and hardware evidence Tell the students that these form an integral aspect of system forensics and would be discussed in detail. Before moving on to the next slide, hold a brief discussion on why is it important for organizations to take the help of system forensics. The discussion should be focused on: The role that system forensics plays in organizations having an IT set up. This discussion will serve as a precursor to the next slide.
Reiterate the concepts taught earlier by asking the given question.
Reiterate the concepts taught earlier by asking the given question.
Reiterate the concepts taught earlier by asking the given question.
Reiterate the concepts taught earlier by asking the given question.
Reiterate the concepts taught earlier by asking the given question.