{"id":19260911,"url":"https://github.com/evant/fasax","last_synced_at":"2025-04-21T17:30:31.844Z","repository":{"id":13576826,"uuid":"16269358","full_name":"evant/fasax","owner":"evant","description":"The fastest way to unmarshall XML to Java on Android","archived":false,"fork":false,"pushed_at":"2022-05-31T17:19:05.000Z","size":135,"stargazers_count":5,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-03-22T12:35:38.925Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evant.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-27T04:35:07.000Z","updated_at":"2021-02-10T17:19:40.000Z","dependencies_parsed_at":"2022-08-30T21:01:47.309Z","dependency_job_id":null,"html_url":"https://github.com/evant/fasax","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evant%2Ffasax","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evant%2Ffasax/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evant%2Ffasax/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evant%2Ffasax/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evant","download_url":"https://codeload.github.com/evant/fasax/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223871748,"owners_count":17217610,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T19:23:26.772Z","updated_at":"2024-11-09T19:23:27.309Z","avatar_url":"https://github.com/evant.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"fasax\n=====\n\nThe fastest way to unmarshall XML to Java on Android.\n\nNote: This project is far from complete, but can unmarshell simple xml \ndocumments.\n\nUnlike other implementations, this libary generates SAX parsing code at compile \ntime. This makes it's performace virtually the same as a handwritten SAX parser.\nAnnotations are inspired from [Simple XML](http://simple.sourceforge.net/).\n\nExample\n-------\n\n```xml\n\u003centerprise\u003e\n \u003ccorporation\u003eAgile Analytics\u003c/corporation\u003e\n  \u003csoftware-license type=\"Proprietary\" year=\"2014\"\u003eAgile Analytics Software Licences™\u003c/software-license\u003e\n  \u003csoftware\u003eCloud Big Data Management\u003c/software\u003e\n  \u003csoftware\u003eJVMXMLRPP\u003c/software\u003e\n  \u003csoftware\u003eAddition as a Service\u003c/software\u003e\n  \u003cemployees\u003e\n    \u003cemployee\u003e\n      \u003cname\u003eVendelín Gamil\u003c/name\u003e\n      \u003ctitle\u003eSenior Architect\u003c/title\u003e\n      \u003cdate-started\u003e2010-12-01\u003c/date-started\u003e\n    \u003c/employee\u003e\n    \u003cemployee\u003e\n      \u003cname\u003eHuw Andrea\u003c/name\u003e\n      \u003ctitle\u003eJunior Architect\u003c/title\u003e\n      \u003cdate-started\u003e2013-06-12\u003c/date-started\u003e\n    \u003c/employee\u003e\n    \u003cemployee\u003e\n      \u003cname\u003eBenjy Teodors\u003c/name\u003e\n      \u003ctitle\u003eHead Senior Architect\u003c/title\u003e\n      \u003cdate-started\u003e2011-10-24\u003c/date-started\u003e\n    \u003c/employee\u003e\n  \u003c/employees\u003e\n\u003c/enterprise\u003e\n```\n\n```java\n@Xml\npubic class Enterprise {\n    @Element\n    public String corperation;\n\n    @Element(name=\"software-license\")\n    public SoftwareLicense softwareLicense;\n\n    @ElementList(entry=\"software\", inline=true)\n    public List\u003cString\u003e software;\n\n    @ElementList(entry=\"employee\")\n    public List\u003cEmployee\u003e employees;\n\n    @Xml\n    public static class SoftwareLicense {\n        @Attribute\n        public String type;\n\n        @Attribute\n        public String year;\n\n        @Text\n        public String name;\n    }\n\n    @Xml\n    public static class Employee {\n        @Element\n        public String name;\n\n        @Element\n        public String title;\n\n        @Converter(DateConverter.class)\n        @Element(name=\"date-started\")\n        public Date dateStarted;\n    }\n}\n```\n\n```java\nFasax fasax = new Fasax();\nInputStream in = getXmlInputStream();\nEnterprise enterprise = fasax.fromXml(in, Enterprise.class);\n```\n\nTODO\n----\n- Allow use of setters instead of public fields\n- Write XML\n- Namespaces\n- Split compile-time and runtime dependencies\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevant%2Ffasax","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevant%2Ffasax","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevant%2Ffasax/lists"}