Using XPath in Java bindings
So, before we get started on solving these issues in our Java binding, let's first clean up the namespaces in the project. Java namespaces are in the form com.mycompany.mylibrary
by default, so let's change the definition to match C# more closely. In the Transforms
directory of the project, open Metadata.xml
and add the following XML tag inside the root metadata node:
<attr path="/api/package[@name='com.google.analytics.tracking .android']" name="managedName">GoogleAnalytics.Tracking</attr>
The attr
node tells the Xamarin compiler what needs to be replaced, in the Java definition, with another value. In this case, we are replacing managedName
of the package with GoogleAnalytics.Tracking
because it will make much more sense in C#. The path value may look a bit strange, which is because it is using an XML matching query language named XPath. In general, just think of it as a pattern matching query for XML...