<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:d="Directive" xmlns:a="Attribute" targetNamespace="Directive" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:import namespace="Attribute" schemaLocation="../Attribute/Attribute.xsd"/>
	<xs:complexType name="DirectiveType">
		<xs:annotation>
			<xs:documentation>Type of AttributeContainer that traverses a Graph and applies an algorithm to each active, traversed Node</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="a:AttributeContainerType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="LayoutPrintDirective" type="d:DirectiveType">
		<xs:annotation>
			<xs:documentation>Traverses any part of a graph in order to print to standard output whatever is in the directive's path</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="SearchDirective">
		<xs:annotation>
			<xs:documentation>Traverses any part of a graph in order to locate a specific node in the directive's path using either search by name or search by type</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="d:DirectiveType">
					<xs:attribute name="nameString" type="xs:string" use="optional"/>
					<xs:attribute name="typeEnumeration" type="xs:int" use="optional"/>
					<xs:attribute name="searchName" type="xs:boolean" use="optional" default="false"/>
					<xs:attribute name="searchType" type="xs:boolean" use="optional" default="false"/>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="UpdateDirective">
		<xs:annotation>
			<xs:documentation>Traverses any part of a graph, invoking the Update method of each visited Node</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="XPathSearchDirective">
		<xs:annotation>
			<xs:documentation>Traverses any part of a graph in order to locate a specific node in the directive's path by matching a given XPath expression (XPointer to a Node or Attribute)</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="d:DirectiveType">
					<xs:attribute name="xpath" type="xs:string" use="required"/>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
</xs:schema>
