{"id":18890436,"url":"https://github.com/workingdog/scalaeeml","last_synced_at":"2026-02-25T15:30:16.154Z","repository":{"id":151934802,"uuid":"9764731","full_name":"workingDog/scalaEeml","owner":"workingDog","description":"an Extended Environments Markup Language (EEML) library in scala","archived":false,"fork":false,"pushed_at":"2013-05-01T23:52:48.000Z","size":152,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-31T06:13:13.856Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/workingDog.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-04-30T05:35:41.000Z","updated_at":"2014-03-24T18:08:21.000Z","dependencies_parsed_at":"2023-04-08T01:54:18.373Z","dependency_job_id":null,"html_url":"https://github.com/workingDog/scalaEeml","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workingDog%2FscalaEeml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workingDog%2FscalaEeml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workingDog%2FscalaEeml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workingDog%2FscalaEeml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/workingDog","download_url":"https://codeload.github.com/workingDog/scalaEeml/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239861695,"owners_count":19709268,"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-08T07:55:34.893Z","updated_at":"2026-02-25T15:30:16.102Z","avatar_url":"https://github.com/workingDog.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# scalaEeml Overview\n\nscalaEeml is a Scala data format library of the Extended Environments Markup Language [EEML](http://www.eeml.org).\nIt can be used for example to interact with [COSM](https://cosm.com/) of the Internet Of Things.\n\nFrom [EEML](http://www.eeml.org): \"Extended Environments Markup Language (EEML)\n ...is a protocol for sharing sensor data between remote responsive environments,\n both physical and virtual. It can be used to facilitate direct connections\n between any two environments; it can also be used to facilitate many-to-many\n connections as implemented by the web service Pachube, which enables people\n to tag and share real time sensor data from objects, devices and spaces around the world.\"\n\nscalaEeml is based on the XML schema for EEML 0.5.1. This library provides scala objects for the API\ndata format and the associated xml input/output.\n\nThe overall principle was to have a clean set of scala case classes and a separation of concerns for the IO.\n\n\n# Example\n\n    // read a xml file into a eeml root object\n    val eeml = new EemlReader().getFromFile(\"./xml-files/test1.xml\")\n\n    // get the xml string representation and print it\n    val eemlString = EemlWriter.getXmlString(eeml)\n    println(\"eemlString = \" + eemlString + \"\\n\")\n\n    // convert the eemlString back to a eeml root object\n    val eeml2 = new EemlReader().getFromString(eemlString)\n\n    // write the eeml2 object to a PrintWriter\n    new EemlWriter(Some(new PrintWriter(System.out))).write(eeml2, new PrettyPrinter(80, 3))\n\n# Dependencies\n\nNo dependencies.\n\n# Notes\n\nAll member fields in the case classes are Option[_]. I find this to give more stability with only a small burden\nof having to use Some(_) or Option(_). As a relief from this verbosity, I included an overridden set of constructors\nthat have plain arguments for all classes. The use of Option[_] is a departure from the EEML specifications.\n\nSince I separated the IO from the classes there is no *eemlObj.toXml* to get the string xml representation\nof the object. Instead use *EemlWriter.getXmlString(eemlObj)*.\nSimilarly use *EemlReader.getFromString(eemlString)* to get the object representation of the xml string.\n\n# Status\n\nscalaEeml has not been tested yet.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkingdog%2Fscalaeeml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fworkingdog%2Fscalaeeml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkingdog%2Fscalaeeml/lists"}