From: Adrien A. <ada...@gm...> - 2005-04-19 08:02:36
|
Hello, I made some GML reading/writing tests using the DocumentWriter class from org.geotools.xml . In that purpose I wrote a simple XML Schema file, city.xsd, as well as a simple "school case" GML file using this schema : city.xml. My piece of code simply reads from city.xml and writes into city_out.xml. Here is a snippet : //-------------------------- //file to parse //method for displaying a fileselection dialog: URL shapeURL =3D fileSelect("gml","GML File","D:\\taf\\city.xml"); URI u =3D shapeURL.toURI(); =09=09=09 GMLFeatureCollection doc =3D (GMLFeatureCollection)DocumentFactory.getInstance(u,null,Level.WARNING); if(doc=3D=3Dnull) =09System.out.println("Document missing"); =09=09=09 Schema s =3D SchemaFactory.getInstance(new URI("http://www.ukusa.org/app"))= ; =09=09=09 // **writing //file to write URL outURL =3D fileSelect("gml","GML File","D:\\taf\\city_out.xml"); File outf =3D new File(outURL.getPath()); if(outf.exists()) =09outf.delete(); outf.createNewFile(); =09=09=09 DocumentWriter.writeDocument(doc,s,outf,null); //------------------------- You'll find all the xml files attached to this mail. Here are my questions: First, where did the "app" namespace go? This is just a detail but anyway it would help if it were still here. More annoying, the gml:boundedBy element disappeared whereas it is needed for the document to validate correctly according to the specified Schema. And finally, the gml:polygonProperty element lost its "gml:" namespace indicator whereas all the other gml elements still have it. I don't understand this kind of discrimination against this poor polygonProperty element ;) I use the 2.1.M3 development release. I found that a simple modification in the WriterContentHandler class would partially answer my "app" namespace disappearing question : private static class WriterContentHandler implements PrintHandler { [...] WriterContentHandler(Schema schema, Writer writer, Map hints) { [...] prefixMappings =3D new HashMap(); prefixMappings.put(schema.getTargetNamespace(), ""); //changing this last line in : //prefixMappings.put(schema.getTargetNamespace(), schema.getPrefix()); //partially solves the problem. [..] Could you help me with this please? --=20 Adrien ANSELME -------------- Etudiant en G=E9nie Informatique =E0 l'UTC http://www.utc.fr page professionnelle (cv): http://wwwetu.utc.fr/~adanselm/ id jabber : aan...@am... |
From: David Z. <dav...@gm...> - 2005-04-29 01:41:14
|
Hmm, It sounds like a bug. I did not extensively test that code as I was not required for the project I was working on. Unfortunately, I am also really busy with another XML parsing framework, so won't have a chance too look into it for a bit yet. David On 4/19/05, Adrien Anselme <ada...@gm...> wrote: > Hello, >=20 > I made some GML reading/writing tests using the DocumentWriter class > from org.geotools.xml . >=20 > In that purpose I wrote a simple XML Schema file, city.xsd, as well as > a simple "school case" GML file using this schema : city.xml. >=20 > My piece of code simply reads from city.xml and writes into > city_out.xml. Here is a snippet : >=20 > //-------------------------- > //file to parse > //method for displaying a fileselection dialog: > URL shapeURL =3D fileSelect("gml","GML File","D:\\taf\\city.xml"); > URI u =3D shapeURL.toURI(); >=20 > GMLFeatureCollection doc =3D > (GMLFeatureCollection)DocumentFactory.getInstance(u,null,Level.WARNING); > if(doc=3D=3Dnull) > System.out.println("Document missing"); >=20 > Schema s =3D SchemaFactory.getInstance(new URI("http://www.ukusa.org/app"= )); >=20 > // **writing > //file to write > URL outURL =3D fileSelect("gml","GML File","D:\\taf\\city_out.xml"); > File outf =3D new File(outURL.getPath()); > if(outf.exists()) > outf.delete(); > outf.createNewFile(); >=20 > DocumentWriter.writeDocument(doc,s,outf,null); > //------------------------- >=20 > You'll find all the xml files attached to this mail. >=20 > Here are my questions: >=20 > First, where did the "app" namespace go? This is just a detail but > anyway it would help if it were still here. >=20 > More annoying, the gml:boundedBy element disappeared whereas it is > needed for the document to validate correctly according to the > specified Schema. >=20 > And finally, the gml:polygonProperty element lost its "gml:" namespace > indicator whereas all the other gml elements still have it. I don't > understand this kind of discrimination against this poor > polygonProperty element ;) >=20 > I use the 2.1.M3 development release. >=20 > I found that a simple modification in the WriterContentHandler class > would partially answer my "app" namespace disappearing question : >=20 > private static class WriterContentHandler implements PrintHandler { >=20 > [...] >=20 > WriterContentHandler(Schema schema, Writer writer, Map hints) { > [...] > prefixMappings =3D new HashMap(); > prefixMappings.put(schema.getTargetNamespace(), ""); > //changing this last line in : > //prefixMappings.put(schema.getTargetNamespace(), schema.getPrefix()); > //partially solves the problem. >=20 > [..] >=20 > Could you help me with this please? >=20 > -- > Adrien ANSELME > -------------- > Etudiant en G=E9nie Informatique =E0 l'UTC > http://www.utc.fr >=20 > page professionnelle (cv): http://wwwetu.utc.fr/~adanselm/ > id jabber : aan...@am... >=20 >=20 > |