You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@xmlbeans.apache.org by "McCann, Daniel B." <da...@gd-ais.com> on 2007/08/20 20:03:48 UTC

Xsi:type namespaces

Hi!
 
I'm writing an interface to Google KML files. I've been pretty
successful using XMLBeans for several months now, but I can't seem to
figure out why there is a difference in xsi:type namespaces if I am
starting from an existing document vs. building it through Java.
 
Is there a reason the "ns" prefix is left off of the second KML file?
 
<?xml version="1.0" encoding="UTF-8"?>
<ns:kml xmlns:ns="http://earth.google.com/kml/2.1">
  <ns:Feature xsi:type="ns:DocumentType"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ns:Feature xsi:type="ns:NetworkLinkType"/>
  </ns:Feature>
</ns:kml>
<?xml version="1.0" encoding="UTF-8"?>
<ns:kml xmlns:ns="http://earth.google.com/kml/2.1">
  <ns:Feature xsi:type="ns:DocumentType"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ns:Feature xsi:type="NetworkLinkType"/>
  </ns:Feature>
</ns:kml>
 
 
import com.google.earth.kml.DocumentType;
import com.google.earth.kml.FeatureType;
import com.google.earth.kml.KmlDocument;
import com.google.earth.kml.KmlType;
import com.google.earth.kml.NetworkLinkType;
 
import org.apache.xmlbeans.XmlOptions;
 
/**
 * @author Daniel.McCann
 */
public class KmlTest
{
 
    public static void main(String[] args)
    {
        try
        {
            DocumentType dt = DocumentType.Factory.newInstance();
            NetworkLinkType nt = NetworkLinkType.Factory.newInstance();
            dt.addChildFeature(nt);
            save(dt);
 
            System.out.println();
 
            KmlDocument d = KmlDocument.Factory
                    .parse("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
                            + "<kml
xmlns=\"http://earth.google.com/kml/2.1\">"
                            + "<Document></Document></kml>");
            nt = NetworkLinkType.Factory.newInstance();
            ((DocumentType)
d.getKml().getFeature()).addChildFeature(nt);
 
            save((DocumentType) d.getKml().getFeature());
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }
    }
 
    public static void save(FeatureType f) throws Exception
    {
        KmlDocument doc = KmlDocument.Factory.newInstance();
        KmlType kml = doc.addNewKml();
        kml.setFeature(f);
 
        XmlOptions xmlOptions = new XmlOptions();
        xmlOptions.setSavePrettyPrint();
        // xmlOptions.setUseDefaultNamespace();
        doc.save(System.out, xmlOptions);
    }
}
 
Thanks,
Dan
 
________________________________

Daniel McCann
General Dynamics Advanced Information Systems
(703) 835-1036

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: user-help@xmlbeans.apache.org