Skip to content
Open
Show file tree
Hide file tree
Changes from 22 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/workflows/run_test_and_examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ jobs:

- os: ubuntu-24.04-arm
compiler: gcc-14
- os: ubuntu-24.04-arm
compiler: clang-19
- os: ubuntu-24.04-arm
compiler: clang-20

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run_test_for_coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
strategy:
matrix:
config:
- os: ubuntu-22.04
- os: ubuntu-24.04
compiler: gcc-13
fail-fast: false
name: ${{ matrix.config.compiler }}, ${{ matrix.config.os }}
Expand Down
30 changes: 25 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,26 @@ cd build_dir
sudo make install
```

### Limits for Datatypes
By default, unlimited precision datatypes are limited in accordance with https://www.w3.org/TR/xmlschema11-2/#partial-implementation .

For `http://www.w3.org/2001/XMLSchema#integer`
(and the related: `http://www.w3.org/2001/XMLSchema#nonNegativeInteger`
`http://www.w3.org/2001/XMLSchema#positiveInteger` `http://www.w3.org/2001/XMLSchema#nonPositiveInteger`
`http://www.w3.org/2001/XMLSchema#negativeInteger`) this limit is a signed 128-bit integer
with the usual range of `[-2^127,2^127-1]`

And `http://www.w3.org/2001/XMLSchema#decimal` is composed of the following parts: `i/10^k`,
where `i` is a signed 128-bit integer (`[-2^127,2^127-1]`) and `k` is an unsigned 64-bit integer (`[0,2^64]`).

For `http://www.w3.org/2001/XMLSchema#dateTime` (and all derived types) there are 2 limits:
- represented as a time point with nanosecond precision with a 128-bit signed integer
- the year part alone in a 64-bit signed integer
Both limits are enough to cover both the current best theories of the big bang and the projected heat death of the universe.

For `http://www.w3.org/2001/XMLSchema#duration` (and all derived types), both parts have a separate signed 64-bit integer
and with it its associated limits. The seconds part of the duration supports nanosecond precision.

### Additional CMake config options:

- `-DBUILD_EXAMPLES=ON/OFF [default: OFF]`: Build the examples.
Expand All @@ -121,11 +141,11 @@ sudo make install


## Supported Platforms
- **Linux distributions (x86-64, AArch64)** (e.g. Ubuntu>=24.04, Fedora>=41, etc.) with:
- GCC>=14 (libstdc++>=14; used with both GCC and Clang)
- Clang>=19
- glibc 2.35+ or musl 1.2.4+
- **macOS (ARM64)**: macOS Sonoma (14)+ with GCC>=14 (via Homebrew)
- **Linux distributions (x86-64, aarch64)** (e.g. Ubuntu>=24.04, Fedora>=41, etc.) with:
- gcc>=14 (libstdc++>=14; used with both GCC and Clang)
- clang>=19* (on aarch64 clang>=20 is required)
- glibc>=2.35 or musl>=1.2.4
- **macOS (aarch64)**: macOS Sonoma (>=14) with GCC>=14 (via Homebrew)

## Stability

Expand Down
1 change: 0 additions & 1 deletion docs/source/getting_started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,3 @@ ________________________________
* :code:`-DBUILD_EXAMPLES=ON/OFF [default: OFF]`: Build the examples.
* :code:`-DBUILD_TESTING=ON/OFF [default: OFF]`: Build the tests.
* :code:`-DBUILD_SHARED_LIBS=ON/OFF [default: OFF]`: Build a shared library instead of a static one.
* :code:`-DUSE_CONAN=ON/OFF [default: ON]`: If available, use Conan to retrieve dependencies.
25 changes: 25 additions & 0 deletions docs/source/users_guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,31 @@ You can find all supported Datatypes here:
* :ref:`namespace_rdf4cpp__datatypes__rdf`: RDF datatypes (LangString).
* :ref:`namespace_rdf4cpp__datatypes__owl`: OWL datatypes.


Limits for Datatypes
++++++++++++++++++++
By default, unlimited precision datatypes are limited in accordance with https://www.w3.org/TR/xmlschema11-2/#partial-implementation .

For :code:`http://www.w3.org/2001/XMLSchema#integer`
(and the related: :code:`http://www.w3.org/2001/XMLSchema#nonNegativeInteger`
:code:`http://www.w3.org/2001/XMLSchema#positiveInteger` :code:`http://www.w3.org/2001/XMLSchema#nonPositiveInteger`
:code:`http://www.w3.org/2001/XMLSchema#negativeInteger`) this limit is a signed 128-bit integer
with the usual range of :code:`[-2^127,2^127-1]`

And :code:`http://www.w3.org/2001/XMLSchema#decimal` is composed of the following parts: :code:`i/10^k`,
where :code:`i` is a signed 128-bit integer (:code:`[-2^127,2^127-1]`) and :code:`k` is an unsigned 64-bit integer (:code:`[0,2^64]`).
ss
For :code:`http://www.w3.org/2001/XMLSchema#dateTime` (and all derived types) there are 2 limits:

* represented as a time point with nanosecond precision with a 128-bit signed integer
* the year part alone in a 64-bit signed integer

Both limits are enough to cover both the current best theories of the big bang and the projected heat death of the universe.

For :code:`http://www.w3.org/2001/XMLSchema#duration` (and all derived types), both parts have a separate signed 64-bit integer
and with it its associated limits. The seconds part of the duration supports nanosecond precision.


Parsing Files
-------------

Expand Down
Loading
Loading