Page tree

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


The information on this page refers to License Statistics v5.4 14 or newer, which changed specifications required for generating the XML filethe xsd schema. If you are using an earlier version of License Statistics, please refer to the documentation for releases prior to v5.414.

If you use a different license server than one of those currently supported by License Statistics (see Supported license servers), you can customize License Statistics to run with your specific license server. To run License Statistics with your license server, your parser must write an UTF-8 encoded XML file that License Statistics can read and understand. In this way, virtually any licensing system can communicate with the License Statistics ' graphing engine. 

See Adding and editing realtime license servers for information about adding a custom license server to License Statistics.


The specifications for the XML file are as follows: 

  • CUSTOM_STAT – required
    - VENDOR – required
  • USAGE – the usage of a single feature
    - FEATURE is required and indicates ; the name of the feature
    - VERSION – the version of the feature
    - USED_LICENSES – the sum of licenses used by users (including borrowed and licenses, but excluding reserved licenses)
    - DENIED_LICENSES – the sum of denied licenses
    - BORROWED_LICENSES – the sum of licenses borrowed by users
    - RESERVED_LICENSES – the sum of reserved licenses
    - TOTAL_LICENSES – "UNLIMITED" or numeric value of licenses in the feature
    - SHARE – specifies which the type of license sharing in use
    - EXPIRES – "permanentPERMANENT", or an empty string, or the date on which the feature is set to expire, in "YYYY-MM-dd" format

  • USER – the usage of the feature for a single user
    - IP – the user's IP address
    - USED_LICENSES – the number of licenses used by the user
    - DENIED_LICENSES – the number of licenses the user was denied
    - BORROW_ EXPIRE_TIME – if the used licenses are borrowed, this indicates the date when the borrow is due to expire
    - CHECKOUT, in "YYYY-MM-DD HH:mm" format
    - CHECKOUT_TIME – required; the date on which the user checked out the licenses, in "YYYY-MM-DD HH:mm" format


  1. USED_LICENSES and DENIED_LICENSES have to be located in separate USER entries.
  2. All dates and times must be in the following format: YYYY-MM-DD [HH:MM]format specified for the variable in the list above.
  3. Only one VENDOR name can be used.


Code Block
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="">
    <xs:elementsimpleType name="CUSTOM_STATxfDate">
:restriction base="xs:string">
            <xs:pattern value="\d{4}-\d{2}-\d{2}"/>
    <xs:simpleType name="xfDateTime">
        <xs:restriction base="xs:string">
            <xs:pattern value="\d{4}-\d{2}-\d{2} \d{2}:\d{2}"/>

    <xs:element name="CUSTOM_STAT">
                <xs:element name="USAGE" minOccurs="0" maxOccurs="unbounded">
                                <xs:element name="USER" minOccurs="0" maxOccurs="unbounded">
                                            <xs:extension base="xs:string">
                                                <xs:attribute type="xs:string" name="USERNAME"/>
                                                <xs:attribute type="xs:string" name="HOSTNAME"/>
                                                <xs:attribute type="xs:string" name="IP"/>
          <xs:sequence>                <xs:element name="USAGE" maxOccurs="unbounded" minOccurs="0">                    <xs:complexType>
  attribute type="xfDateTime" name="CHECKOUT_TIME" use="required"/>
                    <xs:sequence>                            <xs:sequence>attribute     type="xfDateTime" name="BORROW_EXPIRE_TIME"/>
                          <xs:element name="USER" maxOccurs="unbounded" minOccurs="0">                        <xs:attribute type="xs:nonNegativeInteger" name="USED_LICENSES"/>
           <xs:complexType>                                     <xs:attribute type="xs:nonNegativeInteger"  <xs:simpleContent>name="DENIED_LICENSES"/>
                                            <xs:extension base="xs:string">
                                       <xs:attribute type=" </xs:string" name="USERNAME" use="optional"/>simpleContent>
           <xs:attribute type="xs:string" name="HOSTNAME" use="optional"/>                    </xs:element>
                           <xs:attribute type=" </xs:string" name="IP" use="optional"/>sequence>
                        <xs:attribute type="xs:string" name="BORROW_EXPIRE_TIMEFEATURE" use="optional"/>required">
                                <xs:attributerestriction typebase="xs:string" name="CHECKOUT_TIME" use="optional"/>
                                    <xs:minLength value="1"/>
         <xs:attribute type="xs:nonNegativeInteger" name="USED_LICENSES" use="optional"/>                      </xs:restriction>
                           <xs:attribute type="xs:nonNegativeInteger" name="DENIED_LICENSES" use="optional"/> </xs:simpleType>
                        <xs:attribute  </xs:extension>type="xs:float" name="VERSION"/>
                        <xs:attribute type="xs:nonNegativeInteger" name="USED_LICENSES"/>
            </xs:simpleContent>             <xs:attribute type="xs:nonNegativeInteger" name="DENIED_LICENSES"/>
                    </xs:complexType>    <xs:attribute type="xs:nonNegativeInteger" name="RESERVED_LICENSES"/>
                         </<xs:attribute type="xs:element>
nonNegativeInteger" name="BORROWED_LICENSES"/>
                        <xs:attribute  </xs:sequence>type="xs:string" name="TOTAL_LICENSES"/>
                         </xs:sequence><xs:attribute type="xs:string" name="SHARE"/>
                        <xs:attribute name="FEATUREEXPIRES">
use="required">                            <xs:simpleType>
                                <xs:restrictionunion basememberTypes="xs:string">
                  <xs:minLength value="1"/>                 <xs:simpleType>
              </xs:restriction>                            </xs:simpleType><xs:restriction base="xs:string">
                       </xs:attribute>                        <xs:attribute type="xs:float" name="VERSION" use="optional <xs:enumeration value="permanent"/>
                       <xs:attribute type="xs:nonNegativeInteger" name="USED_LICENSES" use="optional"/>                        <xs:attribute type="xs:nonNegativeInteger" name="DENIED_LICENSES" use="optionalenumeration value=""/>
                             <xs:attribute type="xs:nonNegativeInteger" name="RESERVED_LICENSES" use="optional"/>           </xs:restriction>
                                   <xs:attribute type="xs:nonNegativeInteger" name="BORROWED_LICENSES" use="optional"/> </xs:simpleType>
                             <xs:attribute type="xs:string" name="TOTAL_LICENSES" use="optional"/>
                      <xs:attribute type="xs:string" name="SHARE" use="optional"/>      </xs:simpleType>
                       <xs:attribute type=" </xs:string" name="EXPIRES" use="optional"/>attribute>
            <xs:attribute name="VENDOR" use="required">
                    <xs:restriction base="xs:string">
                        <xs:minLength value="1"/>