protected WXSSchema nouveauSchemaInclu( final URL urlSchemaParent, final String schemaLocation, final String espaceImport, final WXSSchema schemaParent) throws JaxeException { try { final URL urls = resoudreURI(getURLParent(urlSchemaParent), schemaLocation); if (urls == null) throw new JaxeException("include/import : location not found : " + schemaLocation); for (WXSSchema schemaInclu : schemasInclu) if (schemaInclu.getURL().toURI().normalize().equals(urls.toURI().normalize())) { ajouterEspaces( schemaInclu, schemaParent, espaceImport); // une chance de plus de trouver un pr?fixe return (schemaInclu); } final WXSSchema schemaInclu = new WXSSchema(lireDocument(urls), urls, this, schemaParent); ajouterEspaces(schemaInclu, schemaParent, espaceImport); schemasInclu.add(schemaInclu); schemaInclu.inclusions(); return (schemaInclu); } catch (final MalformedURLException ex) { throw new JaxeException("include/import : MalformedURLException: " + ex.getMessage(), ex); } catch (final URISyntaxException ex) { throw new JaxeException("include/import : URISyntaxException: " + ex.getMessage(), ex); } catch (final TransformerException ex) { throw new JaxeException("include/import : TransformerException: " + ex.getMessage(), ex); } }
public JaxeWXS(final URL schemaURL, final Config cfg) throws JaxeException { this.cfg = cfg; schemasInclu = new HashSet<WXSSchema>(); espaceVersPrefixe = new HashMap<String, String>(); schema = new WXSSchema(lireDocument(schemaURL), schemaURL, this, null); ajouterEspaces(schema, null, null); schemasInclu.add(schema); schema.inclusions(); lTousElements = new LinkedHashSet<WXSElement>(); for (final WXSSchema sch : schemasInclu) lTousElements.addAll(sch.listeTousElements()); for (final WXSSchema sch : schemasInclu) sch .resoudreReferences(); // WXSAny.resoudreReferences() a besoin de cet objet JaxeWXS, c'est // donc appel? plus tard hRefElementVersWXS = new HashMap<Element, WXSElement>(); hRefAttributVersWXS = new HashMap<Element, WXSAttribute>(); hNomVersWXS = new HashMap<String, ArrayList<WXSElement>>(); for (WXSElement element : lTousElements) { hRefElementVersWXS.put(element.getDOMElement(), element); if (element.getName() != null && element.getRef() == null) { ArrayList<WXSElement> listeWXS = hNomVersWXS.get(element.getName()); if (listeWXS == null) { listeWXS = new ArrayList<WXSElement>(); hNomVersWXS.put(element.getName(), listeWXS); } listeWXS.add(element); } } for (WXSElement element : lTousElements) { final ArrayList<WXSAttribute> attributs = element.listeAttributs(); if (attributs != null) { for (WXSAttribute attribut : attributs) hRefAttributVersWXS.put(attribut.getDOMElement(), attribut); } } }