<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="content" type="jaxbContent"/>

  <xs:element name="entity" type="jaxbEntity"/>

  <xs:element name="error" type="apiError"/>

  <xs:element name="response" type="contentResponse"/>

  <xs:element name="symbolicLink" type="symbolicLink"/>

  <xs:element name="value" type="jaxbEnumeratorMapValue"/>

  <xs:complexType name="contentResponse">
    <xs:complexContent>
      <xs:extension base="abstractApiResponse">
        <xs:sequence>
          <xs:element name="result" type="contentResponseResult"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="abstractApiResponse" abstract="true">
    <xs:sequence>
      <xs:element name="errors" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="error" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="contentResponseResult">
    <xs:complexContent>
      <xs:extension base="abstractApiResponseResult">
        <xs:sequence>
          <xs:element name="item" type="jaxbContent" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="abstractApiResponseResult" abstract="true">
    <xs:sequence>
      <xs:element name="html" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="jaxbContent">
    <xs:complexContent>
      <xs:extension base="jaxbEntity">
        <xs:sequence>
          <xs:element name="created" type="xs:dateTime"/>
          <xs:element name="lastModified" type="xs:dateTime"/>
          <xs:element name="version" type="xs:string"/>
          <xs:element name="lastEditor" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="jaxbEntity">
    <xs:sequence>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="description" type="xs:string"/>
      <xs:element name="typeCode" type="xs:string"/>
      <xs:element name="typeDescription" type="xs:string"/>
      <xs:element name="mainGroup" type="xs:string"/>
      <xs:element name="categories" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="category" type="xs:string" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="groups" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="group" type="xs:string" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="attributes" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="attribute" type="abstractJAXBAttribute" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="abstractJAXBAttribute">
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="type" type="xs:string"/>
      <xs:element name="roles" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="role" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="names">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="key" minOccurs="0" type="xs:string"/>
                  <xs:element name="value" minOccurs="0" type="xs:string"/>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="arrayList">
    <xs:complexContent>
      <xs:extension base="abstractList">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="abstractList" abstract="true">
    <xs:complexContent>
      <xs:extension base="abstractCollection">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="abstractCollection" abstract="true">
    <xs:sequence/>
  </xs:complexType>

  <xs:complexType name="hashMap">
    <xs:complexContent>
      <xs:extension base="abstractMap">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="abstractMap" abstract="true">
    <xs:sequence/>
  </xs:complexType>

  <xs:complexType name="jaxbBooleanAttribute">
    <xs:complexContent>
      <xs:extension base="abstractJAXBAttribute">
        <xs:sequence>
          <xs:element name="value" type="xs:boolean" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="jaxbEnumeratorMapAttribute">
    <xs:complexContent>
      <xs:extension base="abstractJAXBAttribute">
        <xs:sequence>
          <xs:element ref="value" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="jaxbEnumeratorMapValue">
    <xs:sequence>
      <xs:element name="key" type="xs:string" minOccurs="0"/>
      <xs:element name="value" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="jaxbCompositeAttribute">
    <xs:complexContent>
      <xs:extension base="abstractJAXBAttribute">
        <xs:sequence>
          <xs:element name="attributes">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="key" minOccurs="0" type="xs:string"/>
                      <xs:element name="value" minOccurs="0" type="abstractJAXBAttribute"/>
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="jaxbDateAttribute">
    <xs:complexContent>
      <xs:extension base="abstractJAXBAttribute">
        <xs:sequence>
          <xs:element name="value" type="xs:dateTime" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="jaxbHypertextAttribute">
    <xs:complexContent>
      <xs:extension base="abstractJAXBAttribute">
        <xs:sequence>
          <xs:element name="htmlValue" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="jaxbListAttribute">
    <xs:complexContent>
      <xs:extension base="abstractJAXBAttribute">
        <xs:sequence>
          <xs:element name="attributes" minOccurs="0">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="attribute" type="abstractJAXBAttribute" maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="jaxbNumberAttribute">
    <xs:complexContent>
      <xs:extension base="abstractJAXBAttribute">
        <xs:sequence>
          <xs:element name="value" type="xs:decimal" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="jaxbTextAttribute">
    <xs:complexContent>
      <xs:extension base="abstractJAXBAttribute">
        <xs:sequence>
          <xs:element name="value" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="jaxbResourceAttribute">
    <xs:complexContent>
      <xs:extension base="jaxbTextAttribute">
        <xs:sequence>
          <xs:element name="resource" type="jaxbResourceValue" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="jaxbResourceValue">
    <xs:sequence>
      <xs:element name="text" type="xs:string" minOccurs="0"/>
      <xs:element name="path" type="xs:string" minOccurs="0"/>
      <xs:element name="resourceId" type="xs:string" minOccurs="0"/>
      <xs:element name="restResourcePath" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="jaxbLinkAttribute">
    <xs:complexContent>
      <xs:extension base="jaxbTextAttribute">
        <xs:sequence>
          <xs:element name="link" type="jaxbLinkValue" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="jaxbLinkValue">
    <xs:sequence>
      <xs:element name="text" type="xs:string"/>
      <xs:element name="url" type="xs:string"/>
      <xs:element ref="symbolicLink" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="symbolicLink">
    <xs:sequence>
      <xs:element name="contentDestination" type="xs:string" minOccurs="0"/>
      <xs:element name="pageDestination" type="xs:string" minOccurs="0"/>
      <xs:element name="resourceDestination" type="xs:string" minOccurs="0"/>
      <xs:element name="symbolicDestination" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="apiError">
    <xs:sequence>
      <xs:element name="code" type="xs:string" minOccurs="0"/>
      <xs:element name="message" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

