added XML namespace and XSD

This commit is contained in:
Dominik Liebler 2013-09-21 23:31:14 +02:00
parent c2d36d9ef0
commit 7f8a4d4b59
2 changed files with 101 additions and 0 deletions

View File

@ -50,4 +50,20 @@ class NelmioApiDocExtension extends Extension
$container->setParameter('nelmio_api_doc.sandbox.authentication', $config['sandbox']['authentication']);
}
}
/**
* @return string
*/
public function getNamespace()
{
return 'http://nelmio.github.io/schema/dic/nelmio_api_doc';
}
/**
* @return string
*/
public function getXsdValidationBasePath()
{
return __DIR__ . '/../Resources/config/schema';
}
}

View File

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns="http://nelmio.github.io/schema/dic/nelmio_api_doc"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://nelmio.github.io/schema/dic/nelmio_api_doc"
elementFormDefault="qualified">
<xsd:element name="config">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="motd" type="motd" minOccurs="0" maxOccurs="1"/>
<xsd:element name="request_listener" type="request_listener" minOccurs="0" maxOccurs="1"/>
<xsd:element name="sandbox" type="sandbox" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="motd">
<xsd:sequence>
<xsd:element name="template" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="request_listener">
<xsd:sequence>
<xsd:element name="enabled" default="true" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>
<xsd:element name="parameter" default="_doc" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="sandbox">
<xsd:sequence>
<xsd:element name="enabled" default="true" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>
<xsd:element name="endpoint" nillable="true" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="accept_type" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="body_format" type="body_format_enum" minOccurs="0" maxOccurs="1"/>
<xsd:element name="request_format" type="request_format" minOccurs="0" maxOccurs="1"/>
<xsd:element name="authentication" type="authentication" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="body_format_enum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="form"/>
<xsd:enumeration value="json"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="request_format">
<xsd:sequence>
<xsd:element name="method" type="request_format_method_enum" minOccurs="0" maxOccurs="1"/>
<xsd:element name="default_format" type="request_format_default_format_enum" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="request_format_method_enum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="format_param"/>
<xsd:enumeration value="accept_header"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="request_format_default_format_enum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="json"/>
<xsd:enumeration value="xml"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="authentication">
<xsd:sequence>
<xsd:element name="name" type="xsd:string" maxOccurs="1"/>
<xsd:element name="delivery" type="authentication_delivery_enum" maxOccurs="1"/>
<xsd:element name="custom_endpoint" type="xsd:boolean" default="false" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="authentication_delivery_enum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="query"/>
<xsd:enumeration value="http_basic"/>
<xsd:enumeration value="header"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>