6.1 Wireless Policy Schema

 <?xml version="1.0" encoding="utf-8" ?>
 <xs:schema targetNamespace="http://www.microsoft.com/networking/WLAN/policy/v1"
    xmlns="http://www.microsoft.com/networking/WLAN/policy/v1"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified">
  
   <!-- 
   ##################################################################
   #                    type definitions section                    #
   ##################################################################
   -->
   <!-- type definition for policy name and description -->
   <xs:simpleType name="nameType">
     <xs:restriction base="xs:string">
       <xs:minLength value="1" />
       <xs:maxLength value="255" />
     </xs:restriction>
   </xs:simpleType>
  
   <!-- type definition for SSID -->
   <xs:simpleType name="networkNameType">
     <xs:restriction base="xs:string">
       <xs:minLength value="1" />
       <xs:maxLength value="32" />
     </xs:restriction>
   </xs:simpleType>
  
   <!-- type definition for 802.11 network types, adhoc (IBSS) vs infrastructure (ESS) -->
   <xs:simpleType name="networkTypeType">
     <xs:restriction base="xs:string">
       <xs:enumeration value="IBSS" />
       <xs:enumeration value="ESS" />
     </xs:restriction>
   </xs:simpleType>
  
   <!-- type definition for a list item in either allow or block list -->
   <xs:complexType name="networkItemType">
     <xs:sequence>
       <xs:element name="networkName" type="networkNameType" />
       <xs:element name="networkType" type="networkTypeType" />
       
       <!-- extension point for other namespaces -->
       <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
     </xs:sequence>
   </xs:complexType>
   
   <!-- 
   ##################################################################
   #                  element definitions section                   #
   ##################################################################
   -->
   <xs:element name="WLANPolicy">
     <xs:complexType>
       <xs:sequence>
         <!-- this is the name of the policy -->
         <xs:element name="name" type="nameType" />
         <!-- brief description of the policy, optional -->
         <xs:element name="description" type="nameType" minOccurs="0" />
  
         <!-- Wireless LAN global settings -->
         <!-- A/C flags -->
         <xs:element name="globalFlags">
           <xs:complexType>
             <xs:sequence>
               <!-- flag to indicate whether A/C is used -->
               <xs:element name="enableAutoConfig" type="xs:boolean" />
               <!-- flag to indicate whether A/C shall show denied network in VAN UI -->
               <xs:element name="showDeniedNetwork" type="xs:boolean" />
               <!-- flag to indicate whether A/C shall allow everyone to create all user profiles -->
               <xs:element name="allowEveryoneToCreateAllUserProfiles" type="xs:boolean" />               
  
               <!-- flag to indicate whether to restrict networks configured by GP to use GP profiles only (namespace: http://www.microsoft.com/networking/WLAN/policy/v2) -->
               <xs:element name="onlyUseGPProfilesForAllowedNetworks" type="xs:boolean" minOccurs="0"  maxOccurs="1"/>
  
               <!-- flag to indicate whether to enable software access point (namespace: http://www.microsoft.com/networking/WLAN/policy/v3) -->
               <xs:element name="enbleSoftAP" type="xs:boolean" minOccurs="0"  maxOccurs="1"/>
  
               <!-- flag to indicate whether to enable explicit credentials (namespace: http://www.microsoft.com/networking/WLAN/policy/v3) -->
               <xs:element name="enableExplicitCreds" type="xs:boolean" minOccurs="0"  maxOccurs="1"/>
  
               <!-- value of block time-out period (namespace: http://www.microsoft.com/networking/WLAN/policy/v3) -->
               <!-- the default value is 20 minutes when element not present -->
               <xs:element name="blockPeriod" minOccurs="0" maxOccurs="1">
                 <xs:simpleType>
                   <xs:restriction base="xs:integer">
                     <xs:minInclusive value="0" />
                     <xs:maxInclusive value="60" />
                   </xs:restriction>
                 </xs:simpleType>
               </xs:element>
  
               <!-- flag to indicate whether to enable WFD (namespace: http://www.microsoft.com/networking/WLAN/policy/v4) -->
               <xs:element name="enableWFD" type="xs:boolean" minOccurs="0"  maxOccurs="1"/>
  
               <!-- extension point for other namespaces -->
               <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
             </xs:sequence>
           </xs:complexType>
         </xs:element>
  
         <!-- network filter list specification; could be empty -->
         <xs:element name="networkFilter" minOccurs="0">
           <xs:complexType>
             <xs:sequence>
               <!-- Allow list of networks; always take precedence over block list or deny all -->
               <xs:element name="allowList" minOccurs="0">
                 <xs:complexType>
                   <xs:sequence>
                     <xs:element name="network" type="networkItemType" maxOccurs="unbounded" />
  
                     <!-- extension point for future namespaces -->
                     <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
                   </xs:sequence>
                 </xs:complexType>
               </xs:element>
  
               <!-- Block list of networks, specified one by one -->
               <xs:element name="blockList" minOccurs="0">
                 <xs:complexType>
                   <xs:sequence>
                     <xs:element name="network" type="networkItemType" maxOccurs="unbounded" />
  
                     <!-- extension point for future namespaces -->
                     <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
                   </xs:sequence>
                 </xs:complexType>
               </xs:element>
  
               <!-- flag for denying access to any ad hoc network; default is "false" -->
               <xs:element name="denyAllIBSS" type="xs:boolean" minOccurs="0" />
  
               <!-- flag for denying access to any infrastructure network; default is "false" -->
               <xs:element name="denyAllESS" type="xs:boolean" minOccurs="0" />
  
               <!-- extension point for other namespaces -->
               <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
             </xs:sequence>
           </xs:complexType>
         </xs:element>
  
         <!--
             List of profiles within the policy. It is optional. 
             When present, it shall contain at least one profile.
         -->
         <xs:element name="profileList" minOccurs="0">
           <xs:complexType>
             <xs:sequence>
               <!--
                   Placeholder to hook in profile namespace; code must enforce only the profile
                   namespace that is imported here. All other namespaces shall be ignored.
               -->
               <xs:any namespace="##other" processContents="lax" maxOccurs="unbounded" />
             </xs:sequence>
           </xs:complexType>
         </xs:element>
  
         <!-- extension point for other namespaces -->
         <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
  
       </xs:sequence>
     </xs:complexType>
   </xs:element>
 </xs:schema>