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: 10 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 8 years ago)
- Default Branch: master
- Last Pushed: 2023-06-10T07:49:32.000Z (over 2 years ago)
- Last Synced: 2025-03-26T16:38:35.479Z (11 months ago)
- Topics: carthage, coredata, coredata-model, model-xmls, swift, xml
- Language: Swift
- Homepage:
- Size: 108 KB
- Stars: 6
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](http://mit-license.org)
[](https://developer.apple.com/resources/)
[](https://github.com/Carthage/Carthage)
[](https://swift.org/package-manager/)
[](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