private void addGrammarComponents(SchemaGrammar srcGrammar, SchemaGrammar dstGrammar) { if (dstGrammar == null) { createGrammarFrom(srcGrammar); return; } SchemaGrammar tmpGrammar = dstGrammar; if (tmpGrammar.isImmutable()) { tmpGrammar = createGrammarFrom(dstGrammar); } // add any new locations addNewGrammarLocations(srcGrammar, tmpGrammar); // add any new imported grammars addNewImportedGrammars(srcGrammar, tmpGrammar); // add any new global components addNewGrammarComponents(srcGrammar, tmpGrammar); }
private SchemaGrammar getSchemaGrammar(XSDDescription desc) { SchemaGrammar sg = findGrammar(desc, fNamespaceGrowth); if (sg == null) { sg = new SchemaGrammar(desc.getNamespace(), desc.makeClone(), fSymbolTable); fGrammarBucket.putGrammar(sg); } else if (sg.isImmutable()){ sg = createGrammarFrom(sg); } return sg; }
private boolean isExistingGrammar(XSDDescription desc, boolean ignoreConflict) { SchemaGrammar sg = fGrammarBucket.getGrammar(desc.getTargetNamespace()); if (sg == null) { return findGrammar(desc, ignoreConflict) != null; } else if (sg.isImmutable()) { return true; } else { try { return sg.getDocumentLocations().contains(XMLEntityManager.expandSystemId(desc.getLiteralSystemId(), desc.getBaseSystemId(), false)); } catch (MalformedURIException e) { return false; } } }
if (sg2.isImmutable()) { sg = new SchemaGrammar(sg2); fGrammarBucket.putGrammar(sg);
return true; else if (sg.isImmutable()) { return false;