<?xml version='1.0'?>

<!-- **************************************************************************************

XMLProbe 1.0 (http://www.xmlprobe.com/)

Skeleton Selection Document. Use this document as a basis for constucting XMLProbe
rules sets.

Copyright (c) 2003 Griffin Brown Digital Publishing Ltd.

**************************************************************************************** -->



<!-- Root element must be <silcn>. It's a good idea to declare SILCN and XMLProbe
Namespaces here for use throughout the document -->

<silcn:silcn xmlns:silcn='http://silcn.org/200309' xmlns:probe="http://xmlprobe.com/200312">



<!-- SILCN version - must be 1.0 for SILCN 1.0 -->

<silcn:version>1.0</silcn:version>


<!-- * * * * * * * * * * * * * * START TOOL CONFIGURATION * * * * * * * * * * * * * * -->


<!-- This <addin> element configures the underlying parser behaviour. NB you can pass any feature
information supported by your chosen parser using these structures. -->

<probe:addIn>
<probe:name>org.apache.xerces.parsers.SAXParser</probe:name>
<probe:config>



<!-- Set this feature to tell the parser whether or not to use validation. For testing
well-formed content, this should be set false. When content is valid to a DTD, this should
be set true -->

	<probe:feature>
		<probe:name>http://xml.org/sax/features/validation</probe:name>
		<probe:value>false</probe:value>
	</probe:feature>
	


<!-- Whether or not to recognise Namespaces. Should always be true except in weird circumstances. -->
	
	<probe:feature>
		<probe:name>http://xml.org/sax/features/namespaces</probe:name>
		<probe:value>true</probe:value>
	</probe:feature>
	
	
	
<!-- Whether or not to recognise Namespace prefixes. Ditto. -->
	
	<probe:feature>
		<probe:name>http://xml.org/sax/features/namespace-prefixes</probe:name>
		<probe:value>true</probe:value>
	</probe:feature>   
	
	
	
<!-- XERCES ONLY! Whether or not Xerces-J should try to continue after a fatal error in the XML (i.e.
a well-formedness error). Since all bets are off under these conditions, this is best
left set false -->	
	
	<probe:feature>
		<probe:name>http://apache.org/xml/features/continue-after-fatal-error</probe:name>
		<probe:value>false</probe:value>
	</probe:feature>


	
<!-- Whether or not XMLProbe should issue 'warnings' (as specified in the XML Recommendation). -->	

	<probe:feature>
		<probe:name>http://xmlprobe.com/features/issue-warnings</probe:name>
		<probe:value>false</probe:value>
	</probe:feature>
	

	
<!-- Whether or not XMLProbe should emit an activity log to STDERR when it runs. Primarily useful
for debugging purposes -->		
	
	<probe:feature>
		<probe:name>http://xmlprobe.com/features/show-activity-log</probe:name>
		<probe:value>false</probe:value>
	</probe:feature>


	
<!-- Determines the error format used for output. Currently this *must* be 'xml' - which causes
XMLProbe to emit a report in SILCN format - or 'text', for a convention parser-like output -->		

	<probe:feature>
		<probe:name>http://xmlprobe.com/features/error-format</probe:name>
		<probe:value>xml</probe:value>
	</probe:feature>
	

<!-- Determines the encoding used for output. Currently this *must* be 'utf8' or 'ascii' -->		
		
	<probe:feature>
		<probe:name>http://xmlprobe.com/features/encoding</probe:name>
		<probe:value>utf8</probe:value>
	</probe:feature>

</probe:config>


<!-- This <addin> element configures the QA application behavior -->

</probe:addIn>
   
<probe:addIn>
<probe:name>com.xmlprobe.QAHandler</probe:name>
<probe:config>



<!-- This determines whether XMLProbe should use XPath to locate elements matched by the rules. This
should always be true - and is required to process output sensibly using XSLT etc.-->

<probe:feature>
<probe:name>http://xmlprobe.com/features/use-xpath-locators</probe:name>
<probe:value>true</probe:value>
</probe:feature>


</probe:config>
</probe:addIn>

<!-- * * * * * * * * * * * * * * END TOOL CONFIGURATION * * * * * * * * * * * * * * -->


<!-- Everything from here on is pertinent to the QA rules themselves -->


<!-- Each <selection> element contains a bunch of rules -->

<silcn:selection>



<!-- We need to declare what language we're using for expressing rules. Currently XMLProbe
only supports the value 'XPath' here -->

<silcn:expression-language-declaration>
 <silcn:name>XPath</silcn:name>
</silcn:expression-language-declaration>



<!-- We need to declare any Namespace prefixes we're gonna be using within the XPath
expressions that constitute our rules -->

<silcn:namespace-declaration>
 <silcn:uri>ftp://test</silcn:uri>
 <silcn:prefix>p</silcn:prefix>
</silcn:namespace-declaration>



<!--

Below is a rule 'template'. To add new, rules simply copy, paste and modify ...

Each <set-criterion> is effectively a 'rule'. The element contains three elements:

	<id>				-	an identifier for the rule (must be unique)
	<expression>	-  an XPath expression that identifies wrongness (i.e. bad nodes)
	<message>		- 	what should be reported when bad nodes are found
	
within <message>, the <eval> element can be used to express dynamic parts of the error
message. This too is an XPath expression which takes as its context the result of the
XPath expression in <expression>.

-->

<!-- template 

<silcn:set-criterion>
 <silcn:id>{ insert an id value here e.g.: rule-001 }</silcn:id>
 <silcn:expression>{ insert an XPath test here e.g.: /*[name(.)='doc'] }</silcn:expression>
 <probe:message>{ insert output message here e.g.: Element root name is <probe:eval>name(.)</probe:eval> }</probe:message>
</silcn:set-criterion>

end template -->




</silcn:selection>

</silcn:silcn>