HiLang 2.6.2
dotnet add package HiLang --version 2.6.2
NuGet\Install-Package HiLang -Version 2.6.2
<PackageReference Include="HiLang" Version="2.6.2" />
<PackageVersion Include="HiLang" Version="2.6.2" />
<PackageReference Include="HiLang" />
paket add HiLang --version 2.6.2
#r "nuget: HiLang, 2.6.2"
#:package HiLang@2.6.2
#addin nuget:?package=HiLang&version=2.6.2
#tool nuget:?package=HiLang&version=2.6.2
HiLang
HiLang is a minimal high-level language to describe the schema of a domain, taking inspiration from protobuf (.proto models) for hierarchical structures and SQL DML for entities, relations and views.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- FSharp.Core (>= 10.1.301)
- FsLexYacc (>= 11.3.0)
- FsLexYacc.Runtime (>= 11.3.0)
- Hiperspace (>= 2.6.2)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.CodeAnalysis.CSharp (>= 5.3.0)
NuGet packages (32)
Showing the top 5 NuGet packages that depend on HiLang:
| Package | Downloads |
|---|---|
|
Hiperspace.SQL
Package Description |
|
|
Hiperspace.ISO20022.seev
Mapping ISO20022 seev messages to Hiperspace |
|
|
Hiperspace.ISO20022.sese
Mapping ISO20022 sese messages to Hiperspace |
|
|
Hiperspace.ISO20022.caaa
Mapping ISO20022 caaa messages to Hiperspace |
|
|
Hiperspace.ISO20022.pain
Mapping ISO20022 pain messages to Hiperspace |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.6.2 | 469 | 7/6/2026 |
| 2.5.52 | 9,030 | 5/9/2026 |
| 2.5.50 | 12,295 | 4/24/2026 |
| 2.5.47 | 12,281 | 4/15/2026 |
| 2.5.43 | 12,854 | 4/1/2026 |
| 2.5.39 | 16,066 | 3/20/2026 |
| 2.5.35 | 13,411 | 2/27/2026 |
| 2.5.33 | 16,698 | 2/14/2026 |
| 2.5.32 | 18,571 | 1/30/2026 |
| 2.5.29 | 19,929 | 1/17/2026 |
| 2.5.28 | 21,642 | 12/31/2025 |
| 2.5.26 | 22,662 | 12/21/2025 |
| 2.5.21 | 24,857 | 12/10/2025 |
| 2.5.18 | 26,913 | 12/3/2025 |
| 2.5.8 | 26,404 | 11/15/2025 |
| 2.5.2 | 26,426 | 11/6/2025 |
| 2.5.1 | 26,405 | 10/23/2025 |
| 2.5.0 | 26,401 | 10/20/2025 |
| 2.4.6 | 26,411 | 9/23/2025 |
| 2.4.4 | 26,503 | 8/7/2025 |
https://www.cepheis.com/hiperspace/20260706
# Overview
This release is a significantly enhances support for [XML Schema](https://www.w3.org/XML/Schema), an introduces generated mapping for [ISO20022](https://www.iso20022.org/) messages.
ISO20022 includes a large family of 761 XSD schema files comprising 39954 separate type definitions (*many of which are duplicated in each schema file, but some specific domain variations*).
As a *proof-of-principle* the message schema has been mapped *as-is* with payments messages augmented to show how a **Graph** and **Cube** functionality can be added with minimal changes to store messages in hiperspace. *Messages* stored in hiperspace are *naturally* compressed from the XML or JSON source using protobuf encoding that replaces type names with the equivalent **#id** and native types instead of text encoding.
## Hilangc changes
Import of XSD schema has been added to the command-line tool
|Option |┃| Notes|
|-|-|-|
|--xsd|┃| Import the XML schema file (.xsd) to an equivalent hilang model |
| --xn|┃| Set the XML schema tag for all imported elements |
| --xe|┃| Import references to a list of names as *entities*|
| --xs|┃| Import references to a list of names as *segments*|
| --xa|┃| Import references to a list of names as *aspects*|
| --xt|┃| Import references to a list of names as abstract *types* - the default is *values*|
## Hilang changes
The directive `%reference (domain.schema.dll);` imports *elements* from pre-compiled domain schema [all.hilang](https://github.com/channell/Hiperspace.ISO20022/blob/main/all/all.hilang) uses the reference import to build a consolidated ISO20022 schema including element definitions from each domain specific models {acmt, admi, auth, caaa, caad, caam, cafc, cafm, cafr, cain, camt, canm, casp, casr, catm, catp, colr, fxtr, head, pacs, pain, reda, remt, secl, seev, semt, sese, setr, trck, tsin, tsmt, tsrv}
The directive `%annotations;` has been added to simplify maintenance of XSD mapping. The code
```
@XmlNameSpace ("urn:iso:std:iso:20022:tech:xsd:pain.001.001.12"), ValidationCheck
entity ISO20022.Pain001001.CustomerCreditTransferInitiationV12 #35044
(
@XmlElement GrpHdr : ISO20022.Pain001001.GroupHeader114 #1,
)
{
@XmlElement SplmtryData : List<ISO20022.Pain001001.SupplementaryData1> #2,
};
```
could be modeled as
```
@XmlNameSpace ("urn:iso:std:iso:20022:tech:xsd:pain.001.001.12"), ValidationCheck
entity ISO20022.Pain001001.CustomerCreditTransferInitiationV12 #35044
{
@Key, XmlElement GrpHdr : ISO20022.Pain001001.GroupHeader114 #1,
@XmlElement SplmtryData : List<ISO20022.Pain001001.SupplementaryData1> #2,
};
```
to transform the the `GrpHdr` element of `ISO20022.Pain001001.CustomerCreditTransferInitiationV12` from a *value* to a *key* without reordering the memvbers of the element.
This is intended to simplify the tracking of a golden-source of model using code change-control tools
## Hiperspace changes
Various Hiperspace structures have been changed from `struct` to `class` to avoid stack-space issues with huge models.
`netstandard2.0` has been added as a target for Hiperspace assembly to enable meta-data definitions to be read by Hilang during compilation (or generation using *hilangc*)
Interface functions that were marked as Obsolete in earlier releases have been removed.
Additional Transactional versions of the `Bind`, `Get` and `Find` functions have been added, initially using the old functions. These functions take a **MVCC Transaction** reference has an additional parameter and a [DurableType](https://github.com/channell/Hiperspace/blob/master/src/Hiperspace/DurableType.cs) to allow the functions to be used for:
|Type|┃|Notes|
|-|-|-|
|Elements |┃| Entities, Segments, Aspects |
|Versioned|┃| Versioned Entities, Segments, Aspects|
|MetaModel|┃| dictionary that ensures that Hiperspaces cannot be used by incompatible clients|
| VectorSpace|┃| VectorSpace token lists for geospatial and nearest neighbor search|
| Sequences|┃| Sequence numbers |
| Transaction|┃| {start, end, reference} elements for MVCC |
|**MetaMap**|┃| protobuf transformation structure for Meta-Model compliant serialisation of elements|
|**Fingerprint**|┃| To avoid re-generation of meta-map when Hiperspace has been reopened by a pre-validated client|
Hiperspace `Find` will search for hiperspace using the *key* or *index* values. The new function extends the search parameters to include a collection of values that are not part of a *key/index* to reduce the number of elements returned from hiperspace to pre-filter elements close to source.