home *** CD-ROM | disk | FTP | other *** search
/ ftp.tcs3.com / ftp.tcs3.com.tar / ftp.tcs3.com / DRIVERS / Audio / Office2010 / ProPlus.WW / ProPsWW.cab / BDCMDSCH.XSD < prev    next >
Extensible Markup Language  |  2010-03-10  |  26KB  |  596 lines

  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3.            xmlns:bdc="http://schemas.microsoft.com/windows/2007/BusinessDataCatalog"
  4.            targetNamespace="http://schemas.microsoft.com/windows/2007/BusinessDataCatalog"
  5.            elementFormDefault="qualified">
  6.   <xs:element name="Model" type ="bdc:Model"/>
  7.   <xs:complexType name="Model">
  8.     <xs:complexContent>
  9.       <xs:extension base="bdc:IndividuallySecurableMetadataObject">
  10.         <xs:sequence>
  11.           <xs:element name="LobSystems" type="bdc:LobSystems" minOccurs="0" maxOccurs="1">
  12.             <xs:unique name="LobSystemNameKey">
  13.               <xs:selector xpath="*"/>
  14.               <xs:field xpath="@Name"/>
  15.             </xs:unique>
  16.           </xs:element>
  17.         </xs:sequence>
  18.       </xs:extension>
  19.     </xs:complexContent>
  20.   </xs:complexType>
  21.   <xs:complexType name="LobSystems">
  22.     <xs:sequence>
  23.       <xs:element name="LobSystem" type="bdc:LobSystem" minOccurs="1" maxOccurs="unbounded"/>
  24.     </xs:sequence>
  25.   </xs:complexType>
  26.   <xs:complexType name="MetadataObject" abstract="true">
  27.     <xs:sequence>
  28.       <xs:element name="LocalizedDisplayNames" type="bdc:LocalizedDisplayNames" minOccurs="0" maxOccurs="1">
  29.         <xs:unique name="LocalizedDisplayNameLCIDKey">
  30.           <xs:selector xpath="*"/>
  31.           <xs:field xpath="@LCID"/>
  32.         </xs:unique>
  33.       </xs:element>
  34.       <xs:element name="Properties" type="bdc:Properties" minOccurs="0" maxOccurs="1">
  35.         <xs:unique name="PropertyNameKey">
  36.           <xs:selector xpath="*"/>
  37.           <xs:field xpath="@Name"/>
  38.         </xs:unique>
  39.       </xs:element>
  40.     </xs:sequence>
  41.     <xs:attribute name="Name" type="bdc:NameString" use="required"/>
  42.     <xs:attribute name="DefaultDisplayName" type="bdc:NameString"/>
  43.     <xs:attribute name="IsCached" type="xs:boolean" default="true"/>
  44.   </xs:complexType>
  45.   <xs:complexType name="IndividuallySecurableMetadataObject" abstract="true">
  46.     <xs:complexContent>
  47.       <xs:extension base="bdc:MetadataObject">
  48.         <xs:sequence>
  49.           <xs:element name="AccessControlList" type="bdc:AccessControlList" minOccurs="0" maxOccurs="1"/>
  50.         </xs:sequence>
  51.       </xs:extension>
  52.     </xs:complexContent>
  53.   </xs:complexType>
  54.   <xs:complexType name="LocalizedDisplayNames">
  55.     <xs:sequence>
  56.       <xs:element name="LocalizedDisplayName" type="bdc:LocalizedDisplayName" minOccurs="1" maxOccurs="unbounded"/>
  57.     </xs:sequence>
  58.   </xs:complexType>
  59.   <xs:complexType name="LocalizedDisplayName" mixed="true">
  60.     <xs:attribute name="LCID" type="xs:integer" use="required"/>
  61.   </xs:complexType>
  62.   <xs:complexType name="LobSystem">
  63.     <xs:complexContent>
  64.       <xs:extension base="bdc:IndividuallySecurableMetadataObject">
  65.         <xs:sequence>
  66.           <xs:element name="Proxy" type="xs:string" minOccurs="0" maxOccurs="1"/>
  67.           <xs:element name="LobSystemInstances" type="bdc:LobSystemInstances" minOccurs="0" maxOccurs="1">
  68.             <xs:unique name="LobSystemInstanceNameKey">
  69.               <xs:selector xpath="*"/>
  70.               <xs:field xpath="@Name"/>
  71.             </xs:unique>
  72.           </xs:element>
  73.           <xs:element name="Entities" type="bdc:Entities" minOccurs="0" maxOccurs="1">
  74.             <xs:unique name="EntityNameNamespaceVersionKey">
  75.               <xs:selector xpath="*"/>
  76.               <xs:field xpath="@Name"/>
  77.               <xs:field xpath="@Namespace"/>
  78.               <xs:field xpath="@Version"/>
  79.             </xs:unique>
  80.           </xs:element>
  81.         </xs:sequence>
  82.         <xs:attribute name="Type" type="bdc:LobSystemType" use="required"/>
  83.       </xs:extension>
  84.     </xs:complexContent>
  85.   </xs:complexType>
  86.   <xs:simpleType name="LobSystemType">
  87.     <xs:restriction base="xs:string">
  88.       <xs:enumeration value="Database"/>
  89.       <xs:enumeration value="DotNetAssembly"/>
  90.       <xs:enumeration value="Wcf"/>
  91.       <xs:enumeration value="WebService"/>
  92.       <xs:enumeration value="Custom"/>
  93.     </xs:restriction>
  94.   </xs:simpleType>
  95.   <xs:complexType name="LobSystemInstances">
  96.     <xs:sequence>
  97.       <xs:element name="LobSystemInstance" type="bdc:LobSystemInstance" minOccurs="1" maxOccurs="unbounded"/>
  98.     </xs:sequence>
  99.   </xs:complexType>
  100.   <xs:complexType name="LobSystemInstance">
  101.     <xs:complexContent>
  102.       <xs:extension base="bdc:MetadataObject"/>
  103.     </xs:complexContent>
  104.   </xs:complexType>
  105.   <xs:complexType name="Entities">
  106.     <xs:sequence>
  107.       <xs:element name="Entity" type="bdc:Entity" minOccurs="1" maxOccurs="unbounded">
  108.         <xs:unique name="MethodInstanceNameKey">
  109.           <xs:selector xpath=".//bdc:MethodInstances/*"/>
  110.           <xs:field xpath="@Name"/>
  111.         </xs:unique>
  112.       </xs:element>
  113.     </xs:sequence>
  114.   </xs:complexType>
  115.   <xs:complexType name ="Entity">
  116.     <xs:complexContent>
  117.       <xs:extension base="bdc:IndividuallySecurableMetadataObject">
  118.         <xs:sequence>
  119.           <xs:element name="Identifiers" type="bdc:Identifiers" minOccurs="0">
  120.             <xs:unique name="IdentifierNameKey">
  121.               <xs:selector xpath="*"/>
  122.               <xs:field xpath="@Name"/>
  123.             </xs:unique>
  124.           </xs:element>
  125.           <xs:element name="Methods" type="bdc:Methods" minOccurs="0">
  126.             <xs:unique name="MethodNameKey">
  127.               <xs:selector xpath="*"/>
  128.               <xs:field xpath="@Name"/>
  129.             </xs:unique>
  130.           </xs:element>
  131.           <xs:element name="AssociationGroups" type="bdc:AssociationGroups" minOccurs="0">
  132.             <xs:unique name="AssociationGroupNameKey">
  133.               <xs:selector xpath="*"/>
  134.               <xs:field xpath="@Name"/>
  135.             </xs:unique>
  136.           </xs:element>
  137.           <xs:element name="Actions" type="bdc:Actions" minOccurs="0">
  138.             <xs:unique name="ActionNameKey">
  139.               <xs:selector xpath="*"/>
  140.               <xs:field xpath="@Name"/>
  141.             </xs:unique>
  142.           </xs:element>
  143.         </xs:sequence>
  144.         <xs:attribute name="Namespace" type="bdc:NameString" use="required"/>
  145.         <xs:attribute name="Version" type="bdc:VersionString" use="required"/>
  146.         <xs:attribute name="EstimatedInstanceCount" type="bdc:InstanceCount" default="10000"/>
  147.         <xs:attribute name="DefaultOperationMode" type="bdc:OperationModeType" default="Default" use="optional"/>
  148.       </xs:extension>
  149.     </xs:complexContent>
  150.   </xs:complexType>
  151.   <xs:simpleType name="OperationModeType">
  152.     <xs:restriction base="xs:string">
  153.       <xs:enumeration value="Online"/>
  154.       <xs:enumeration value="Cached"/>
  155.       <xs:enumeration value="Offline"/>
  156.       <xs:enumeration value="Default"/>
  157.     </xs:restriction>
  158.   </xs:simpleType>
  159.   <xs:complexType name="AssociationGroups">
  160.     <xs:sequence>
  161.       <xs:element name ="AssociationGroup" type="bdc:AssociationGroup" minOccurs="1" maxOccurs="unbounded">
  162.         <xs:unique name="AssociationReferenceAssociationNameEntityNameEntityNamespaceKey">
  163.           <xs:selector xpath="*"/>
  164.           <xs:field xpath="@EntityNamespace"/>
  165.           <xs:field xpath="@EntityName"/>
  166.           <xs:field xpath="@AssociationName"/>
  167.         </xs:unique>
  168.       </xs:element>
  169.     </xs:sequence>
  170.   </xs:complexType>
  171.   <xs:complexType name ="AssociationGroup">
  172.     <xs:complexContent>
  173.       <xs:extension base="bdc:MetadataObject">
  174.         <xs:sequence>
  175.           <xs:element name="AssociationReference" type="bdc:AssociationReference" minOccurs="1" maxOccurs="unbounded" />
  176.         </xs:sequence>
  177.       </xs:extension>
  178.     </xs:complexContent>
  179.   </xs:complexType>
  180.   <xs:complexType name="AssociationReference">
  181.     <xs:attribute name="EntityNamespace" type="bdc:NameString" use="optional" />
  182.     <xs:attribute name="EntityName" type="bdc:NameString" use="optional" />
  183.     <xs:attribute name="AssociationName" type="bdc:NameString" use="required" />
  184.     <xs:attribute name="Reverse" type="xs:boolean" use="optional" default="false" />
  185.   </xs:complexType>
  186.   <xs:complexType name="Identifiers">
  187.     <xs:sequence>
  188.       <xs:element name="Identifier" type="bdc:Identifier" minOccurs="1" maxOccurs="unbounded"/>
  189.     </xs:sequence>
  190.   </xs:complexType>
  191.   <xs:complexType name="Identifier">
  192.     <xs:complexContent>
  193.       <xs:extension base="bdc:MetadataObject">
  194.         <xs:attribute name="TypeName" type="bdc:IdentifierType" use="required"/>
  195.       </xs:extension>
  196.     </xs:complexContent>
  197.   </xs:complexType>
  198.   <xs:simpleType name="IdentifierType">
  199.     <xs:restriction base="xs:string">
  200.       <xs:enumeration value="System.Boolean"/>
  201.       <xs:enumeration value="System.Byte"/>
  202.       <xs:enumeration value="System.Char"/>
  203.       <xs:enumeration value="System.DateTime"/>
  204.       <xs:enumeration value="System.Decimal"/>
  205.       <xs:enumeration value="System.Double"/>
  206.       <xs:enumeration value="System.Guid"/>
  207.       <xs:enumeration value="System.Int16"/>
  208.       <xs:enumeration value="System.Int32"/>
  209.       <xs:enumeration value="System.Int64"/>
  210.       <xs:enumeration value="System.SByte"/>
  211.       <xs:enumeration value="System.Single"/>
  212.       <xs:enumeration value="System.String"/>
  213.       <xs:enumeration value="System.TimeSpan"/>
  214.       <xs:enumeration value="System.UInt16"/>
  215.       <xs:enumeration value="System.UInt32"/>
  216.       <xs:enumeration value="System.UInt64"/>
  217.     </xs:restriction>
  218.   </xs:simpleType>
  219.   <xs:complexType name="Methods">
  220.     <xs:sequence>
  221.       <xs:element name="Method" type="bdc:Method" minOccurs="1" maxOccurs="unbounded">
  222.         <xs:key name="ParameterNameKey">
  223.           <xs:selector xpath=".//bdc:Parameter"/>
  224.           <xs:field xpath="@Name"/>
  225.         </xs:key>
  226.         <xs:keyref name="ParameterNameRef" refer="bdc:ParameterNameKey">
  227.           <xs:selector xpath=".//bdc:MethodInstances/*"/>
  228.           <xs:field xpath="@ReturnParameterName"/>
  229.         </xs:keyref>
  230.         <xs:key name="MethodMethodInstanceNameKey">
  231.           <xs:selector xpath=".//bdc:MethodInstances/*"/>
  232.           <xs:field xpath="@Name"/>
  233.         </xs:key>
  234.         <xs:keyref name="DefaultValueMethodInstanceNameRef" refer="bdc:MethodMethodInstanceNameKey">
  235.           <xs:selector xpath=".//bdc:DefaultValue"/>
  236.           <xs:field xpath="@MethodInstanceName"/>
  237.         </xs:keyref>
  238.       </xs:element>
  239.     </xs:sequence>
  240.   </xs:complexType>
  241.   <xs:complexType name="Method">
  242.     <xs:complexContent>
  243.       <xs:extension base="bdc:IndividuallySecurableMetadataObject">
  244.         <xs:sequence>
  245.           <xs:element name="FilterDescriptors" type="bdc:FilterDescriptors" minOccurs="0" maxOccurs="1">
  246.             <xs:unique name="FilterDescriptorNameKey">
  247.               <xs:selector xpath="*"/>
  248.               <xs:field xpath="@Name"/>
  249.             </xs:unique>
  250.           </xs:element>
  251.           <xs:element name="Parameters" type="bdc:Parameters" minOccurs="0" maxOccurs="1"/>
  252.           <xs:element name ="MethodInstances" type="bdc:MethodInstances" minOccurs="0" maxOccurs="1"/>
  253.         </xs:sequence>
  254.         <xs:attribute name="IsStatic" type="xs:boolean" default="true"/>
  255.         <xs:attribute name="LobName" type="bdc:NameString" use="optional"/>
  256.       </xs:extension>
  257.     </xs:complexContent>
  258.   </xs:complexType>
  259.   <xs:complexType name="FilterDescriptors">
  260.     <xs:sequence>
  261.       <xs:element name="FilterDescriptor" type="bdc:FilterDescriptor" minOccurs="1" maxOccurs="unbounded"/>
  262.     </xs:sequence>
  263.   </xs:complexType>
  264.   <xs:complexType name="FilterDescriptor">
  265.     <xs:complexContent>
  266.       <xs:extension base="bdc:MetadataObject">
  267.         <xs:attribute name="Type" type="bdc:FilterDescriptorType" use="required"/>
  268.         <xs:attribute name="FilterField" type="bdc:NameString" use="optional" />
  269.       </xs:extension>
  270.     </xs:complexContent>
  271.   </xs:complexType>
  272.   <xs:simpleType name="FilterDescriptorType">
  273.     <xs:restriction base="xs:string">
  274.       <xs:enumeration value="Limit"/>
  275.       <xs:enumeration value="PageNumber"/>
  276.       <xs:enumeration value="Wildcard"/>
  277.       <xs:enumeration value="UserContext"/>
  278.       <xs:enumeration value="UserCulture"/>
  279.       <xs:enumeration value="Username"/>
  280.       <xs:enumeration value="Password"/>
  281.       <xs:enumeration value="LastId"/>
  282.       <xs:enumeration value="SsoTicket"/>
  283.       <xs:enumeration value="UserProfile"/>
  284.       <xs:enumeration value="Comparison"/>
  285.       <xs:enumeration value="Timestamp"/>
  286.       <xs:enumeration value="Input"/>
  287.       <xs:enumeration value="Output"/>
  288.       <xs:enumeration value="InputOutput"/>
  289.       <xs:enumeration value="Batching"/>
  290.       <xs:enumeration value="BatchingTermination"/>
  291.       <xs:enumeration value="ActivityId"/>
  292.     </xs:restriction>
  293.   </xs:simpleType>
  294.  
  295.   <xs:complexType name="MethodInstances">
  296.     <xs:choice minOccurs="1" maxOccurs="unbounded">
  297.       <xs:element name="Association" type="bdc:Association">
  298.         <xs:unique name="SourceEntityNameNamespaceKey">
  299.            <xs:selector xpath="bdc:SourceEntity"/>
  300.            <xs:field xpath="@Name"/>
  301.            <xs:field xpath="@Namespace"/>
  302.         </xs:unique>
  303.       </xs:element>
  304.       <xs:element name="MethodInstance" type="bdc:MethodInstance" />
  305.     </xs:choice>
  306.   </xs:complexType>
  307.  
  308.   <xs:complexType name="MethodInstance">
  309.     <xs:complexContent>
  310.       <xs:extension base="bdc:IndividuallySecurableMetadataObject">
  311.         <xs:attribute name="Type" type="bdc:MethodInstanceType" use="required"/>
  312.         <xs:attribute name="Default" type="xs:boolean" use="optional" default="false"/>
  313.         <xs:attribute name="ReturnParameterName" type="bdc:NameString" use="optional"/>
  314.         <xs:attribute name="ReturnTypeDescriptorName" type="bdc:NameString" use="optional"/>
  315.         <xs:attribute name="ReturnTypeDescriptorLevel" type="bdc:ReturnTypeDescriptorLevel" use="optional"/>
  316.         <xs:attribute name="ReturnTypeDescriptorPath" type="xs:string" use="optional"/>
  317.       </xs:extension>
  318.     </xs:complexContent>
  319.   </xs:complexType>
  320.   <xs:simpleType name="MethodInstanceType">
  321.     <xs:restriction base="xs:string">
  322.       <xs:enumeration value="Finder"/>
  323.       <xs:enumeration value="SpecificFinder"/>
  324.       <xs:enumeration value="GenericInvoker"/>
  325.       <xs:enumeration value="IdEnumerator"/>
  326.       <xs:enumeration value="ChangedIdEnumerator"/>
  327.       <xs:enumeration value="DeletedIdEnumerator"/>
  328.       <xs:enumeration value="Scalar"/>
  329.       <xs:enumeration value="AccessChecker"/>
  330.       <xs:enumeration value="AssociationNavigator" />
  331.       <xs:enumeration value="Associator" />
  332.       <xs:enumeration value="Disassociator" />
  333.       <xs:enumeration value="Creator"/>
  334.       <xs:enumeration value="Deleter"/>
  335.       <xs:enumeration value="Updater"/>
  336.       <xs:enumeration value="StreamAccessor"/>
  337.       <xs:enumeration value="BinarySecurityDescriptorAccessor"/>
  338.       <xs:enumeration value="BulkSpecificFinder"/>
  339.       <xs:enumeration value="BulkAssociatedIdEnumerator" />
  340.       <xs:enumeration value="BulkAssociationNavigator" />
  341.       <xs:enumeration value="BulkIdEnumerator"/>
  342.     </xs:restriction>
  343.   </xs:simpleType>
  344.   <xs:complexType name="Parameters">
  345.     <xs:sequence>
  346.       <xs:element name="Parameter" type="bdc:Parameter" minOccurs="1" maxOccurs="unbounded"/>
  347.     </xs:sequence>
  348.   </xs:complexType>
  349.   <xs:complexType name="Parameter">
  350.     <xs:complexContent>
  351.       <xs:extension base="bdc:MetadataObject">
  352.         <xs:sequence>
  353.           <xs:element name="TypeDescriptor" type="bdc:TypeDescriptor"/>
  354.         </xs:sequence>
  355.         <xs:attribute name="Direction" type="bdc:ParameterDirection" use="required"/>
  356.       </xs:extension>
  357.     </xs:complexContent>
  358.   </xs:complexType>
  359.   <xs:simpleType name="ParameterDirection">
  360.     <xs:restriction base="xs:string">
  361.       <xs:enumeration value="In"/>
  362.       <xs:enumeration value="Out"/>
  363.       <xs:enumeration value="InOut"/>
  364.       <xs:enumeration value="Return"/>
  365.     </xs:restriction>
  366.   </xs:simpleType>
  367.   <xs:complexType name="TypeDescriptor">
  368.     <xs:complexContent>
  369.       <xs:extension base="bdc:MetadataObject">
  370.         <xs:sequence>
  371.           <xs:element name="Interpretation" type="bdc:Interpretation" minOccurs="0"/>
  372.           <xs:element name="DefaultValues" type="bdc:DefaultValues" minOccurs="0">
  373.             <xs:unique name="DefaultValueMethodInstanceNameKey">
  374.               <xs:selector xpath="*"/>
  375.               <xs:field xpath="@MethodInstanceName"/>
  376.             </xs:unique>
  377.           </xs:element>
  378.           <xs:element name="TypeDescriptors" type="bdc:TypeDescriptors" minOccurs="0">
  379.             <xs:unique name="TypeDescriptorNameKey">
  380.               <xs:selector xpath="*"/>
  381.               <xs:field xpath="@Name"/>
  382.             </xs:unique>
  383.           </xs:element>
  384.         </xs:sequence>
  385.         <xs:attribute name="TypeName" type="bdc:TypeDescriptorTypeNameString" use="required"/>
  386.         <xs:attribute name="LobName" type="bdc:NameString" use="optional"/>
  387.         <xs:attribute name="IdentifierEntityNamespace" type="bdc:NameString" use="optional"/>
  388.         <xs:attribute name="IdentifierEntityName" type="bdc:NameString" use="optional"/>
  389.         <xs:attribute name="IdentifierName" type="bdc:NameString" use="optional"/>
  390.         <xs:attribute name="ForeignIdentifierAssociationName" type="bdc:NameString" use="optional"/>
  391.         <xs:attribute name="ForeignIdentifierAssociationEntityName" type="bdc:NameString" use="optional"/>
  392.         <xs:attribute name="ForeignIdentifierAssociationEntityNamespace" type="bdc:NameString" use="optional"/>
  393.         <xs:attribute name="AssociatedFilter" type="bdc:NameString" use="optional"/>
  394.         <xs:attribute name="IsCollection" type="xs:boolean" default="false" use="optional"/>
  395.         <xs:attribute name="ReadOnly" type="xs:boolean" default="false" use="optional"/>
  396.         <xs:attribute name="CreatorField" type="xs:boolean" default="false" use="optional"/>
  397.         <xs:attribute name="UpdaterField" type="xs:boolean" default="false" use="optional"/>
  398.         <xs:attribute name="PreUpdaterField" type ="xs:boolean" default="false" use="optional"/>
  399.         <xs:attribute name="Significant" type="xs:boolean" default="true" use="optional"/>
  400.       </xs:extension>
  401.     </xs:complexContent>
  402.   </xs:complexType>
  403.   <xs:complexType name="DefaultValues">
  404.     <xs:sequence>
  405.       <xs:element name="DefaultValue" type="bdc:DefaultValue" minOccurs="1" maxOccurs="unbounded" nillable="true"/>
  406.     </xs:sequence>
  407.   </xs:complexType>
  408.   <xs:complexType name="DefaultValue" mixed="true">
  409.     <xs:attribute name="MethodInstanceName" type="bdc:NameString" use="required"/>
  410.     <xs:attribute name="Type" type="bdc:TypeDescriptorTypeNameString" use="required"/>
  411.   </xs:complexType>
  412.   <xs:complexType name="Interpretation">
  413.     <xs:choice minOccurs="1" maxOccurs="unbounded">
  414.       <xs:element name="ConvertType" type="bdc:ConvertType" />
  415.       <xs:element name="NormalizeDateTime" type="bdc:NormalizeDateTime" />
  416.       <xs:element name="NormalizeString" type="bdc:NormalizeString" />
  417.     </xs:choice>
  418.   </xs:complexType>
  419.  
  420.   <xs:complexType name="ConvertType">
  421.     <xs:attribute name="LOBType" type="bdc:TypeNameString" use="required" />
  422.     <xs:attribute name="BDCType" type="bdc:TypeNameString" use="required" />
  423.     <xs:attribute name="LOBLocale" type="bdc:TypeNameString" use="optional" />
  424.   </xs:complexType>
  425.  
  426.   <xs:simpleType name="StringNormalizeMode">
  427.     <xs:restriction base="xs:string">
  428.       <xs:enumeration value="NoChange" />
  429.       <xs:enumeration value="NormalizeToEmptyString" />
  430.       <xs:enumeration value="NormalizeToNull" />
  431.     </xs:restriction>
  432.   </xs:simpleType>
  433.  
  434.   <xs:complexType name="NormalizeString">
  435.     <xs:attribute name="FromLOB" type="bdc:StringNormalizeMode" use="required" />
  436.     <xs:attribute name="ToLOB" type="bdc:StringNormalizeMode" use="required" />
  437.   </xs:complexType>
  438.  
  439.   <xs:simpleType name="LobDateTimeMode">
  440.     <xs:restriction base="xs:string">
  441.       <xs:enumeration value="UTC" />
  442.       <xs:enumeration value="Local" />
  443.       <xs:enumeration value="Unspecified" />
  444.     </xs:restriction>
  445.   </xs:simpleType>
  446.  
  447.   <xs:complexType name="NormalizeDateTime">
  448.     <xs:attribute name="LobDateTimeMode" type="bdc:LobDateTimeMode" use="required" />
  449.   </xs:complexType>
  450.  
  451.   <xs:complexType name="TypeDescriptors">
  452.     <xs:sequence>
  453.       <xs:element name="TypeDescriptor" type="bdc:TypeDescriptor" minOccurs="1" maxOccurs="unbounded"/>
  454.     </xs:sequence>
  455.   </xs:complexType>
  456.   <xs:complexType name="Actions">
  457.     <xs:sequence>
  458.       <xs:element name="Action" type="bdc:Action" minOccurs="1" maxOccurs="unbounded"/>
  459.     </xs:sequence>
  460.   </xs:complexType>
  461.   <xs:complexType name="Action">
  462.     <xs:complexContent>
  463.       <xs:extension base="bdc:MetadataObject">
  464.         <xs:sequence>
  465.           <xs:element name="ActionParameters" type="bdc:ActionParameters" minOccurs="0">
  466.             <xs:unique name="ActionParameterNameKey">
  467.               <xs:selector xpath="*"/>
  468.               <xs:field xpath="@Name"/>
  469.             </xs:unique>
  470.             <xs:unique name="ActionParameterIndexKey">
  471.               <xs:selector xpath="*"/>
  472.               <xs:field xpath="@Index"/>
  473.             </xs:unique>
  474.           </xs:element>
  475.         </xs:sequence>
  476.         <xs:attribute name="Position" type="bdc:ActionPosition" use="required"/>
  477.         <xs:attribute name="IsOpenedInNewWindow" type="xs:boolean" default="false"/>
  478.         <xs:attribute name="Url" type="bdc:UrlString" use="required"/>
  479.         <xs:attribute name="ImageUrl" type="bdc:UrlString"/>
  480.       </xs:extension>
  481.     </xs:complexContent>
  482.   </xs:complexType>
  483.   <xs:complexType name="ActionParameters">
  484.     <xs:sequence>
  485.       <xs:element name="ActionParameter" type="bdc:ActionParameter" minOccurs="1" maxOccurs="unbounded"/>
  486.     </xs:sequence>
  487.   </xs:complexType>
  488.   <xs:complexType name="ActionParameter">
  489.     <xs:complexContent>
  490.       <xs:extension base="bdc:MetadataObject">
  491.         <xs:attribute name="Index" type="bdc:Ordinal" use="required"/>
  492.       </xs:extension>
  493.     </xs:complexContent>
  494.   </xs:complexType>
  495.   <xs:complexType name="Association">
  496.     <xs:complexContent>
  497.       <xs:extension base="bdc:MethodInstance">
  498.         <xs:sequence>
  499.           <xs:element name="SourceEntity" type="bdc:SourceEntity" minOccurs="1" maxOccurs="unbounded"/>
  500.           <xs:element name="DestinationEntity" type="bdc:DestinationEntity" minOccurs="1" maxOccurs="1"/>
  501.         </xs:sequence>
  502.       </xs:extension>
  503.     </xs:complexContent>
  504.   </xs:complexType>
  505.   <xs:complexType name="SourceEntity">
  506.     <xs:attribute name="Namespace" type="bdc:NameString" use="required"/>
  507.     <xs:attribute name="Name" type="bdc:NameString" use="required"/>
  508.   </xs:complexType>
  509.   <xs:complexType name="DestinationEntity">
  510.     <xs:attribute name="Namespace" type="bdc:NameString" use="required"/>
  511.     <xs:attribute name="Name" type="bdc:NameString" use="required"/>
  512.   </xs:complexType>
  513.   <xs:complexType name="Property" mixed="true">
  514.     <xs:attribute name="Name" type="bdc:NameString" use="required"/>
  515.     <xs:attribute name="Type" type="bdc:TypeNameString" use="required"/>
  516.   </xs:complexType>
  517.   <xs:complexType name="Properties">
  518.     <xs:sequence>
  519.       <xs:element name="Property" type="bdc:Property" minOccurs="1" maxOccurs="unbounded"/>
  520.     </xs:sequence>
  521.   </xs:complexType>
  522.   <xs:simpleType name="Ordinal">
  523.     <xs:restriction base="xs:integer">
  524.       <xs:minInclusive value="0"/>
  525.     </xs:restriction>
  526.   </xs:simpleType>
  527.   <xs:simpleType name="InstanceCount">
  528.     <xs:restriction base="xs:integer">
  529.       <xs:minInclusive value="0"/>
  530.     </xs:restriction>
  531.   </xs:simpleType>
  532.   <xs:simpleType name="ReturnTypeDescriptorLevel">
  533.     <xs:restriction base="xs:integer">
  534.       <xs:minInclusive value="0"/>
  535.       <xs:maxInclusive value="29"/>
  536.     </xs:restriction>
  537.   </xs:simpleType>
  538.   <xs:simpleType name="ActionPosition">
  539.     <xs:restriction base="xs:integer">
  540.       <xs:minInclusive value="1"/>
  541.     </xs:restriction>
  542.   </xs:simpleType>
  543.   <xs:complexType name="AccessControlList">
  544.     <xs:sequence>
  545.       <xs:element name="AccessControlEntry" type="bdc:AccessControlEntry" minOccurs="1" maxOccurs="unbounded"/>
  546.     </xs:sequence>
  547.   </xs:complexType>
  548.   <xs:complexType name="AccessControlEntry">
  549.     <xs:sequence>
  550.       <xs:element name="Right" type="bdc:Right" minOccurs="1" maxOccurs="unbounded"/>
  551.     </xs:sequence>
  552.     <xs:attribute name="Principal" type="xs:string" use="required"/>
  553.   </xs:complexType>
  554.   <xs:complexType name="Right">
  555.     <xs:attribute name="BdcRight" type="bdc:BdcRightName" use="required"/>
  556.   </xs:complexType>
  557.   <xs:simpleType name="BdcRightName">
  558.     <xs:restriction base="xs:string">
  559.       <xs:enumeration value="None"/>
  560.       <xs:enumeration value="Execute"/>
  561.       <xs:enumeration value="Edit"/>
  562.       <xs:enumeration value="SetPermissions"/>
  563.       <xs:enumeration value="SelectableInClients"/>
  564.     </xs:restriction>
  565.   </xs:simpleType>
  566.   <xs:simpleType name="NameString">
  567.     <xs:restriction base="xs:string">
  568.       <xs:minLength value="1"/>
  569.       <xs:maxLength value="255"/>
  570.     </xs:restriction>
  571.   </xs:simpleType>  
  572.   <xs:simpleType name="TypeDescriptorTypeNameString">
  573.     <xs:restriction base="xs:string">
  574.       <xs:minLength value="1"/>
  575.       <xs:maxLength value="255"/>
  576.     </xs:restriction>
  577.   </xs:simpleType>  
  578.   <xs:simpleType name="TypeNameString">
  579.     <xs:restriction base="xs:string">
  580.       <xs:minLength value="1"/>
  581.       <xs:maxLength value="255"/>
  582.     </xs:restriction>
  583.   </xs:simpleType>  
  584.   <xs:simpleType name="UrlString">
  585.     <xs:restriction base="xs:string">
  586.       <xs:minLength value="1"/>
  587.       <xs:maxLength value="2080"/>
  588.     </xs:restriction>
  589.   </xs:simpleType>  
  590.   <xs:simpleType name="VersionString">
  591.     <xs:restriction base="xs:string">
  592.       <xs:pattern value="[0-9]+(\.[0-9]+){1,3}"/>
  593.     </xs:restriction>
  594.   </xs:simpleType>
  595. </xs:schema>
  596.