Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/phimage/momxml
Create or parse CoreData managed object model XMLs
https://github.com/phimage/momxml
carthage coredata coredata-model model-xmls swift xml
Last synced: 4 months ago
JSON representation
Create or parse CoreData managed object model XMLs
- Host: GitHub
- URL: https://github.com/phimage/momxml
- Owner: phimage
- License: mit
- Created: 2017-06-07T12:45:24.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-06-10T07:49:32.000Z (over 1 year ago)
- Last Synced: 2024-09-15T06:47:24.511Z (5 months ago)
- Topics: carthage, coredata, coredata-model, model-xmls, swift, xml
- Language: Swift
- Homepage:
- Size: 108 KB
- Stars: 6
- Watchers: 4
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](http://mit-license.org)
[![Platform](http://img.shields.io/badge/platform-ios_macos-lightgrey.svg?style=flat)](https://developer.apple.com/resources/)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
[![Swift Package Manager compatible](https://img.shields.io/badge/SwiftPM-compatible-4BC51D.svg?style=flat)](https://swift.org/package-manager/)
[![Build Status](https://travis-ci.org/phimage/MomXML.svg)](https://travis-ci.org/phimage/MomXML)# MomXML
Create or parse CoreData managed object model XMLs.
## Project description
### Model
Contains `struct` objects which describe each XML elements.
```swift
var momXML = MomXML()
let entityStatus = MomEntity(name: "Status")
momXML.model.entities.append(entityStatus)
let elementStatus = MomElement(name: "Status")
momXML.model.elements.append(elementStatus)
```### Equatable
Contains extensions to make model objects `Equatable`.
### ToXML
Contains `struct` extensions to create XML string from `struct` objects.```swift
let string = momXML.xml
```### FromXML
Contains `struct` extensions to create this `struct` objects using XML from `SWXMLHash` frameworks.
```swift
let xmlString = ... // from file or string
let mom = MomXML(xml: SWXMLHash.parse(xmlString))
```### FromCoreData
Contains CoreData extensions to create `struct` objects.
```swift
let manageObjectModel: NSManagegObjectModel = ...
let mom: MomXML = manageObjectModel.mom
```So you can serialize in memory data model into xml.
### ToCoreData
Contains `struct` extensions to create core data objects.
```swift
let mom: MomXML = ..
let manageObjectModel: NSManagegObjectModel = mom.coreData
```## Setup
### Using Carthage
Carthage is a decentralized dependency manager for Objective-C and Swift.
Add the project to your Cartfile.
```
github "phimage/MomXML"
```
Run carthage update and follow the additional steps in order to add MomXML to your project.### Using Cocoapod
Add the project to your Podfile to get Model/Equatable/ToXML.
```
pod "MomXML"
```For only Model.
```
pod "MomXML/Model"
```There is many subspec to get only the code you want.
For all about XMLs.
```
pod "MomXML/XML"
```For all about core data.
```
pod "MomXML/CoreData"
```## Limitations
- Abstract classes
- ...## Develop
### Download dependencies
Execute
```
carthage update --platform osx
```### TODO
- ToCoreData is only partially implemented
- Unit Tests on FromCoreData and ToCoreData### Contribute
- Fork
- Make PR