1 /*
2  * reserved comment block
3  * DO NOT REMOVE OR ALTER!
4  */
5 /*
6  * Licensed to the Apache Software Foundation (ASF) under one or more
7  * contributor license agreements.  See the NOTICE file distributed with
8  * this work for additional information regarding copyright ownership.
9  * The ASF licenses this file to You under the Apache License, Version 2.0
10  * (the "License"); you may not use this file except in compliance with
11  * the License.  You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  */
21 
22 package com.sun.org.apache.xerces.internal.parsers;
23 
24 import com.sun.org.apache.xerces.internal.xni.Augmentations;
25 import com.sun.org.apache.xerces.internal.xni.NamespaceContext;
26 import com.sun.org.apache.xerces.internal.xni.QName;
27 import com.sun.org.apache.xerces.internal.xni.XMLAttributes;
28 import com.sun.org.apache.xerces.internal.xni.XMLDTDContentModelHandler;
29 import com.sun.org.apache.xerces.internal.xni.XMLDTDHandler;
30 import com.sun.org.apache.xerces.internal.xni.XMLDocumentHandler;
31 import com.sun.org.apache.xerces.internal.xni.XMLLocator;
32 import com.sun.org.apache.xerces.internal.xni.XMLResourceIdentifier;
33 import com.sun.org.apache.xerces.internal.xni.XMLString;
34 import com.sun.org.apache.xerces.internal.xni.XNIException;
35 import com.sun.org.apache.xerces.internal.xni.parser.XMLDTDContentModelSource;
36 import com.sun.org.apache.xerces.internal.xni.parser.XMLDTDSource;
37 import com.sun.org.apache.xerces.internal.xni.parser.XMLDocumentSource;
38 import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration;
39 
40 /**
41  * This is the base class for all XML document parsers. XMLDocumentParser
42  * provides a common implementation shared by the various document parsers
43  * in the Xerces package. While this class is provided for convenience, it
44  * does not prevent other kinds of parsers to be constructed using the XNI
45  * interfaces.
46  *
47  * @author Arnaud  Le Hors, IBM
48  * @author Andy Clark, IBM
49  *
50  */
51 public abstract class AbstractXMLDocumentParser
52     extends XMLParser
53     implements XMLDocumentHandler, XMLDTDHandler, XMLDTDContentModelHandler {
54 
55     //
56     // Data
57     //
58 
59     // state
60 
61     /** True if inside DTD. */
62     protected boolean fInDTD;
63 
64     /** Document source*/
65     protected XMLDocumentSource fDocumentSource;
66 
67     /** DTD source*/
68     protected XMLDTDSource fDTDSource;
69 
70     /** DTD content model source*/
71     protected XMLDTDContentModelSource fDTDContentModelSource;
72 
73     //
74     // Constructors
75     //
76 
77     /**
78      * Constructs a document parser using the default symbol table
79      * and grammar pool.
80      */
AbstractXMLDocumentParser(XMLParserConfiguration config)81     protected AbstractXMLDocumentParser(XMLParserConfiguration config) {
82         super(config);
83 
84         // set handlers
85         config.setDocumentHandler(this);
86         config.setDTDHandler(this);
87         config.setDTDContentModelHandler(this);
88 
89     } // <init>(XMLParserConfiguration)
90 
91     //
92     // XMLDocumentHandler methods
93     //
94 
95     /**
96      * The start of the document.
97      *
98      * @param locator The system identifier of the entity if the entity
99      *                 is external, null otherwise.
100      * @param encoding The auto-detected IANA encoding name of the entity
101      *                 stream. This value will be null in those situations
102      *                 where the entity encoding is not auto-detected (e.g.
103      *                 internal entities or a document entity that is
104      *                 parsed from a java.io.Reader).
105      * @param namespaceContext
106      *                 The namespace context in effect at the
107      *                 start of this document.
108      *                 This object represents the current context.
109      *                 Implementors of this class are responsible
110      *                 for copying the namespace bindings from the
111      *                 the current context (and its parent contexts)
112      *                 if that information is important.
113      * @param augs   Additional information that may include infoset augmentations
114      *
115      * @throws XNIException Thrown by handler to signal an error.
116      */
117 
startDocument(XMLLocator locator, String encoding, NamespaceContext namespaceContext, Augmentations augs)118     public void startDocument(XMLLocator locator, String encoding,
119                               NamespaceContext namespaceContext, Augmentations augs)
120         throws XNIException {
121     } // startDocument(XMLLocator,String)
122 
123     /**
124      * Notifies of the presence of an XMLDecl line in the document. If
125      * present, this method will be called immediately following the
126      * startDocument call.
127      *
128      * @param version    The XML version.
129      * @param encoding   The IANA encoding name of the document, or null if
130      *                   not specified.
131      * @param standalone The standalone value, or null if not specified.
132      * @param augs   Additional information that may include infoset augmentations
133      *
134      * @throws XNIException Thrown by handler to signal an error.
135      */
xmlDecl(String version, String encoding, String standalone, Augmentations augs)136     public void xmlDecl(String version, String encoding, String standalone, Augmentations augs)
137         throws XNIException {
138     } // xmlDecl(String,String,String)
139 
140     /**
141      * Notifies of the presence of the DOCTYPE line in the document.
142      *
143      * @param rootElement The name of the root element.
144      * @param publicId    The public identifier if an external DTD or null
145      *                    if the external DTD is specified using SYSTEM.
146      * @param systemId    The system identifier if an external DTD, null
147      * @param augs   Additional information that may include infoset augmentations
148      *                    otherwise.
149      *
150      * @throws XNIException Thrown by handler to signal an error.
151      */
doctypeDecl(String rootElement, String publicId, String systemId, Augmentations augs)152     public void doctypeDecl(String rootElement, String publicId, String systemId, Augmentations augs)
153         throws XNIException {
154     } // doctypeDecl(String,String,String)
155 
156     /**
157      * The start of an element. If the document specifies the start element
158      * by using an empty tag, then the startElement method will immediately
159      * be followed by the endElement method, with no intervening methods.
160      *
161      * @param element    The name of the element.
162      * @param attributes The element attributes.
163      * @param augs   Additional information that may include infoset augmentations
164      *
165      * @throws XNIException Thrown by handler to signal an error.
166      */
startElement(QName element, XMLAttributes attributes, Augmentations augs)167     public void startElement(QName element, XMLAttributes attributes, Augmentations augs)
168         throws XNIException {
169     } // startElement(QName,XMLAttributes)
170 
171     /**
172      * An empty element.
173      *
174      * @param element    The name of the element.
175      * @param attributes The element attributes.
176      * @param augs   Additional information that may include infoset augmentations
177      *
178      * @throws XNIException Thrown by handler to signal an error.
179      */
emptyElement(QName element, XMLAttributes attributes, Augmentations augs)180     public void emptyElement(QName element, XMLAttributes attributes, Augmentations augs)
181         throws XNIException {
182 
183         startElement(element, attributes, augs);
184         endElement(element, augs);
185 
186     } // emptyElement(QName,XMLAttributes)
187 
188     /**
189      * Character content.
190      *
191      * @param text The content.
192      * @param augs   Additional information that may include infoset augmentations
193      *
194      * @throws XNIException Thrown by handler to signal an error.
195      */
characters(XMLString text, Augmentations augs)196     public void characters(XMLString text, Augmentations augs) throws XNIException {
197     } // characters(XMLString)
198 
199     /**
200      * Ignorable whitespace. For this method to be called, the document
201      * source must have some way of determining that the text containing
202      * only whitespace characters should be considered ignorable. For
203      * example, the validator can determine if a length of whitespace
204      * characters in the document are ignorable based on the element
205      * content model.
206      *
207      * @param text The ignorable whitespace.
208      * @param augs   Additional information that may include infoset augmentations
209      *
210      * @throws XNIException Thrown by handler to signal an error.
211      */
ignorableWhitespace(XMLString text, Augmentations augs)212     public void ignorableWhitespace(XMLString text, Augmentations augs) throws XNIException {
213     } // ignorableWhitespace(XMLString)
214 
215     /**
216      * The end of an element.
217      *
218      * @param element The name of the element.
219      * @param augs   Additional information that may include infoset augmentations
220      *
221      * @throws XNIException Thrown by handler to signal an error.
222      */
endElement(QName element, Augmentations augs)223     public void endElement(QName element, Augmentations augs) throws XNIException {
224     } // endElement(QName)
225 
226     /**
227      * The start of a CDATA section.
228      * @param augs   Additional information that may include infoset augmentations
229      *
230      * @throws XNIException Thrown by handler to signal an error.
231      */
startCDATA(Augmentations augs)232     public void startCDATA(Augmentations augs) throws XNIException {
233     } // startCDATA()
234 
235     /**
236      * The end of a CDATA section.
237      * @param augs   Additional information that may include infoset augmentations
238      *
239      * @throws XNIException Thrown by handler to signal an error.
240      */
endCDATA(Augmentations augs)241     public void endCDATA(Augmentations augs) throws XNIException {
242     } // endCDATA()
243 
244     /**
245      * The end of the document.
246      * @param augs   Additional information that may include infoset augmentations
247      *
248      * @throws XNIException Thrown by handler to signal an error.
249      */
endDocument(Augmentations augs)250     public void endDocument(Augmentations augs) throws XNIException {
251     } // endDocument()
252 
253 
254     /**
255      * This method notifies the start of an entity.
256      * <p>
257      * <strong>Note:</strong> This method is not called for entity references
258      * appearing as part of attribute values.
259      *
260      * @param name     The name of the entity.
261      * @param identifier The resource identifier.
262      * @param encoding The auto-detected IANA encoding name of the entity
263      *                 stream. This value will be null in those situations
264      *                 where the entity encoding is not auto-detected (e.g.
265      *                 internal entities or a document entity that is
266      *                 parsed from a java.io.Reader).
267      * @param augs     Additional information that may include infoset augmentations
268      *
269      * @exception XNIException Thrown by handler to signal an error.
270      */
startGeneralEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs)271     public void startGeneralEntity(String name,
272                                    XMLResourceIdentifier identifier,
273                                    String encoding,
274                                    Augmentations augs) throws XNIException {
275     } // startGeneralEntity(String,XMLResourceIdentifier,String,Augmentations)
276 
277     /**
278      * Notifies of the presence of a TextDecl line in an entity. If present,
279      * this method will be called immediately following the startEntity call.
280      * <p>
281      * <strong>Note:</strong> This method will never be called for the
282      * document entity; it is only called for external general entities
283      * referenced in document content.
284      * <p>
285      * <strong>Note:</strong> This method is not called for entity references
286      * appearing as part of attribute values.
287      *
288      * @param version  The XML version, or null if not specified.
289      * @param encoding The IANA encoding name of the entity.
290      * @param augs     Additional information that may include infoset augmentations
291      *
292      * @exception XNIException
293      *                   Thrown by handler to signal an error.
294      */
textDecl(String version, String encoding, Augmentations augs)295     public void textDecl(String version, String encoding, Augmentations augs) throws XNIException {
296     } // textDecl(String, String, Augmentations)
297 
298     /**
299      * This method notifies the end of an entity.
300      * <p>
301      * <strong>Note:</strong> This method is not called for entity references
302      * appearing as part of attribute values.
303      *
304      * @param name   The name of the entity.
305      * @param augs   Additional information that may include infoset augmentations
306      *
307      * @exception XNIException
308      *                   Thrown by handler to signal an error.
309      */
endGeneralEntity(String name, Augmentations augs)310     public void endGeneralEntity(String name, Augmentations augs)
311         throws XNIException {
312     } // endGeneralEntity(String,Augmentations)
313 
314     /**
315      * A comment.
316      *
317      * @param text   The text in the comment.
318      * @param augs   Additional information that may include infoset augmentations
319      *
320      * @exception XNIException
321      *                   Thrown by application to signal an error.
322      */
comment(XMLString text, Augmentations augs)323     public void comment(XMLString text, Augmentations augs) throws XNIException {
324     } // comment (XMLString, Augmentations)
325 
326     /**
327      * A processing instruction. Processing instructions consist of a
328      * target name and, optionally, text data. The data is only meaningful
329      * to the application.
330      * <p>
331      * Typically, a processing instruction's data will contain a series
332      * of pseudo-attributes. These pseudo-attributes follow the form of
333      * element attributes but are <strong>not</strong> parsed or presented
334      * to the application as anything other than text. The application is
335      * responsible for parsing the data.
336      *
337      * @param target The target.
338      * @param data   The data or null if none specified.
339      * @param augs   Additional information that may include infoset augmentations
340      *
341      * @exception XNIException
342      *                   Thrown by handler to signal an error.
343      */
processingInstruction(String target, XMLString data, Augmentations augs)344     public void processingInstruction(String target, XMLString data, Augmentations augs)
345         throws XNIException {
346     } // processingInstruction(String, XMLString, Augmentations)
347 
348 
349     /** Sets the document source */
setDocumentSource(XMLDocumentSource source)350     public void setDocumentSource(XMLDocumentSource source){
351         fDocumentSource = source;
352     } // setDocumentSource
353 
354     /** Returns the document source */
getDocumentSource()355     public XMLDocumentSource getDocumentSource (){
356         return fDocumentSource;
357     } // getDocumentSource
358     //
359     // XMLDTDHandler methods
360     //
361 
362     /**
363      * The start of the DTD.
364      *
365      * @param locator  The document locator, or null if the document
366      *                 location cannot be reported during the parsing of
367      *                 the document DTD. However, it is <em>strongly</em>
368      *                 recommended that a locator be supplied that can
369      *                 at least report the base system identifier of the
370      *                 DTD.
371      * @param augs Additional information that may include infoset
372      *                      augmentations.
373      *
374      * @throws XNIException Thrown by handler to signal an error.
375      */
startDTD(XMLLocator locator, Augmentations augs)376     public void startDTD(XMLLocator locator, Augmentations augs) throws XNIException {
377         fInDTD = true;
378     } // startDTD(XMLLocator)
379 
380 
381     /**
382      * The start of the DTD external subset.
383      *
384      * @param augmentations Additional information that may include infoset
385      *                      augmentations.
386      *
387      * @throws XNIException Thrown by handler to signal an error.
388      */
startExternalSubset(XMLResourceIdentifier identifier, Augmentations augmentations)389     public void startExternalSubset(XMLResourceIdentifier identifier, Augmentations augmentations)
390         throws XNIException {
391     } // startExternalSubset(Augmentations)
392 
393     /**
394      * The end of the DTD external subset.
395      *
396      * @param augmentations Additional information that may include infoset
397      *                      augmentations.
398      *
399      * @throws XNIException Thrown by handler to signal an error.
400      */
endExternalSubset(Augmentations augmentations)401     public void endExternalSubset(Augmentations augmentations)
402         throws XNIException {
403     } // endExternalSubset(Augmentations)
404 
405     /**
406      * This method notifies the start of an entity.
407      * <p>
408      * <strong>Note:</strong> This method is not called for entity references
409      * appearing as part of attribute values.
410      *
411      * @param name     The name of the entity.
412      * @param identifier The resource identifier.
413      * @param encoding The auto-detected IANA encoding name of the entity
414      *                 stream. This value will be null in those situations
415      *                 where the entity encoding is not auto-detected (e.g.
416      *                 internal entities or a document entity that is
417      *                 parsed from a java.io.Reader).
418      * @param augs     Additional information that may include infoset augmentations
419      *
420      * @exception XNIException Thrown by handler to signal an error.
421      */
startParameterEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs)422     public void startParameterEntity(String name,
423                                      XMLResourceIdentifier identifier,
424                                      String encoding,
425                                      Augmentations augs) throws XNIException {
426     } // startParameterEntity(String,XMLResourceIdentifier,String,Augmentations)
427 
428     /**
429      * This method notifies the end of an entity.
430      * <p>
431      * <strong>Note:</strong> This method is not called for entity references
432      * appearing as part of attribute values.
433      *
434      * @param name   The name of the entity.
435      * @param augs   Additional information that may include infoset augmentations
436      *
437      * @exception XNIException
438      *                   Thrown by handler to signal an error.
439      */
endParameterEntity(String name, Augmentations augs)440     public void endParameterEntity(String name, Augmentations augs)
441         throws XNIException {
442     } // endParameterEntity(String,Augmentations)
443 
444     /**
445      * Characters within an IGNORE conditional section.
446      *
447      * @param text The ignored text.
448      * @param augs Additional information that may include infoset
449      *                      augmentations.
450      *
451      * @throws XNIException Thrown by handler to signal an error.
452      */
ignoredCharacters(XMLString text, Augmentations augs)453      public void ignoredCharacters(XMLString text, Augmentations augs) throws XNIException {
454      } // ignoredCharacters(XMLString, Augmentations)
455 
456     /**
457      * An element declaration.
458      *
459      * @param name         The name of the element.
460      * @param contentModel The element content model.
461      * @param augs Additional information that may include infoset
462      *                      augmentations.
463      *
464      * @throws XNIException Thrown by handler to signal an error.
465      */
elementDecl(String name, String contentModel, Augmentations augs)466     public void elementDecl(String name, String contentModel, Augmentations augs)
467         throws XNIException {
468     } // elementDecl(String,String)
469 
470     /**
471      * The start of an attribute list.
472      *
473      * @param elementName The name of the element that this attribute
474      *                    list is associated with.
475      * @param augs Additional information that may include infoset
476      *                      augmentations.
477      *
478      * @throws XNIException Thrown by handler to signal an error.
479      */
startAttlist(String elementName, Augmentations augs)480     public void startAttlist(String elementName, Augmentations augs) throws XNIException {
481     } // startAttlist(String)
482 
483     /**
484      * An attribute declaration.
485      *
486      * @param elementName   The name of the element that this attribute
487      *                      is associated with.
488      * @param attributeName The name of the attribute.
489      * @param type          The attribute type. This value will be one of
490      *                      the following: "CDATA", "ENTITY", "ENTITIES",
491      *                      "ENUMERATION", "ID", "IDREF", "IDREFS",
492      *                      "NMTOKEN", "NMTOKENS", or "NOTATION".
493      * @param enumeration   If the type has the value "ENUMERATION" or
494      *                      "NOTATION", this array holds the allowed attribute
495      *                      values; otherwise, this array is null.
496      * @param defaultType   The attribute default type. This value will be
497      *                      one of the following: "#FIXED", "#IMPLIED",
498      *                      "#REQUIRED", or null.
499      * @param defaultValue  The attribute default value, or null if no
500      *                      default value is specified.
501      * @param nonNormalizedDefaultValue  The attribute default value with no normalization
502      *                      performed, or null if no default value is specified.
503      * @param augs Additional information that may include infoset
504      *                      augmentations.
505      *
506      * @throws XNIException Thrown by handler to signal an error.
507      */
attributeDecl(String elementName, String attributeName, String type, String[] enumeration, String defaultType, XMLString defaultValue, XMLString nonNormalizedDefaultValue, Augmentations augs)508     public void attributeDecl(String elementName, String attributeName,
509                               String type, String[] enumeration,
510                               String defaultType, XMLString defaultValue,
511                               XMLString nonNormalizedDefaultValue, Augmentations augs)
512         throws XNIException {
513     } // attributeDecl(String,String,String,String[],String,XMLString, XMLString, Augmentations)
514 
515     /**
516      * The end of an attribute list.
517      *
518      * @param augs Additional information that may include infoset
519      *                      augmentations.
520      *
521      * @throws XNIException Thrown by handler to signal an error.
522      */
endAttlist(Augmentations augs)523     public void endAttlist(Augmentations augs) throws XNIException {
524     } // endAttlist()
525 
526     /**
527      * An internal entity declaration.
528      *
529      * @param name The name of the entity. Parameter entity names start with
530      *             '%', whereas the name of a general entity is just the
531      *             entity name.
532      * @param text The value of the entity.
533      * @param nonNormalizedText The non-normalized value of the entity. This
534      *             value contains the same sequence of characters that was in
535      *             the internal entity declaration, without any entity
536      *             references expanded.
537      * @param augs Additional information that may include infoset
538      *                      augmentations.
539      *
540      * @throws XNIException Thrown by handler to signal an error.
541      */
internalEntityDecl(String name, XMLString text, XMLString nonNormalizedText, Augmentations augs)542     public void internalEntityDecl(String name, XMLString text,
543                                    XMLString nonNormalizedText, Augmentations augs)
544         throws XNIException {
545     } // internalEntityDecl(String,XMLString,XMLString)
546 
547     /**
548      * An external entity declaration.
549      *
550      * @param name     The name of the entity. Parameter entity names start
551      *                 with '%', whereas the name of a general entity is just
552      *                 the entity name.
553      * @param identifier    An object containing all location information
554      *                      pertinent to this entity.
555      * @param augs Additional information that may include infoset
556      *                      augmentations.
557      *
558      * @throws XNIException Thrown by handler to signal an error.
559      */
externalEntityDecl(String name, XMLResourceIdentifier identifier, Augmentations augs)560     public void externalEntityDecl(String name, XMLResourceIdentifier identifier,
561                                    Augmentations augs) throws XNIException {
562     } // externalEntityDecl(String,XMLResourceIdentifier, Augmentations)
563 
564     /**
565      * An unparsed entity declaration.
566      *
567      * @param name     The name of the entity.
568      * @param identifier    An object containing all location information
569      *                      pertinent to this entity.
570      * @param notation The name of the notation.
571      * @param augs Additional information that may include infoset
572      *                      augmentations.
573      *
574      * @throws XNIException Thrown by handler to signal an error.
575      */
unparsedEntityDecl(String name, XMLResourceIdentifier identifier, String notation, Augmentations augs)576     public void unparsedEntityDecl(String name, XMLResourceIdentifier identifier,
577                                    String notation, Augmentations augs) throws XNIException {
578     } // unparsedEntityDecl(String,XMLResourceIdentifier, String, Augmentations)
579 
580     /**
581      * A notation declaration
582      *
583      * @param name     The name of the notation.
584      * @param identifier    An object containing all location information
585      *                      pertinent to this notation.
586      * @param augs Additional information that may include infoset
587      *                      augmentations.
588      *
589      * @throws XNIException Thrown by handler to signal an error.
590      */
notationDecl(String name, XMLResourceIdentifier identifier, Augmentations augs)591     public void notationDecl(String name, XMLResourceIdentifier identifier,
592         Augmentations augs)
593         throws XNIException {
594     } // notationDecl(String,XMLResourceIdentifier, Augmentations)
595 
596     /**
597      * The start of a conditional section.
598      *
599      * @param type The type of the conditional section. This value will
600      *             either be CONDITIONAL_INCLUDE or CONDITIONAL_IGNORE.
601      * @param augs Additional information that may include infoset
602      *                      augmentations.
603      *
604      * @throws XNIException Thrown by handler to signal an error.
605      *
606      * @see #CONDITIONAL_INCLUDE
607      * @see #CONDITIONAL_IGNORE
608      */
startConditional(short type, Augmentations augs)609     public void startConditional(short type, Augmentations augs) throws XNIException  {
610     } // startConditional(short)
611 
612     /**
613      * The end of a conditional section.
614      *
615      * @param augs Additional information that may include infoset
616      *                      augmentations.
617      *
618      * @throws XNIException Thrown by handler to signal an error.
619      */
endConditional(Augmentations augs)620     public void endConditional(Augmentations augs) throws XNIException {
621     } // endConditional()
622 
623     /**
624      * The end of the DTD.
625      *
626      * @param augs Additional information that may include infoset
627      *                      augmentations.
628      *
629      * @throws XNIException Thrown by handler to signal an error.
630      */
endDTD(Augmentations augs)631     public void endDTD(Augmentations augs) throws XNIException {
632         fInDTD = false;
633     } // endDTD()
634 
635     // set the source of this handler
setDTDSource(XMLDTDSource source)636     public void setDTDSource(XMLDTDSource source) {
637         fDTDSource = source;
638     }
639 
640     // return the source from which this handler derives its events
getDTDSource()641     public XMLDTDSource getDTDSource() {
642         return fDTDSource;
643     }
644 
645     //
646     // XMLDTDContentModelHandler methods
647     //
648 
649     /**
650      * The start of a content model. Depending on the type of the content
651      * model, specific methods may be called between the call to the
652      * startContentModel method and the call to the endContentModel method.
653      *
654      * @param elementName The name of the element.
655      * @param augs Additional information that may include infoset
656      *                      augmentations.
657      *
658      * @throws XNIException Thrown by handler to signal an error.
659      */
startContentModel(String elementName, Augmentations augs)660     public void startContentModel(String elementName, Augmentations augs) throws XNIException {
661     } // startContentModel(String, Augmentations)
662 
663     /**
664      * A content model of ANY.
665      *
666      * @param augs Additional information that may include infoset
667      *                      augmentations.
668      *
669      * @throws XNIException Thrown by handler to signal an error.
670      *
671      * @see #empty
672      * @see #startGroup
673      */
any(Augmentations augs)674     public void any(Augmentations augs) throws XNIException {
675     } // any(Augmentations)
676 
677     /**
678      * A content model of EMPTY.
679      *
680      * @param augs Additional information that may include infoset
681      *                      augmentations.
682      *
683      * @throws XNIException Thrown by handler to signal an error.
684      *
685      * @see #any
686      * @see #startGroup
687      */
empty(Augmentations augs)688     public void empty(Augmentations augs) throws XNIException {
689     } // empty(Augmentations)
690 
691     /**
692      * A start of either a mixed or children content model. A mixed
693      * content model will immediately be followed by a call to the
694      * <code>pcdata()</code> method. A children content model will
695      * contain additional groups and/or elements.
696      *
697      * @param augs Additional information that may include infoset
698      *                      augmentations.
699      *
700      * @throws XNIException Thrown by handler to signal an error.
701      *
702      * @see #any
703      * @see #empty
704      */
startGroup(Augmentations augs)705     public void startGroup(Augmentations augs) throws XNIException {
706     } // stargGroup(Augmentations)
707 
708     /**
709      * The appearance of "#PCDATA" within a group signifying a
710      * mixed content model. This method will be the first called
711      * following the content model's <code>startGroup()</code>.
712      *
713      * @param augs Additional information that may include infoset
714      *                      augmentations.
715      *
716      * @throws XNIException Thrown by handler to signal an error.
717      *
718      * @see #startGroup
719      */
pcdata(Augmentations augs)720     public void pcdata(Augmentations augs) throws XNIException {
721     } // pcdata(Augmentations)
722 
723     /**
724      * A referenced element in a mixed or children content model.
725      *
726      * @param elementName The name of the referenced element.
727      * @param augs Additional information that may include infoset
728      *                      augmentations.
729      *
730      * @throws XNIException Thrown by handler to signal an error.
731      */
element(String elementName, Augmentations augs)732     public void element(String elementName, Augmentations augs) throws XNIException {
733     } // element(String, Augmentations)
734 
735     /**
736      * The separator between choices or sequences of a mixed or children
737      * content model.
738      *
739      * @param separator The type of children separator.
740      * @param augs Additional information that may include infoset
741      *                      augmentations.
742      *
743      * @throws XNIException Thrown by handler to signal an error.
744      *
745      * @see #SEPARATOR_CHOICE
746      * @see #SEPARATOR_SEQUENCE
747      */
separator(short separator, Augmentations augs)748     public void separator(short separator, Augmentations augs) throws XNIException {
749     } // separator(short, Augmentations)
750 
751     /**
752      * The occurrence count for a child in a children content model or
753      * for the mixed content model group.
754      *
755      * @param occurrence The occurrence count for the last element
756      *                   or group.
757      * @param augs Additional information that may include infoset
758      *                      augmentations.
759      *
760      * @throws XNIException Thrown by handler to signal an error.
761      *
762      * @see #OCCURS_ZERO_OR_ONE
763      * @see #OCCURS_ZERO_OR_MORE
764      * @see #OCCURS_ONE_OR_MORE
765      */
occurrence(short occurrence, Augmentations augs)766     public void occurrence(short occurrence, Augmentations augs) throws XNIException {
767     } // occurence(short, Augmentations)
768 
769     /**
770      * The end of a group for mixed or children content models.
771      *
772      * @param augs Additional information that may include infoset
773      *                      augmentations.
774      *
775      * @throws XNIException Thrown by handler to signal an error.
776      */
endGroup(Augmentations augs)777     public void endGroup(Augmentations augs) throws XNIException {
778     } // endGroup(Augmentations)
779 
780     /**
781      * The end of a content model.
782      *
783      * @param augs Additional information that may include infoset
784      *                      augmentations.
785      *
786      * @throws XNIException Thrown by handler to signal an error.
787      */
endContentModel(Augmentations augs)788     public void endContentModel(Augmentations augs) throws XNIException {
789     } // endContentModel(Augmentations)
790 
791     // set content model source
setDTDContentModelSource(XMLDTDContentModelSource source)792     public void setDTDContentModelSource(XMLDTDContentModelSource source) {
793         fDTDContentModelSource = source;
794     }
795 
796     // get content model source
getDTDContentModelSource()797     public XMLDTDContentModelSource getDTDContentModelSource() {
798         return fDTDContentModelSource;
799     }
800 
801     //
802     // Protected methods
803     //
804 
805     /**
806      * reset all components before parsing
807      */
reset()808     protected void reset() throws XNIException {
809         super.reset();
810         fInDTD = false;
811     } // reset()
812 
813 } // class AbstractXMLDocumentParser
814