Root Swift package mirroring PureYAML's structure, rules, and verification gates. Includes the XML node model (Node, Element, Attribute, QualifiedName), a working emitter (Serializer) with escaping and pretty/compact options, and structural validation. The parser surface is stable; parse() raises notImplemented until the scanner lands, pinned by a test. - dependency-free, namespaced under PureXML - portability and style gates carried over (style, namespacing, forbidden patterns, swiftformat, swiftlint, linux, wasm, windows CI) - 11 tests passing
958 B
958 B
Package and Repository Structure
PureXML is a root Swift package.
Required Layout
PureXML/
├── Package.swift
├── Sources/
│ ├── PureXML.swift
│ ├── Model/
│ ├── Parsing/
│ └── Emitting/
├── Tests/
│ └── PureXMLTests/
├── docs/
└── scripts/
Rules
- Keep
Package.swiftat repository root. - Do not create a
Packages/folder. - Keep production code directly under
Sources. - Keep tests in
Tests/PureXMLTests. - Keep
Package.swiftdependency-free. - Add new targets only when a responsibility genuinely needs isolation.
Namespace Mapping
The namespace tree mirrors the source tree:
Sources/Model/Value.swift->PureXML.Model.ValueSources/Parsing/Parser.swift->PureXML.Parsing.ParserSources/Emitting/Dumper.swift->PureXML.Emitting.Dumper
The root namespace file, Sources/PureXML.swift, is a map of namespaces only.