本文整理汇总了Java中com.sun.org.apache.xerces.internal.impl.xs.XSGrammarBucket.getGrammar方法的典型用法代码示例。如果您正苦于以下问题:Java XSGrammarBucket.getGrammar方法的具体用法?Java XSGrammarBucket.getGrammar怎么用?Java XSGrammarBucket.getGrammar使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.sun.org.apache.xerces.internal.impl.xs.XSGrammarBucket
的用法示例。
在下文中一共展示了XSGrammarBucket.getGrammar方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: checkNonSchemaAttributes
import com.sun.org.apache.xerces.internal.impl.xs.XSGrammarBucket; //导入方法依赖的package包/类
public void checkNonSchemaAttributes(XSGrammarBucket grammarBucket) {
// for all attributes
Iterator entries = fNonSchemaAttrs.entrySet().iterator();
XSAttributeDecl attrDecl;
while (entries.hasNext()) {
Map.Entry entry = (Map.Entry) entries.next();
// get name, uri, localpart
String attrRName = (String) entry.getKey();
String attrURI = attrRName.substring(0,attrRName.indexOf(','));
String attrLocal = attrRName.substring(attrRName.indexOf(',')+1);
// find associated grammar
SchemaGrammar sGrammar = grammarBucket.getGrammar(attrURI);
if (sGrammar == null) {
continue;
}
// and get the datatype validator, if there is one
attrDecl = sGrammar.getGlobalAttributeDecl(attrLocal);
if (attrDecl == null) {
continue;
}
XSSimpleType dv = (XSSimpleType)attrDecl.getTypeDefinition();
if (dv == null) {
continue;
}
// get all values appeared with this attribute name
Vector values = (Vector) entry.getValue();
String elName;
String attrName = (String)values.elementAt(0);
// for each of the values
int count = values.size();
for (int i = 1; i < count; i += 2) {
elName = (String)values.elementAt(i);
try {
// and validate it using the XSSimpleType
// REVISIT: what would be the proper validation context?
// guess we need to save that in the vectors too.
dv.validate((String)values.elementAt(i+1), null, null);
} catch(InvalidDatatypeValueException ide) {
reportSchemaError ("s4s-att-invalid-value",
new Object[] {elName, attrName, ide.getMessage()},
null);
}
}
}
}