The purpose of this project is to give an example of how to create a validation plug-in for Reporting Standard XBRL Validation engine.

Here are the main steps:

1. Create a class and implement the XBRLPlugInProcessor interface.

   In this demo, we have created the DemoValidator class
   
   The validate() method filters that only XBRL Reports will be validated.
   
   The validate(XBRLDocument) method validates XBRL reports and checks that
   the reported periods are shorter than one year.
   
2. Create a class and extend the XBRLProcessorFactoryBase.

   In this demo, the Factory is the DemoValidatorFactory class.
   
   It is a straight forward class to create instances of the validator demo when needed.
   
3. Create a file at RSXBRLMANIFEST/xbrlprocessors.properties and register the processor
   factory
   
   In this demo, the package contains just one factory. Multiple factories are allowed
   each one separated by a comma character.

4. Make sure you add the output of this project to the classpath of the RS Validation so
   the factory can be found and it can be instantiated.
   
5. Add a reference to the new processor to the PROCESSORS_SEQUENCE property at the time
   RS Processor is instantiated.
   
   Take a look at the com.rs.xbrl.demo.rundemo.Main class and see how the XBRL processor
   is created with the arguments to launch the new DemoValidator when needed.
   
   
The source code is in the src_custom_validation folder for clarification purposes.

There are two packages there:
 com.rs.xbrl.demo contains the demo processor factory and validator implementation (2 classes)
 com.rs.xbrl.demo.rundemo contains a Main class for launching the demo processor
 
The directory called testcases_custom_validation contains the sample instance to be validated. 
The DTS of that instance document based on a Chilean report (Securities Regulator SVS)
