]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - includes/XmlTypeCheck.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / includes / XmlTypeCheck.php
diff --git a/includes/XmlTypeCheck.php b/includes/XmlTypeCheck.php
deleted file mode 100644 (file)
index a004ef4..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-class XmlTypeCheck {
-       /**
-        * Will be set to true or false to indicate whether the file is
-        * well-formed XML. Note that this doesn't check schema validity.
-        */
-       public $wellFormed = false;
-       
-       /**
-        * Will be set to true if the optional element filter returned
-        * a match at some point.
-        */
-       public $filterMatch = false;
-
-       /**
-        * Name of the document's root element, including any namespace
-        * as an expanded URL.
-        */
-       public $rootElement = '';
-
-       /**
-        * @param $file string filename
-        * @param $filterCallback callable (optional)
-        *        Function to call to do additional custom validity checks from the
-        *        SAX element handler event. This gives you access to the element
-        *        namespace, name, and attributes, but not to text contents.
-        *        Filter should return 'true' to toggle on $this->filterMatch
-        */
-       function __construct( $file, $filterCallback=null ) {
-               $this->filterCallback = $filterCallback;
-               $this->run( $file );
-       }
-       
-       /**
-        * Get the root element. Simple accessor to $rootElement
-        */
-       public function getRootElement() {
-               return $this->rootElement;
-       }
-
-       private function run( $fname ) {
-               $parser = xml_parser_create_ns( 'UTF-8' );
-
-               // case folding violates XML standard, turn it off
-               xml_parser_set_option( $parser, XML_OPTION_CASE_FOLDING, false );
-
-               xml_set_element_handler( $parser, array( $this, 'rootElementOpen' ), false );
-
-               $file = fopen( $fname, "rb" );
-               do {
-                       $chunk = fread( $file, 32768 );
-                       $ret = xml_parse( $parser, $chunk, feof( $file ) );
-                       if( $ret == 0 ) {
-                               // XML isn't well-formed!
-                               fclose( $file );
-                               xml_parser_free( $parser );
-                               return;
-                       }
-               } while( !feof( $file ) );
-
-               $this->wellFormed = true;
-
-               fclose( $file );
-               xml_parser_free( $parser );
-       }
-
-       private function rootElementOpen( $parser, $name, $attribs ) {
-               $this->rootElement = $name;
-               
-               if( is_callable( $this->filterCallback ) ) {
-                       xml_set_element_handler( $parser, array( $this, 'elementOpen' ), false );
-                       $this->elementOpen( $parser, $name, $attribs );
-               } else {
-                       // We only need the first open element
-                       xml_set_element_handler( $parser, false, false );
-               }
-       }
-       
-       private function elementOpen( $parser, $name, $attribs ) {
-               if( call_user_func( $this->filterCallback, $name, $attribs ) ) {
-                       // Filter hit!
-                       $this->filterMatch = true;
-               }
-       }
-}