/*
* @(#)$Id: IncludeGrammarState.java,v 1.4 2002/03/04 02:15:48 kk122374 Exp $
*
* Copyright 2001 Sun Microsystems, Inc. All Rights Reserved.
*
* This software is the proprietary information of Sun Microsystems, Inc.
* Use is subject to license terms.
*
*/
package com.sun.msv.relaxns.reader;
import com.sun.msv.reader.AbortException;
import com.sun.msv.reader.ChildlessState;
/**
* parses <include> element of RELAX Namespace.
*
* @author <a href="mailto:kohsuke.kawaguchi@eng.sun.com">Kohsuke KAWAGUCHI</a>
*/
public class IncludeGrammarState extends ChildlessState
{
protected void startSelf()
{
super.startSelf();
final String href = startTag.getAttribute("grammarLocation");
if(href==null) {
// name attribute is required.
reader.reportError( reader.ERR_MISSING_ATTRIBUTE,
"include","grammarLocation");
// recover by ignoring this include element
} else
try {
reader.switchSource(this,href,new RootGrammarMergeState());
} catch( AbortException e ) {
// recover by ignoring this include element
}
}
}