logo       

cvs: pear /XML_Transformer Transformer.php package.xml /XML_Transformer/Tr: msg#00676

php.cvs.pear

Subject: cvs: pear /XML_Transformer Transformer.php package.xml /XML_Transformer/Transformer Namespace.php /XML_Transformer/Transformer/Driver DocBook.php /XML_Transformer/Transformer/Namespace DocBook.php

sebastian Mon Sep 30 06:46:41 2002 EDT

Removed files:
/pear/XML_Transformer/Transformer/Driver DocBook.php

Modified files:
/pear/XML_Transformer Transformer.php package.xml
/pear/XML_Transformer/Transformer Namespace.php
/pear/XML_Transformer/Transformer/Namespace DocBook.php
Log:
Remove DocBook driver in favour of a more general solution to transformations
that require a second pass.


Index: pear/XML_Transformer/Transformer.php
diff -u pear/XML_Transformer/Transformer.php:1.103
pear/XML_Transformer/Transformer.php:1.104
--- pear/XML_Transformer/Transformer.php:1.103 Mon Sep 30 04:08:39 2002
+++ pear/XML_Transformer/Transformer.php Mon Sep 30 06:46:40 2002
@@ -13,7 +13,7 @@
// | license@xxxxxxx so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
//
-// $Id: Transformer.php,v 1.103 2002/09/30 08:08:39 sebastian Exp $
+// $Id: Transformer.php,v 1.104 2002/09/30 10:46:40 sebastian Exp $
//

require_once 'XML/Transformer/CallbackRegistry.php';
@@ -28,7 +28,7 @@
*
* @author Sebastian Bergmann <sb@xxxxxxxxxxxxxxxxxxxxx>
* @author Kristian Köhntopp <kris@xxxxxxxxxxxx>
-* @version $Revision: 1.103 $
+* @version $Revision: 1.104 $
* @access public
*/
class XML_Transformer {
@@ -120,6 +120,12 @@
*/
var $_lastProcessed = '';

+ /**
+ * @var boolean
+ * @access public
+ */
+ var $_secondPassRequired = false;
+
// }}}
// {{{ function XML_Transformer($parameters = array())

@@ -245,6 +251,10 @@
);

if ($result === true) {
+ if ($object->secondPassRequired) {
+ $this->_secondPassRequired = true;
+ }
+
// Call initObserver() on the object, if it exists.

if (method_exists($object, 'initObserver')) {
@@ -374,16 +384,6 @@
return $xml;
}

- // Clean up, if needed.
-
- if (!empty($this->_elementStack)) {
- $this->_attributesStack = array();
- $this->_cdataStack = array('');
- $this->_elementStack = array();
- $this->_level = 0;
- $this->_lastProcessed = '';
- }
-
// Create XML parser, set parser options.

$parser = xml_parser_create();
@@ -429,11 +429,33 @@
return '';
}

+ $result = $this->_cdataStack[0];
+
+ // Clean up.
+
xml_parser_free($parser);

+ $this->_attributesStack = array();
+ $this->_cdataStack = array('');
+ $this->_elementStack = array();
+ $this->_level = 0;
+ $this->_lastProcessed = '';
+
+ // Perform second transformation pass, if required.
+
+ $secondPassRequired = $this->_secondPassRequired;
+
+ if ($secondPassRequired) {
+ $this->_secondPassRequired = false;
+
+ $result = $this->transform($result);
+ }
+
+ $this->_secondPassRequired = $secondPassRequired;
+
// Return result of the transformation.

- return $this->_cdataStack[0];
+ return $result;
}

// }}}
Index: pear/XML_Transformer/package.xml
diff -u pear/XML_Transformer/package.xml:1.60
pear/XML_Transformer/package.xml:1.61
--- pear/XML_Transformer/package.xml:1.60 Mon Sep 30 04:09:51 2002
+++ pear/XML_Transformer/package.xml Mon Sep 30 06:46:40 2002
@@ -67,7 +67,6 @@
<dir name="Transformer">
<dir name="Driver">
<file role="php" name="Cache.php"/>
- <file role="php" name="DocBook.php"/>
<file role="php" name="OutputBuffer.php"/>
</dir>

Index: pear/XML_Transformer/Transformer/Namespace.php
diff -u pear/XML_Transformer/Transformer/Namespace.php:1.16
pear/XML_Transformer/Transformer/Namespace.php:1.17
--- pear/XML_Transformer/Transformer/Namespace.php:1.16 Sun Sep 29 06:27:59 2002
+++ pear/XML_Transformer/Transformer/Namespace.php Mon Sep 30 06:46:41 2002
@@ -13,7 +13,7 @@
// | license@xxxxxxx so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
//
-// $Id: Namespace.php,v 1.16 2002/09/29 10:27:59 sebastian Exp $
+// $Id: Namespace.php,v 1.17 2002/09/30 10:46:41 sebastian Exp $
//

require_once 'XML/Transformer/Util.php';
@@ -63,17 +63,23 @@
*
* @author Sebastian Bergmann <sb@xxxxxxxxxxxxxxxxxxxxx>
* @author Kristian Köhntopp <kris@xxxxxxxxxxxx>
-* @version $Revision: 1.16 $
+* @version $Revision: 1.17 $
* @access public
*/
class XML_Transformer_Namespace {
// {{{ Members

/**
- * @var boolean
+ * @var string
* @access public
*/
var $defaultNamespacePrefix = '';
+
+ /**
+ * @var boolean
+ * @access public
+ */
+ var $secondPassRequired = false;

/**
* @var array
Index: pear/XML_Transformer/Transformer/Namespace/DocBook.php
diff -u pear/XML_Transformer/Transformer/Namespace/DocBook.php:1.17
pear/XML_Transformer/Transformer/Namespace/DocBook.php:1.18
--- pear/XML_Transformer/Transformer/Namespace/DocBook.php:1.17 Mon Sep 30
04:48:39 2002
+++ pear/XML_Transformer/Transformer/Namespace/DocBook.php Mon Sep 30
06:46:41 2002
@@ -13,7 +13,7 @@
// | license@xxxxxxx so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
//
-// $Id: DocBook.php,v 1.17 2002/09/30 08:48:39 sebastian Exp $
+// $Id: DocBook.php,v 1.18 2002/09/30 10:46:41 sebastian Exp $
//

require_once 'XML/Transformer/Namespace.php';
@@ -68,9 +68,83 @@
*
* * <xref>
*
+* Example
+*
+* <?php
+* require_once 'XML/Transformer/Driver/OutputBuffer.php';
+* $t = new XML_Transformer_Driver_OutputBuffer(
+* array(
+* 'autoload' => 'DocBook'
+* )
+* );
+* ?>
+* <article>
+* <artheader>
+* <title>
+* An Article
+* </title>
+* <author>
+* <firstname>
+* Sebastian
+* </firstname>
+* <surname>
+* Bergmann
+* </surname>
+* </author>
+* </artheader>
+*
+* <section id="foo">
+* <title>
+* Section One
+* </title>
+* </section>
+*
+* <section id="bar">
+* <title>
+* Section Two
+* </title>
+*
+* <para>
+* <xref linkend="foo" />
+* </para>
+* </section>
+* </article>
+*
+* Output
+*
+* <html>
+* <head>
+* <title>
+* Sebastian Bergmann: An Article
+* </title>
+* </head>
+* <body>
+* <h1 class="title">
+* Sebastian Bergmann: An Article
+* </h1>
+* <div class="section">
+* <a id="foo"></a>
+* <h2 class="title">
+* 1. Section One
+* </h2>
+* </div>
+* <div class="section">
+* <a id="bar"></a>
+* <h2 class="title">
+* 2. Section Two
+* </h2>
+* <p>
+* <a href="#foo">
+* 1. Section One
+* </a>
+* </p>
+* </div>
+* </body>
+* </html>
+*
* @author Sebastian Bergmann <sb@xxxxxxxxxxxxxxxxxxxxx>
* @author Kristian Köhntopp <kris@xxxxxxxxxxxx>
-* @version $Revision: 1.17 $
+* @version $Revision: 1.18 $
* @access public
*/
class XML_Transformer_Namespace_DocBook extends XML_Transformer_Namespace {
@@ -81,6 +155,12 @@
* @access public
*/
var $defaultNamespacePrefix = '&MAIN';
+
+ /**
+ * @var boolean
+ * @access public
+ */
+ var $secondPassRequired = true;

/**
* @var string



--
PEAR CVS Mailing List (http://pear.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise