147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner/* 247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * Licensed to the Apache Software Foundation (ASF) under one 347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * or more contributor license agreements. See the NOTICE file 447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * distributed with this work for additional information 547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * regarding copyright ownership. The ASF licenses this file 647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * to you under the Apache License, Version 2.0 (the "License"); 747173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * you may not use this file except in compliance with the License. 847173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * You may obtain a copy of the License at 947173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * 1047173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * http://www.apache.org/licenses/LICENSE-2.0 1147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * 1247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * Unless required by applicable law or agreed to in writing, software 1347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * distributed under the License is distributed on an "AS IS" BASIS, 1447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * See the License for the specific language governing permissions and 1647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * limitations under the License. 1747173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner */ 1847173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner/* 1947173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * $Id: ProcessorAttributeSet.java 468640 2006-10-28 06:53:53Z minchau $ 2047173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner */ 2147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerpackage org.apache.xalan.processor; 2247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner 2347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerimport javax.xml.transform.TransformerException; 2447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner 2547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerimport org.apache.xalan.templates.ElemAttributeSet; 2647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerimport org.apache.xalan.templates.ElemTemplateElement; 2747173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner 2847173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerimport org.xml.sax.Attributes; 2947173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner 3047173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner/** 3147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * This class processes parse events for an xsl:attribute-set. 3247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @see <a href="http://www.w3.org/TR/xslt#dtd">XSLT DTD</a> 3347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @see <a href="http://www.w3.org/TR/xslt#attribute-sets">attribute-sets in XSLT Specification</a> 3447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner */ 3547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turnerclass ProcessorAttributeSet extends XSLTElementProcessor 3647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner{ 3747173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner static final long serialVersionUID = -6473739251316787552L; 3847173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner 3947173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner /** 4047173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * Receive notification of the start of an xsl:attribute-set element. 4147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * 4247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @param handler The calling StylesheetHandler/TemplatesBuilder. 4347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @param uri The Namespace URI, or the empty string if the 4447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * element has no Namespace URI or if Namespace 4547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * processing is not being performed. 4647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @param localName The local name (without prefix), or the 4747173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * empty string if Namespace processing is not being 4847173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * performed. 4947173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @param rawName The raw XML 1.0 name (with prefix), or the 5047173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * empty string if raw names are not available. 5147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @param attributes The attributes attached to the element. If 5247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * there are no attributes, it shall be an empty 5347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * Attributes object. 5447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * 5547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @see org.apache.xalan.processor.StylesheetHandler#startElement 5647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @see org.xml.sax.ContentHandler#startElement 5747173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @see org.xml.sax.ContentHandler#endElement 5847173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @see org.xml.sax.Attributes 5947173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner */ 6047173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner public void startElement( 6147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner StylesheetHandler handler, String uri, String localName, String rawName, Attributes attributes) 6247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner throws org.xml.sax.SAXException 6347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner { 6447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner 6547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner ElemAttributeSet eat = new ElemAttributeSet(); 6647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner 6747173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner eat.setLocaterInfo(handler.getLocator()); 6847173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner try 6947173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner { 7047173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner eat.setPrefixes(handler.getNamespaceSupport()); 7147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner } 7247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner catch(TransformerException te) 7347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner { 7447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner throw new org.xml.sax.SAXException(te); 7547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner } 7647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner 7747173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner eat.setDOMBackPointer(handler.getOriginatingNode()); 7847173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner setPropertiesFromAttributes(handler, rawName, attributes, eat); 7947173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner handler.getStylesheet().setAttributeSet(eat); 8047173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner 8147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner // handler.pushElemTemplateElement(eat); 8247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner ElemTemplateElement parent = handler.getElemTemplateElement(); 8347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner 8447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner parent.appendChild(eat); 8547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner handler.pushElemTemplateElement(eat); 8647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner } 8747173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner 8847173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner /** 8947173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * Receive notification of the end of an element. 9047173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * 9147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @param name The element type name. 9247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @param attributes The specified or defaulted attributes. 9347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * 9447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @param handler non-null reference to current StylesheetHandler that is constructing the Templates. 9547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @param uri The Namespace URI, or an empty string. 9647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @param localName The local name (without prefix), or empty string if not namespace processing. 9747173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner * @param rawName The qualified name (with prefix). 9847173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner */ 9947173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner public void endElement( 10047173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner StylesheetHandler handler, String uri, String localName, String rawName) 10147173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner throws org.xml.sax.SAXException 10247173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner { 10347173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner handler.popElemTemplateElement(); 10447173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner } 10547173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner} 10647173c7d6704f1258b2d85537caa09185f6920c8David 'Digit' Turner