1<?php 2 3/** 4 * Generic schema interchange format that can be converted to a runtime 5 * representation (HTMLPurifier_ConfigSchema) or HTML documentation. Members 6 * are completely validated. 7 */ 8class HTMLPurifier_ConfigSchema_Interchange 9{ 10 11 /** 12 * Name of the application this schema is describing. 13 * @type string 14 */ 15 public $name; 16 17 /** 18 * Array of Directive ID => array(directive info) 19 * @type HTMLPurifier_ConfigSchema_Interchange_Directive[] 20 */ 21 public $directives = array(); 22 23 /** 24 * Adds a directive array to $directives 25 * @param HTMLPurifier_ConfigSchema_Interchange_Directive $directive 26 * @throws HTMLPurifier_ConfigSchema_Exception 27 */ 28 public function addDirective($directive) 29 { 30 if (isset($this->directives[$i = $directive->id->toString()])) { 31 throw new HTMLPurifier_ConfigSchema_Exception("Cannot redefine directive '$i'"); 32 } 33 $this->directives[$i] = $directive; 34 } 35 36 /** 37 * Convenience function to perform standard validation. Throws exception 38 * on failed validation. 39 */ 40 public function validate() 41 { 42 $validator = new HTMLPurifier_ConfigSchema_Validator(); 43 return $validator->validate($this); 44 } 45} 46 47// vim: et sw=4 sts=4 48