// brush: “xml” aliases: []
// This file is part of the “jQuery.Syntax” project, and is distributed under the MIT License. // Copyright © 2011 Samuel G. D. Williams. <www.oriontransfer.co.nz> // See <jquery.syntax.js> for licensing details.
Syntax.lib.xmlEntity = {pattern: /&w+;/g, klass: 'entity'}; Syntax.lib.xmlPercentEscape = {pattern: /(%[0-9a-f]{2})/gi, klass: 'percent-escape', only: ['string']};
Syntax.register('xml-tag', function(brush) {
brush.push({ pattern: /<\/?((?:[^:\s>]+:)?)([^\s>]+)(\s[^>]*)?\/?>/g, matches: Syntax.extractMatches({klass: 'namespace'}, {klass: 'tag-name'}) }); brush.push({ pattern: /([^=\s]+)=(".*?"|'.*?'|[^\s>]+)/g, matches: Syntax.extractMatches({klass: 'attribute', only: ['tag']}, {klass: 'string', only: ['tag']}) }); brush.push(Syntax.lib.xmlEntity); brush.push(Syntax.lib.xmlPercentEscape); brush.push(Syntax.lib.singleQuotedString); brush.push(Syntax.lib.doubleQuotedString);
});
Syntax.register('xml', function(brush) {
brush.push({ pattern: /(<!(\[CDATA\[)([\s\S]*?)(\]\])>)/gm, matches: Syntax.extractMatches( {klass: 'cdata', allow: ['cdata-content', 'cdata-tag']}, {klass: 'cdata-tag'}, {klass: 'cdata-content'}, {klass: 'cdata-tag'} ) }); brush.push(Syntax.lib.xmlComment); brush.push({ pattern: /<[^>\-\s]([^>'"!\/;\?@\[\]^`\{\}\|]|"[^"]*"|'[^']')*[\/?]?>/g, brush: 'xml-tag' }); brush.push(Syntax.lib.xmlEntity); brush.push(Syntax.lib.xmlPercentEscape); brush.push(Syntax.lib.webLink);
});