/* * @(#)$Id: RELAXNGGrammar.java,v 1.1 2001/09/14 22:04:20 Bear 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.grammar.relaxng; import com.sun.msv.grammar.ExpressionPool; import com.sun.msv.grammar.trex.TREXGrammar; import com.sun.msv.util.StringPair; import java.util.Map; import java.util.HashMap; /** * Grammar for RELAX NG (with DTD compatibility annotation). * * @author <a href="mailto:kohsuke.kawaguchi@eng.sun.com">Kohsuke KAWAGUCHI</a> */ public class RELAXNGGrammar extends TREXGrammar { public RELAXNGGrammar( ExpressionPool pool, TREXGrammar parentGrammar ) { super(pool,parentGrammar); } public RELAXNGGrammar( ExpressionPool pool ) { super(pool); } public RELAXNGGrammar() { super(); } /** * the compatibility property of the ID/IDREF feature. * * This flag is set to true if this schema is compatible in terms of * ID/IDREF, as defined in the spec. */ public boolean isIDcompatible = true; /** * the compatibility property of the default attribute feature. * * This flag is set to true if this schema is compatible in terms of * the default attribute value feature, as defined in the spec. * * <p> * Note that the currently we don't support infoset augmentation. */ public boolean isDefaultAttributeValueCompatible = true; /** * the compatibility property of the annotation feature. * * This flag is set to true if this schema is compatible in terms of * the annotation feature, as defined in the spec. */ public boolean isAnnotationCompatible = true; /* /** * add an entry to the default value table. * * @return * <b>false</b> if the default attribute value for this element and attribute * was already specified. <b>true</b> if this is the first time. */ /* public final boolean addDefaultValue( String elementNamespaceURI, String elementLocalName, String attributeNamespaceURI, String attributeLocalName, String value ) { if(defaultValues==null) defaultValues = new HashMap(); return defaultValues.put( new ElemAttrNamePair(elementNamespaceURI,elementLocalName,attributeNamespaceURI,attributeLocalName), value )==null; } /** * checks if this grammar has any attribute default value. */ /* public final boolean hasDefaultValue() { return defaultValues!=null && defaultValues.size()!=0; } /** * gets the list of defaultable attributes of the given element. * * @param (namespaceURI,localName) * this pair designates the name of the element. * * @return * if there is no defaultable attribute, it returns empty array. * this method never returns null. */ /* public final String[] getDefaultableAttributes( String namespaceURI, String localName ) { } // TODO: this can be implemented much efficiently, I guess. // map from NamePair (element name) to // (a map from NamePair (attribute name) to attribute value) private Map defaultValues; */ /* public static final int KEYTYPE_NONE =0; public static final int KEYTYPE_ID =1; public static final int KEYTYPE_IDREF =2; public final int getAttributeKeyType( String elementNamespaceURI, String elementLocalName, String attributeNamespaceURI, String attributeLocalName, String value ) { } */ }