soliantconsulting/SimpleFM

View on GitHub
xsd/entity-metadata-5-0.xsd

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
    version="1.0"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="uri:soliantconsulting.com:simplefm:entity-metadata"
    xmlns="uri:soliantconsulting.com:simplefm:entity-metadata"
    elementFormDefault="qualified"
>
    <xs:element name="entity" type="entity-type"/>

    <xs:complexType name="entity-type">
        <xs:sequence>
            <xs:element name="record-id" type="record-id-type" minOccurs="0" maxOccurs="1"/>
            <xs:element name="field" type="field-type" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="embeddable" type="embeddable-type" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="one-to-many" type="one-to-many-type" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="many-to-one" type="many-to-one-type" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="one-to-one-owning" type="one-to-one-owning-type" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="one-to-one-inverse" type="one-to-one-inverse-type" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>

        <xs:attribute name="class-name" use="required" type="xs:string"/>
        <xs:attribute name="interface-name" use="optional" type="xs:string"/>
        <xs:attribute name="layout" use="required" type="xs:string"/>
    </xs:complexType>

    <xs:complexType name="record-id-type">
        <xs:attribute name="property" use="required" type="xs:string"/>
    </xs:complexType>

    <xs:complexType name="field-type">
        <xs:attribute name="name" use="required" type="xs:string"/>
        <xs:attribute name="property" use="required" type="xs:string"/>
        <xs:attribute name="type" use="required" type="xs:string"/>
        <xs:attribute name="repeatable" use="optional" type="xs:boolean" default="false"/>
        <xs:attribute name="read-only" use="optional" type="xs:boolean" default="false"/>
    </xs:complexType>

    <xs:complexType name="embeddable-type">
        <xs:attribute name="property" use="required" type="xs:string"/>
        <xs:attribute name="field-name-prefix" use="required" type="xs:string"/>
        <xs:attribute name="class-name" use="required" type="xs:string"/>
    </xs:complexType>

    <xs:complexType name="one-to-many-type">
        <xs:attribute name="property" use="required" type="xs:string"/>
        <xs:attribute name="target-table" use="required" type="xs:string"/>
        <xs:attribute name="target-entity" use="required" type="xs:string"/>
        <xs:attribute name="target-field-name" use="required" type="xs:string"/>
    </xs:complexType>

    <xs:complexType name="many-to-one-type">
        <xs:attribute name="name" use="required" type="xs:string"/>
        <xs:attribute name="property" use="required" type="xs:string"/>
        <xs:attribute name="target-table" use="required" type="xs:string"/>
        <xs:attribute name="target-entity" use="required" type="xs:string"/>
        <xs:attribute name="target-property-name" use="required" type="xs:string"/>
        <xs:attribute name="target-field-name" use="required" type="xs:string"/>
        <xs:attribute name="read-only" use="optional" type="xs:boolean" default="false"/>
    </xs:complexType>

    <xs:complexType name="one-to-one-owning-type">
        <xs:attribute name="name" use="required" type="xs:string"/>
        <xs:attribute name="property" use="required" type="xs:string"/>
        <xs:attribute name="target-table" use="required" type="xs:string"/>
        <xs:attribute name="target-entity" use="required" type="xs:string"/>
        <xs:attribute name="target-property-name" use="optional" type="xs:string"/>
        <xs:attribute name="target-field-name" use="required" type="xs:string"/>
        <xs:attribute name="read-only" use="optional" type="xs:boolean" default="false"/>
    </xs:complexType>

    <xs:complexType name="one-to-one-inverse-type">
        <xs:attribute name="property" use="required" type="xs:string"/>
        <xs:attribute name="target-table" use="required" type="xs:string"/>
        <xs:attribute name="target-entity" use="required" type="xs:string"/>
        <xs:attribute name="target-field-name" use="required" type="xs:string"/>
    </xs:complexType>
</xs:schema>