48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Generic schema interchange format that can be converted to a runtime
							 | 
						||
| 
								 | 
							
								 * representation (HTMLPurifier_ConfigSchema) or HTML documentation. Members
							 | 
						||
| 
								 | 
							
								 * are completely validated.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								class HTMLPurifier_ConfigSchema_Interchange
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Name of the application this schema is describing.
							 | 
						||
| 
								 | 
							
								     * @type string
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public $name;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Array of Directive ID => array(directive info)
							 | 
						||
| 
								 | 
							
								     * @type HTMLPurifier_ConfigSchema_Interchange_Directive[]
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public $directives = array();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Adds a directive array to $directives
							 | 
						||
| 
								 | 
							
								     * @param HTMLPurifier_ConfigSchema_Interchange_Directive $directive
							 | 
						||
| 
								 | 
							
								     * @throws HTMLPurifier_ConfigSchema_Exception
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function addDirective($directive)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        if (isset($this->directives[$i = $directive->id->toString()])) {
							 | 
						||
| 
								 | 
							
								            throw new HTMLPurifier_ConfigSchema_Exception("Cannot redefine directive '$i'");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $this->directives[$i] = $directive;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Convenience function to perform standard validation. Throws exception
							 | 
						||
| 
								 | 
							
								     * on failed validation.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function validate()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $validator = new HTMLPurifier_ConfigSchema_Validator();
							 | 
						||
| 
								 | 
							
								        return $validator->validate($this);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// vim: et sw=4 sts=4
							 |