Update doc

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@796268 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/ipojo/api/doc/apache-felix-ipojo-api_files/shBrushXml.js b/ipojo/api/doc/apache-felix-ipojo-api_files/shBrushXml.js
new file mode 100644
index 0000000..941ad57
--- /dev/null
+++ b/ipojo/api/doc/apache-felix-ipojo-api_files/shBrushXml.js
@@ -0,0 +1,61 @@
+dp.sh.Brushes.Xml = function()

+{

+	this.CssClass = 'dp-xml';

+}

+

+dp.sh.Brushes.Xml.prototype	= new dp.sh.Highlighter();

+dp.sh.Brushes.Xml.Aliases	= ['xml', 'xhtml', 'xslt', 'html', 'xhtml'];

+

+dp.sh.Brushes.Xml.prototype.ProcessRegexList = function()

+{

+	function push(array, value)

+	{

+		array[array.length] = value;

+	}

+	

+	/* If only there was a way to get index of a group within a match, the whole XML

+	   could be matched with the expression looking something like that:

+	

+	   (<!\[CDATA\[\s*.*\s*\]\]>)

+	   | (<!--\s*.*\s*?-->)

+	   | (<)*(\w+)*\s*(\w+)\s*=\s*(".*?"|'.*?'|\w+)(/*>)*

+	   | (</?)(.*?)(/?>)

+	*/

+	var index	= 0;

+	var match	= null;

+	var regex	= null;

+

+	// Match CDATA in the following format <![ ... [ ... ]]>

+	// <\!\[[\w\s]*?\[(.|\s)*?\]\]>

+	this.GetMatches(new RegExp('<\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\]>', 'gm'), 'cdata');

+	

+	// Match comments

+	// <!--\s*.*\s*?-->

+	this.GetMatches(new RegExp('<!--\\s*.*\\s*?-->', 'gm'), 'comments');

+

+	// Match attributes and their values

+	// (\w+)\s*=\s*(".*?"|\'.*?\'|\w+)*

+	regex = new RegExp('([\\w-\.]+)\\s*=\\s*(".*?"|\'.*?\'|\\w+)*', 'gm');

+	while((match = regex.exec(this.code)) != null)

+	{

+		push(this.matches, new dp.sh.Match(match[1], match.index, 'attribute'));

+	

+		// if xml is invalid and attribute has no property value, ignore it	

+		if(match[2] != undefined)

+		{

+			push(this.matches, new dp.sh.Match(match[2], match.index + match[0].indexOf(match[2]), 'attribute-value'));

+		}

+	}

+

+	// Match opening and closing tag brackets

+	// </*\?*(?!\!)|/*\?*>

+	this.GetMatches(new RegExp('</*\\?*(?!\\!)|/*\\?*>', 'gm'), 'tag');

+

+	// Match tag names

+	// </*\?*\s*(\w+)

+	regex = new RegExp('</*\\?*\\s*([\\w-\.]+)', 'gm');

+	while((match = regex.exec(this.code)) != null)

+	{

+		push(this.matches, new dp.sh.Match(match[1], match.index + match[0].indexOf(match[1]), 'tag-name'));

+	}

+}