MCPcopy Index your code
hub / github.com/Tickaroo/tikxml

github.com/Tickaroo/tikxml @0.8.15

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.8.15 ↗ · + Follow
1,767 symbols 6,981 edges 418 files 597 documented · 34%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Work in Progress

Please note that this is still work in progress!, although quite stable and used in production. Build Status

TikXML

A fast xml parser for android (and java)

implementation 'com.tickaroo.tikxml:annotation:0.8.13'
implementation 'com.tickaroo.tikxml:core:0.8.13'

annotationProcessor 'com.tickaroo.tikxml:processor:0.8.13'

For pure java project use this apt plugin

For koltin project (android or pure) use kotlin-kapt plugin and use kapt instead of annotationProcessor in dependencies section of build.gradle.

(NOTE: In IDEA for non-android project this won't run annotation processor if you didn't set project to delegate build to gradle)

For retrofit2:

implementation 'com.tickaroo.tikxml:retrofit-converter:0.8.13'

Also, an AutoValue extension is available:

annotationProcessor 'com.tickaroo.tikxml:auto-value-tikxml:0.8.13'

Latest snapshot 0.8.14-SNAPSHOT available:

repositories {
  mavenCentral()
  maven {
    url 'http://oss.sonatype.org/content/repositories/snapshots'
  }
}

Documentation

The documentation can be found here

Benchmark

We did benchmark on this early version of TikXml to compare field's results with other popular xml parsers like SimpleXml and Jackson. TikXml is working around 1,9 times faster than jackson and 4,3 times faster than SimpleXml by also having a low memory footprint: Benchmark

TikXml has been built on top of Okio and therefore is highly optimized for Retrofit2.

License

Copyright 2015 Tickaroo

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Releasing on Maven Central

If you are a Tickaroo employee and you want to release a new version on Maven Central, take a look at this document

Extension points exported contracts — how you extend this code

Writer (Interface)
@author Hannes Dorfmann [10 implementers]
annotationprocessortesting/src/main/java/com/tickaroo/tikxml/annotationprocessing/element/polymorphism/autovalue/Writer.java
TypeConverter (Interface)
With a type converter you can specify how to convert a String value to a concrete java object and vice versa. This can b [14 …
core/src/main/java/com/tickaroo/tikxml/TypeConverter.java
Writer (Interface)
* @author Hannes Dorfmann */ [8 implementers]
annotationprocessortesting-kt/src/main/java/com/tickaroo/tikxml/annotationprocessing/element/polymorphism/autovalue/Writer.kt
Java8AnnotatedElement (Interface)
* Tricky workaround since Java8 has introduced a new method called getAnnotationsByType() * which Java7 has not. Hence
processor/src/test/java/com/tickaroo/tikxml/processor/mock/MockClassElement.kt
Person (Interface)
@author Hannes Dorfmann [4 implementers]
annotationprocessortesting/src/main/java/com/tickaroo/tikxml/annotationprocessing/elementlist/polymorphism/autovalue/Person.java
AttributeBinder (Interface)
This binder is used with DelegatingTypeAdapter to delegate the work of reading and writing an xml attribute. @p [14 implementers]
core/src/main/java/com/tickaroo/tikxml/typeadapter/AttributeBinder.java
Person (Interface)
* @author Hannes Dorfmann */
annotationprocessortesting-kt/src/main/java/com/tickaroo/tikxml/annotationprocessing/elementlist/polymorphism/Person.kt
XmlChildElement (Interface)
* * @author Hannes Dorfmann */
processor/src/main/java/com/tickaroo/tikxml/processor/xml/XmlChildElement.kt

Core symbols most depended-on inside this repo

read
called by 289
core/src/main/java/com/tickaroo/tikxml/TikXml.java
build
called by 231
core/src/main/java/com/tickaroo/tikxml/TikXml.java
exceptionOnUnreadXml
called by 169
core/src/main/java/com/tickaroo/tikxml/TikXml.java
get
called by 164
core/src/main/java/com/tickaroo/tikxml/TypeAdapters.java
write
called by 126
core/src/main/java/com/tickaroo/tikxml/TikXml.java
beginElement
called by 115
core/src/main/java/com/tickaroo/tikxml/XmlReader.java
endElement
called by 108
core/src/main/java/com/tickaroo/tikxml/XmlReader.java
nextElementName
called by 82
core/src/main/java/com/tickaroo/tikxml/XmlReader.java

Shape

Method 1,275
Class 421
Function 50
Interface 19
Enum 2

Languages

Java60%
Kotlin40%

Modules by API surface

processor/src/test/java/com/tickaroo/tikxml/processor/scanning/DefaultAnnotationDetectorTest.kt69 symbols
processor/src/test/java/com/tickaroo/tikxml/processor/scanning/AnnotationScannerTest.kt51 symbols
core/src/test/java/com/tickaroo/tikxml/XmlReaderTest.java46 symbols
core/src/main/java/com/tickaroo/tikxml/Types.java44 symbols
core/src/main/java/com/tickaroo/tikxml/XmlReader.java42 symbols
core/src/test/java/com/tickaroo/tikxml/XmlWriterTest.java31 symbols
processor-common/src/main/java/com/tickaroo/tikxml/processor/utils/ElementExtensions.kt30 symbols
annotationprocessortesting/src/main/java/com/tickaroo/tikxml/annotationprocessing/propertyelement/PropertyItemWithGetterSetters.java23 symbols
annotationprocessortesting/src/main/java/com/tickaroo/tikxml/annotationprocessing/attribute/ItemWithGetterSetters.java23 symbols
processor/src/main/java/com/tickaroo/tikxml/processor/generator/CodeGeneratorHelper.kt20 symbols
processor/src/test/java/com/tickaroo/tikxml/processor/mock/MockClassElement.kt19 symbols
processor/src/main/java/com/tickaroo/tikxml/processor/field/access/FieldAccessResolver.kt16 symbols

For agents

$ claude mcp add tikxml \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact