<?xml version="1.0" encoding="utf-8"?> <!-- Schema for Unified Code for Units of Measure http://unitsofmeasure.org/trac This schema is part of PyXB: https://github.com/pabigot/pyxb Copyright 2015, Peter A. Bigot Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://unitsofmeasure.org/ucum-essence" xmlns:tns="http://unitsofmeasure.org/ucum-essence" elementFormDefault="qualified"> <xs:element name="root" type="tns:root"/> <xs:complexType name="htmlText" mixed="true"> <xs:sequence> <xs:group ref="tns:htmlText" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:group name="htmlText"> <xs:annotation> <xs:documentation xml:lang="en"> See: http://unitsofmeasure.org/trac/ticket/97 </xs:documentation> </xs:annotation> <xs:choice> <xs:element ref="tns:i"/> <xs:element ref="tns:r"/> <xs:element ref="tns:sub"/> <xs:element ref="tns:sup"/> </xs:choice> </xs:group> <xs:element name="i"> <xs:complexType mixed="true"> <xs:group ref="tns:htmlText" minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <xs:element name="r"> <xs:complexType mixed="true"> <xs:group ref="tns:htmlText" minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <xs:element name="sub"> <xs:complexType mixed="true"> <xs:group ref="tns:htmlText" minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <xs:element name="sup"> <xs:complexType mixed="true"> <xs:group ref="tns:htmlText" minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <xs:complexType name="root"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="tns:prefix"/> <xs:element ref="tns:base-unit"/> <xs:element ref="tns:unit"/> </xs:choice> <xs:attribute name="revision" type="xs:string"/> <xs:attribute name="version" type="xs:string"/> <xs:attribute name="revision-date" type="xs:string"/> </xs:complexType> <xs:element name="prefix" type="tns:prefix"/> <xs:attributeGroup name="code_ag"> <xs:attribute name="Code" type="xs:string"/> <xs:attribute name="CODE" type="xs:string"/> </xs:attributeGroup> <xs:complexType name="prefix"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="printSymbol" type="tns:htmlText"/> <xs:element name="value" type="tns:prefix-value"/> </xs:sequence> <xs:attributeGroup ref="tns:code_ag"/> </xs:complexType> <xs:complexType name="prefix-value"> <xs:complexContent> <xs:extension base="tns:htmlText"> <xs:attribute name="value" type="xs:decimal"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="unit-value" mixed="true"> <xs:all> <xs:element ref="tns:function" minOccurs="0"/> <xs:group ref="tns:htmlText" minOccurs="0" maxOccurs="unbounded"/> </xs:all> <xs:attribute name="Unit" type="xs:string"/> <xs:attribute name="UNIT" type="xs:string"/> <xs:attribute name="value" type="xs:decimal"/> </xs:complexType> <xs:element name="base-unit" type="tns:base-unit"/> <xs:complexType name="common-unit"> <xs:sequence> <xs:element name="name" type="xs:string" maxOccurs="unbounded"/> <xs:element name="printSymbol" type="tns:htmlText" minOccurs="0"/> <xs:element name="property" type="xs:string"/> </xs:sequence> <xs:attributeGroup ref="tns:code_ag"/> </xs:complexType> <xs:complexType name="base-unit"> <xs:complexContent> <xs:extension base="tns:common-unit"> <xs:attribute name="dim" type="xs:string" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element name="unit" type="tns:unit"/> <xs:simpleType name="yesNo"> <xs:restriction base="xs:string"> <xs:enumeration value="yes"/> <xs:enumeration value="no"/> </xs:restriction> </xs:simpleType> <xs:complexType name="unit"> <xs:complexContent> <xs:extension base="tns:common-unit"> <xs:sequence> <xs:element name="value" type="tns:unit-value"/> </xs:sequence> <xs:attribute name="isMetric" type="tns:yesNo"/> <xs:attribute name="isSpecial" type="tns:yesNo"/> <xs:attribute name="isArbitrary" type="tns:yesNo"/> <xs:attribute name="class" type="xs:string"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element name="function" type="tns:function"/> <xs:complexType name="function"> <xs:attribute name="name" type="xs:string"/> <xs:attribute name="value" type="xs:string"/> <xs:attribute name="Unit" type="xs:string"/> </xs:complexType> </xs:schema>