votable 0.7.0

Rust implementation of a VOTable serializer/deserializer with support for format other than XML, such as JSON, TOML or YAML.
Documentation
# `votable` Change Log

## 0.7.0

Released 2025-12-02

* Bump Rust version to 2024
* Better support for arrays of arrays
* Add support for arrays of Strings (both UTF-8 and Unicode)
* Add VOTable tag 1.6 
* Improve internal code


## 0.6.3

Released 2025-09-24

* Bump `base64` versions
* Use `String::from_utf8_lossy` method instead of  (bad import!) an internal serde one.


## 0.6.2

Released 2024-10-18

* Fix boolean value to support any mix of case
* Set additional attributes public
* Replace `info` by `post_info` and add `info` in `TABLE` (see standard XSD, pre-INFo missing in the schema)
 

## 0.6.1

Released 2024-04-15

* Mainly changes in the cli
* Minor README modifications


## 0.6.0

Released 2024-04-05

### Changed

* ⚠️  BREAKING: the tag is now in the `VOTableTrait` instead of the `QuickXmlReadWrite` trait 
* ⚠️  BREAKING: extra attribute names (allowed in some Tags in the lib, but not in the standard) 
  must contains ':'. If not, a prefix 'extra:' is automatically addded by the API (not when deserializing)
* ⚠️  BREAKING: update the MIVOT visitor to consistent with the VOTable visitor
* Add `for_each_attribute` in MIVOT tags
* Add setters
* Add documentation
* Internal changes: 
    + add trait `VOTableElement` for more genericity and to lighten the role of the `QuickXMLReadWrite` trait 
    + add markers trait to distinguish between several `VOTableElement` patterns
    + remove macros


## 0.5.0

Released 2024-03-11

### Added

* Add genericity and remove (some) duplicated code
* Add support for `CDATA` in `TD` tags
* See `votcli` changelog


## 0.4.0

Released 2024-02-06

### Added

* Enrich API with elements such as `push_elem` or `set_xx_by_ref` and re-export.
* Provide with a MIVOT `DoNothing` visitor 
* Provide with a `VOTableVisitor` trait and `visitor` methods on the ful VOTable
* Add methods to merge together two `Fields`

### Changed

* `Version` and `xmlns` are now mandatory in VOTable (with v1.4 as edfault)
* Add `xmlns:xsi` and `xsi:schemaLocation` in VOTable optional attributes (instead of extra)
* Add logger to control `stderr` messages


## 0.3.0

Released 2024-01-12

### Added
 
* Add conversions between TABLEDATA/BINARY/BINARY2
* Add support for VOTable 1.5: `refposition`, `FIELDref` and `PARAMref` allowed in CooSys
* Add `SimpleVOTableRowIterator` with `OwnedTabledataRowIterator` and `OwnedBinary1or2RowIterator` 
   to make external parsers taking charge of parsing rows
* Add methods `get_first_table` and `get_first_table_mut` in votable
* More attributes/sub-elements are now public
* Add Mivot support with feature "mivot"
* Add PartialEq implementation
* Add `ensures_consistency` after JSON/TOML/YAML deserialization to ensure that
  type in memory are coherent with the table schema

### Changed

* ⚠️  BREAKING: add a `ResourceSubElem` structure in `Resource` to pack together
  LINKS, RESOURCE or TABLE, INFO (the choice in the VOTable xsd, the figure is missleading)
* ⚠️  BREAKING: Arraysize no more a String but a enum

### Bug correction

* Better handling of arrays (please provide us with examples so we can test and debug)
* Fix unicode char bug
* Fix breaking change introduced in `serde.__private`
* Fix "hint" --> "hints" in LINK attribute "content-role"

## 0.2.3

Released 2023-05-01

* Accept CDATA in 'Info', 'Desciption', 'Link', 'ParamRef' and 'FieldRef' content
* Accepth empty 'precision' and 'width' attributes

## 0.2.2

Released 2023-05-01

* Accept VOTables 1.0
* Add the deprecated "DEFINITIONS" tag


## 0.2.1

Released 2023-04-25

* Accept VOTables 1.1 and 1.2
* Fix error while parsing PARAM
* Fix error with empty fields (?) 


## 0.2.0

Released 2023-03-30

### Added

* class `VOTableIterator` to iterate externally on a VOTable
  tables and table rows

### Bug correction

* Now works with namespaces (simply ignoring them)
* Support PARAM containing sub-elements in GROUP


## 0.1.1-alpha

Released 2022-10-10.

### Bug correction

* Fix error on "boolean" datatype FIELDs
* Fix "boolean" datatype parsing in tabledata


## 0.1.0-alpha

Released 2022-10-06.