Skip to content

Latest commit

 

History

History
240 lines (198 loc) · 6.12 KB

File metadata and controls

240 lines (198 loc) · 6.12 KB
title Get Started
description Quick-start guide for using UnitsML

Get Started

Everything you need to start using UnitsML in your projects — whether you're encoding units in XML, browsing schemas, or integrating the units database programmatically.

Choose your path

Use UnitsML schemas to encode units in your XML documents.

Explore schema definitions interactively at schema.unitsml.org.

Use the unitsml-ruby gem to query UnitsDB from your applications.

XML Encoding {#xml-encoding}

The UnitsML XML Schema defines how to encode units of measure in XML documents. Here's how to get started:

1. Reference the schema

Add the UnitsML namespace to your XML document:

<YourDocument
  xmlns:unitsml="https://schema.unitsml.org/unitsml/1.0"
  xsi:schemaLocation="https://schema.unitsml.org/unitsml/1.0
    https://schema.unitsml.org/unitsml/unitsml-v1.0.xsd">

2. Define a unit

<unitsml:UnitSet>
  <unitsml:Unit xml:id="m" dimensionURL="#L">
    <unitsml:UnitName>metre</unitsml:UnitName>
    <unitsml:UnitSymbol>SI</unitsml:UnitSymbol>
  </unitsml:Unit>
</unitsml:UnitSet>

3. Use the unit in your data

<Measurement>
  <Value unitsml:unit="#m">9.81</Value>
  <Description>Gravitational acceleration</Description>
</Measurement>

::: tip UnitsML is designed to be incorporated into other markup languages, not used standalone. The models work best when embedded in domain-specific formats like MatML, CML, or your own vocabulary — and can also be expressed in JSON, YAML, and other formats. :::

Browse Schemas {#browse-schemas}

The interactive schema browser provides documentation for all UnitsML schema components:

schema.unitsml.org

Browse element definitions, type hierarchies, and schema documentation for all versions.

Open browser

Programmatic Access {#programmatic-access}

Use the unitsml-ruby gem to query UnitsDB from Ruby applications:

Install

gem install unitsml-ruby

Query units

require 'unitsml'

# Find a specific unit
unit = Unitsml::Units.find("m")
puts unit.name    # => "metre"
puts unit.symbol  # => "m"

See the unitsml-ruby page for full API documentation.

Next steps

<style scoped> /* Paths grid */ .paths-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.25rem; margin: 2rem 0 3rem; } .path-card { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; padding: 2rem 1.5rem; background: var(--vp-c-bg-soft); border: 1px solid var(--vp-c-divider); border-radius: 16px; text-decoration: none; color: inherit; text-align: center; transition: all 0.3s ease; } .path-card:hover { border-color: var(--vp-c-brand-1); box-shadow: 0 8px 30px rgba(45, 44, 105, 0.08); transform: translateY(-2px); } .path-icon { width: 56px; height: 56px; border-radius: 14px; display: flex; align-items: center; justify-content: center; } .path-xml { background: rgba(45, 44, 105, 0.08); color: var(--unitsml-navy); } .path-schema { background: rgba(48, 223, 192, 0.1); color: var(--unitsml-teal-dark); } .path-ruby { background: rgba(87, 160, 254, 0.1); color: var(--unitsml-blue); } .path-card h3 { font-size: 1.0625rem; font-weight: 600; color: var(--vp-c-text-1); margin: 0; } .path-card p { font-size: 0.875rem; color: var(--vp-c-text-2); line-height: 1.6; margin: 0; } /* Schema CTA */ .schema-cta { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.5rem 2rem; background: var(--vp-c-bg-soft); border: 1px solid var(--vp-c-divider); border-radius: 14px; margin: 1.5rem 0; } .cta-content h4 { font-size: 1rem; font-weight: 600; color: var(--vp-c-text-1); margin-bottom: 0.25rem; } .cta-content p { font-size: 0.875rem; color: var(--vp-c-text-2); margin: 0; } .cta-button { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.5rem 1.25rem; border-radius: 10px; font-size: 0.875rem; font-weight: 500; text-decoration: none; background: var(--unitsml-navy); color: white; transition: all 0.25s ease; white-space: nowrap; flex-shrink: 0; } .cta-button:hover { background: var(--unitsml-navy-light); } @media (max-width: 640px) { .schema-cta { flex-direction: column; align-items: flex-start; } } </style>