From: <mcu...@us...> - 2008-11-19 22:47:21
|
Revision: 1337 http://orm.svn.sourceforge.net/orm/?rev=1337&view=rev Author: mcurland Date: 2008-11-19 22:47:15 +0000 (Wed, 19 Nov 2008) Log Message: ----------- Modified LinqToSql service layer generation based on forum recommendations from John Bailey. refs #364 Incremented version number in preparation for 2008-10 CTP release. refs #193 Modified Paths: -------------- trunk/VersionGenerator.exe.config trunk/XML/DCILtoLINQ/DCILtoLinqAttributeMapping.xslt trunk/XML/DCILtoLINQ/LinqToSqlSettings.xml trunk/XML/DCILtoLINQ/LinqToSqlSettings.xslt Modified: trunk/VersionGenerator.exe.config =================================================================== --- trunk/VersionGenerator.exe.config 2008-11-18 22:29:11 UTC (rev 1336) +++ trunk/VersionGenerator.exe.config 2008-11-19 22:47:15 UTC (rev 1337) @@ -2,7 +2,7 @@ <configuration> <appSettings> <add key="RevisionStartYearMonth" value="2006-01"/> - <add key="ReleaseYearMonth" value="2008-05"/> + <add key="ReleaseYearMonth" value="2008-10"/> <!-- ReleaseType: "CTP" or "RTM" --> <add key="ReleaseType" value="CTP"/> <!-- Changes to the major and/or minor version numbers have extreme effects across every part of the product. --> Modified: trunk/XML/DCILtoLINQ/DCILtoLinqAttributeMapping.xslt =================================================================== --- trunk/XML/DCILtoLINQ/DCILtoLinqAttributeMapping.xslt 2008-11-18 22:29:11 UTC (rev 1336) +++ trunk/XML/DCILtoLINQ/DCILtoLinqAttributeMapping.xslt 2008-11-19 22:47:15 UTC (rev 1337) @@ -131,14 +131,14 @@ <xsl:variable name="setting" select="string($LinqToSqlSettings/opt:ServiceLayer/@Generate)"/> <xsl:choose> <xsl:when test="$setting"> - <xsl:value-of select="$setting='false' or $setting='0'"/> + <xsl:value-of select="$setting='true' or $setting='1'"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="false()"/> </xsl:otherwise> </xsl:choose> </xsl:variable> - <xsl:variable name="GenerateServiceLayer" select="string($GenerateServiceLayerFragment)"/> + <xsl:variable name="GenerateServiceLayer" select="string($GenerateServiceLayerFragment)='true'"/> <xsl:variable name="CreateKeywordFragment"> <xsl:variable name="setting" select="string($LinqToSqlSettings/opt:ServiceLayer/@CreateKeyword)"/> <xsl:choose> @@ -234,7 +234,31 @@ </xsl:otherwise> </xsl:choose> </xsl:variable> - <xsl:variable name="UseTransactionScopes" select="string($UseTransactionScopesFragment)"/> + <xsl:variable name="UseTransactionScopes" select="string($UseTransactionScopesFragment)='true'"/> + <xsl:variable name="UseTransactionFlowFragment"> + <xsl:variable name="setting" select="string($LinqToSqlSettings/opt:ServiceLayer/@UseTransactionFlow)"/> + <xsl:choose> + <xsl:when test="$setting"> + <xsl:value-of select="$setting='true' or $setting='1'"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="false()"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="UseTransactionFlow" select="string($UseTransactionFlowFragment)='true'"/> + <xsl:variable name="OptimizeOperationalMethodsFragment"> + <xsl:variable name="setting" select="string($LinqToSqlSettings/opt:ServiceLayer/@OptimizeOperationalMethods)"/> + <xsl:choose> + <xsl:when test="$setting"> + <xsl:value-of select="$setting='true' or $setting='1'"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="false()"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="OptimizeOperationalMethods" select="string($OptimizeOperationalMethodsFragment)='true'"/> <xsl:variable name="InstanceContextModeFragment"> <xsl:variable name="setting" select="string($LinqToSqlSettings/opt:ServiceLayer/@InstanceContextMode)"/> <xsl:choose> @@ -324,7 +348,7 @@ </xsl:template> <xsl:template name="GenerateOperationContractAttribute"> - <xsl:param name="isOneWay" select="true()"/> + <xsl:param name="isOneWay" select="$OptimizeOperationalMethods"/> <plx:attribute dataTypeName="OperationContract"> <plx:passParam> <plx:binaryOperator type="assignNamed"> @@ -367,13 +391,11 @@ <xsl:variable name="deleteFunctionParameterName" select="concat($parameterEntityNamePrefix,$to,$DeleteKeyword)"/> <!--NOTE: readFunctionName & readFunctionParameterName are more complicated and are not defined here.--> <plx:function visibility="public" name="{$createFunctionName}"> - <xsl:call-template name="GenerateOperationContractAttribute"> - <xsl:with-param name="isOneWay" select="true()"/> - </xsl:call-template> - <xsl:if test="$UseTransactionScopes"> + <xsl:call-template name="GenerateOperationContractAttribute"/> + <xsl:if test="$UseTransactionFlow and not($OptimizeOperationalMethods)"> <plx:attribute dataTypeName="TransactionFlow"> <plx:passParam> - <plx:callStatic dataTypeName="TransactionFlowOption" name="Allowed" type="property"/> + <plx:callStatic dataTypeName="TransactionFlowOption" name="Allowed" type="field"/> </plx:passParam> </plx:attribute> </xsl:if> @@ -433,13 +455,11 @@ </plx:function> </xsl:for-each> <plx:function visibility="public" name="{$updateFunctionName}"> - <xsl:call-template name="GenerateOperationContractAttribute"> - <xsl:with-param name="isOneWay" select="true()"/> - </xsl:call-template> - <xsl:if test="$UseTransactionScopes"> + <xsl:call-template name="GenerateOperationContractAttribute"/> + <xsl:if test="$UseTransactionFlow and not($OptimizeOperationalMethods)"> <plx:attribute dataTypeName="TransactionFlow"> <plx:passParam> - <plx:callStatic dataTypeName="TransactionFlowOption" name="Allowed" type="property"/> + <plx:callStatic dataTypeName="TransactionFlowOption" name="Allowed" type="field"/> </plx:passParam> </plx:attribute> </xsl:if> @@ -447,13 +467,11 @@ <plx:param dataTypeName="{$entityName}" name="{$updateFunctionParameterNameOld}"/> </plx:function> <plx:function name="{$deleteFunctionName}" visibility="public"> - <xsl:call-template name="GenerateOperationContractAttribute"> - <xsl:with-param name="isOneWay" select="true()"/> - </xsl:call-template> - <xsl:if test="$UseTransactionScopes"> + <xsl:call-template name="GenerateOperationContractAttribute"/> + <xsl:if test="$UseTransactionFlow and not($OptimizeOperationalMethods)"> <plx:attribute dataTypeName="TransactionFlow"> <plx:passParam> - <plx:callStatic dataTypeName="TransactionFlowOption" name="Allowed" type="property"/> + <plx:callStatic dataTypeName="TransactionFlowOption" name="Allowed" type="field"/> </plx:passParam> </plx:attribute> </xsl:if> @@ -543,7 +561,7 @@ <plx:attribute dataTypeName="OnSerializingAttribute"/> <plx:attribute dataTypeName="EditorBrowsableAttribute"> <plx:passParam> - <plx:callStatic dataTypeName="EditorBrowsableState" name="Never" type="property"/> + <plx:callStatic dataTypeName="EditorBrowsableState" name="Never" type="field"/> </plx:passParam> </plx:attribute> <plx:param dataTypeName="StreamingContext" name="context"/> @@ -560,7 +578,7 @@ <plx:attribute dataTypeName="OnSerializedAttribute"/> <plx:attribute dataTypeName="EditorBrowsableAttribute"> <plx:passParam> - <plx:callStatic dataTypeName="EditorBrowsableState" name="Never" type="property"/> + <plx:callStatic dataTypeName="EditorBrowsableState" name="Never" type="field"/> </plx:passParam> </plx:attribute> <plx:param dataTypeName="StreamingContext" name="context"/> @@ -577,7 +595,7 @@ <plx:attribute dataTypeName="OnDeserializingAttribute"/> <plx:attribute dataTypeName="EditorBrowsableAttribute"> <plx:passParam> - <plx:callStatic dataTypeName="EditorBrowsableState" name="Never" type="property"/> + <plx:callStatic dataTypeName="EditorBrowsableState" name="Never" type="field"/> </plx:passParam> </plx:attribute> <plx:param dataTypeName="StreamingContext" name="context"/> @@ -1791,7 +1809,7 @@ <plx:nameRef name="InstanceContextMode"/> </plx:left> <plx:right> - <plx:callStatic dataTypeName="InstanceContextMode" name="{$InstanceContextMode}" type="property"/> + <plx:callStatic dataTypeName="InstanceContextMode" name="{$InstanceContextMode}" type="field"/> </plx:right> </plx:binaryOperator> </plx:passParam> @@ -2195,7 +2213,7 @@ <plx:nameRef name="InstanceContextMode"/> </plx:left> <plx:right> - <plx:callStatic dataTypeName="InstanceContextMode" name="{$InstanceContextMode}" type="property"/> + <plx:callStatic dataTypeName="InstanceContextMode" name="{$InstanceContextMode}" type="field"/> </plx:right> </plx:binaryOperator> </plx:passParam> Modified: trunk/XML/DCILtoLINQ/LinqToSqlSettings.xml =================================================================== --- trunk/XML/DCILtoLINQ/LinqToSqlSettings.xml 2008-11-18 22:29:11 UTC (rev 1336) +++ trunk/XML/DCILtoLINQ/LinqToSqlSettings.xml 2008-11-19 22:47:15 UTC (rev 1337) @@ -1,17 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <LinqToSqlSettings xmlns="http://schemas.neumont.edu/ORM/2008-04/LinqToSql/Settings"> <!--These settings affect LinqToSql generators, but modifications here - have no effect until the .ORM file is regenerated. To force regenerationt, right + have no effect until the .ORM file is regenerated. To force regeneration, right click the parent .ORM file in the Solution Explorer and choose 'Run Custom Tool'. The schema file at the end this settings file is designed to help you customize your settings. For any of the settings areas, click immediately after the element - name and click space to see a list of individual attributes.--> + name and press space to see a list of individual attributes.--> <!--Change connection string properties here--> <ConnectionString DataSource="." SettingsProperty="" DatabaseName="" /> <!--Change basic name generation settings--> <NameParts /> - <!--Change WCF name generation settings--> - <ServiceLayer /> + <!--Change WCF service layer generation settings.--> + <ServiceLayer Generate="true" /> <!--Inline settings schema, do not modify--> <xs:schema targetNamespace="http://schemas.neumont.edu/ORM/2008-04/LinqToSql/Settings" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="LinqToSqlSettings"> @@ -43,27 +43,27 @@ <xs:complexType> <xs:attribute name="DataContextClassSuffix" type="NamePartType" default="DataContext"> <xs:annotation> - <xs:documentation>The text appended to the name of the generated class that is derived from System.Data.Linq.DataContext</xs:documentation> + <xs:documentation>The text appended to the name of the generated class that is derived from System.Data.Linq.DataContext. Default='DataContext'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="DataContextTableSuffix" type="NamePartType" default="Table"> <xs:annotation> - <xs:documentation>The text appended to the names of typed table getters in a DataContext class.</xs:documentation> + <xs:documentation>The text appended to the names of typed table getters in a DataContext class. Default='Table'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="CollectionSuffix" type="NamePartType" default="Collection"> <xs:annotation> - <xs:documentation>The text appended to the names of typed EntitySet properties.</xs:documentation> + <xs:documentation>The text appended to the names of typed EntitySet properties. Default='Collection'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="AssociationReferenceSuffix" type="NamePartType" default="Reference"> <xs:annotation> - <xs:documentation>The text appended to the names of typed properties used for association navigation (the source or target of a foreign key).</xs:documentation> + <xs:documentation>The text appended to the names of typed properties used for association navigation (the source or target of a foreign key). Default='Reference'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="PrivateFieldPrefix" type="NamePartType" default="_"> <xs:annotation> - <xs:documentation>The text prepended to private field names.</xs:documentation> + <xs:documentation>The text prepended to private field names. Default='_'</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> @@ -72,47 +72,62 @@ <xs:complexType> <xs:attribute name="Generate" type="xs:boolean" default="false"> <xs:annotation> - <xs:documentation>Determines whether or not the generator should include WCF DataContract attributes and ServiceContract calls.</xs:documentation> + <xs:documentation>Determines whether or not the generator should include WCF DataContract attributes and ServiceContract calls. Default=false</xs:documentation> </xs:annotation> </xs:attribute> + <xs:attribute name="UseTransactionScopes" type="xs:boolean" default="true"> + <xs:annotation> + <xs:documentation>Determines whether or not the generator should use Transaction Scopes in the operational methods. Default=true</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="UseTransactionFlow" type="xs:boolean" default="false"> + <xs:annotation> + <xs:documentation>Determines whether or not the generator should support transaction flow from the client in the WCF contract. Default=false</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="OptimizeOperationalMethods" type="xs:boolean" default="false"> + <xs:annotation> + <xs:documentation>Determines whether or not the generator should mark operational methods as one way in the contract. Transaction Flow is not used if set to true. Default=false</xs:documentation> + </xs:annotation> + </xs:attribute> <xs:attribute name="CreateKeyword" type="NamePartType" default="Insert"> <xs:annotation> - <xs:documentation>The text prepended to the name of 'create' service methods in the WCF service contract.</xs:documentation> + <xs:documentation>The text prepended to the name of 'create' service methods in the WCF service contract. Default='Insert'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="ReadKeyword" type="NamePartType" default="Select"> <xs:annotation> - <xs:documentation>The text prepended to the name of 'read' service methods in the WCF service contract.</xs:documentation> + <xs:documentation>The text prepended to the name of 'read' service methods in the WCF service contract. Default='Select'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="UpdateKeyword" type="NamePartType" default="Update"> <xs:annotation> - <xs:documentation>The text prepended to the name of 'update' service methods in the WCF service contract.</xs:documentation> + <xs:documentation>The text prepended to the name of 'update' service methods in the WCF service contract. Default='Update'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="DeleteKeyword" type="NamePartType" default="Delete"> <xs:annotation> - <xs:documentation>The text prepended to the name of 'delete' service methods in the WCF service contract.</xs:documentation> + <xs:documentation>The text prepended to the name of 'delete' service methods in the WCF service contract. Default='Delete'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="PreferredIdKeyword" type="NamePartType" default="PreferredIdentifier"> <xs:annotation> - <xs:documentation>The text appended to the name of service methods used to select by the preferred identifier.</xs:documentation> + <xs:documentation>The text appended to the name of service methods used to select by the preferred identifier. Default='PreferredIdentifier'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="ServiceNameSuffix" type="NamePartType" default="Service"> <xs:annotation> - <xs:documentation>The text appended to the name of service contract interfaces.</xs:documentation> + <xs:documentation>The text appended to the name of service contract interfaces. Default='Service'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="InitializeFunctionName" type="NamePartType" default="Initialize"> <xs:annotation> - <xs:documentation>If WCF service is generated, this specifes the function name for initializing EntitySet members for serialization.</xs:documentation> + <xs:documentation>If WCF service is generated, this specifes the function name for initializing EntitySet members for serialization. Default='Initialize'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="InstanceContextMode" default="PerCall"> <xs:annotation> - <xs:documentation>Determines the InstanceContextMode used with the ServiceBehavior attribute.</xs:documentation> + <xs:documentation>Determines the InstanceContextMode used with the ServiceBehavior attribute. Default='PerCall'</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:token"> @@ -133,4 +148,4 @@ </xs:restriction> </xs:simpleType> </xs:schema> -</LinqToSqlSettings> \ No newline at end of file +</LinqToSqlSettings> Modified: trunk/XML/DCILtoLINQ/LinqToSqlSettings.xslt =================================================================== --- trunk/XML/DCILtoLINQ/LinqToSqlSettings.xslt 2008-11-18 22:29:11 UTC (rev 1336) +++ trunk/XML/DCILtoLINQ/LinqToSqlSettings.xslt 2008-11-19 22:47:15 UTC (rev 1337) @@ -7,17 +7,17 @@ <xsl:template match="/"> <LinqToSqlSettings xmlns="http://schemas.neumont.edu/ORM/2008-04/LinqToSql/Settings"> <xsl:comment>These settings affect LinqToSql generators, but modifications here - have no effect until the .ORM file is regenerated. To force regenerationt, right - click the parent .ORM file in the Solution Explorer and choose 'Run Custom Tool'. + have no effect until the .ORM file is regenerated. To force regeneration, right + click the parent .ORM file in the Solution Explorer and choose 'Run Custom Tool'. The schema file at the end this settings file is designed to help you customize your settings. For any of the settings areas, click immediately after the element - name and click space to see a list of individual attributes.</xsl:comment> + name and press space to see a list of individual attributes.</xsl:comment> <xsl:comment>Change connection string properties here</xsl:comment> <ConnectionString DataSource="." SettingsProperty="" DatabaseName=""/> <xsl:comment>Change basic name generation settings</xsl:comment> <NameParts/> - <xsl:comment>Change WCF name generation settings</xsl:comment> - <ServiceLayer/> + <xsl:comment>Change WCF service layer generation settings</xsl:comment> + <ServiceLayer Generate="true"/> <xsl:comment>Inline settings schema, do not modify</xsl:comment> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://schemas.neumont.edu/ORM/2008-04/LinqToSql/Settings" @@ -51,27 +51,27 @@ <xs:complexType> <xs:attribute name="DataContextClassSuffix" type="NamePartType" default="DataContext"> <xs:annotation> - <xs:documentation>The text appended to the name of the generated class that is derived from System.Data.Linq.DataContext</xs:documentation> + <xs:documentation>The text appended to the name of the generated class that is derived from System.Data.Linq.DataContext. Default='DataContext'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="DataContextTableSuffix" type="NamePartType" default="Table"> <xs:annotation> - <xs:documentation>The text appended to the names of typed table getters in a DataContext class.</xs:documentation> + <xs:documentation>The text appended to the names of typed table getters in a DataContext class. Default='Table'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="CollectionSuffix" type="NamePartType" default="Collection"> <xs:annotation> - <xs:documentation>The text appended to the names of typed EntitySet properties.</xs:documentation> + <xs:documentation>The text appended to the names of typed EntitySet properties. Default='Collection'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="AssociationReferenceSuffix" type="NamePartType" default="Reference"> <xs:annotation> - <xs:documentation>The text appended to the names of typed properties used for association navigation (the source or target of a foreign key).</xs:documentation> + <xs:documentation>The text appended to the names of typed properties used for association navigation (the source or target of a foreign key). Default='Reference'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="PrivateFieldPrefix" type="NamePartType" default="_"> <xs:annotation> - <xs:documentation>The text prepended to private field names.</xs:documentation> + <xs:documentation>The text prepended to private field names. Default='_'</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> @@ -80,47 +80,62 @@ <xs:complexType> <xs:attribute name="Generate" type="xs:boolean" default="false"> <xs:annotation> - <xs:documentation>Determines whether or not the generator should include WCF DataContract attributes and ServiceContract calls.</xs:documentation> + <xs:documentation>Determines whether or not the generator should include WCF DataContract attributes and ServiceContract calls. Default=false</xs:documentation> </xs:annotation> </xs:attribute> + <xs:attribute name="UseTransactionScopes" type="xs:boolean" default="true"> + <xs:annotation> + <xs:documentation>Determines whether or not the generator should use Transaction Scopes in the operational methods. Default=true</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="UseTransactionFlow" type="xs:boolean" default="false"> + <xs:annotation> + <xs:documentation>Determines whether or not the generator should support transaction flow from the client in the WCF contract. Default=false</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="OptimizeOperationalMethods" type="xs:boolean" default="false"> + <xs:annotation> + <xs:documentation>Determines whether or not the generator should mark operational methods as one way in the contract. Transaction Flow is not used if set to true. Default=false</xs:documentation> + </xs:annotation> + </xs:attribute> <xs:attribute name="CreateKeyword" type="NamePartType" default="Insert"> <xs:annotation> - <xs:documentation>The text prepended to the name of 'create' service methods in the WCF service contract.</xs:documentation> + <xs:documentation>The text prepended to the name of 'create' service methods in the WCF service contract. Default='Insert'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="ReadKeyword" type="NamePartType" default="Select"> <xs:annotation> - <xs:documentation>The text prepended to the name of 'read' service methods in the WCF service contract.</xs:documentation> + <xs:documentation>The text prepended to the name of 'read' service methods in the WCF service contract. Default='Select'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="UpdateKeyword" type="NamePartType" default="Update"> <xs:annotation> - <xs:documentation>The text prepended to the name of 'update' service methods in the WCF service contract.</xs:documentation> + <xs:documentation>The text prepended to the name of 'update' service methods in the WCF service contract. Default='Update'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="DeleteKeyword" type="NamePartType" default="Delete"> <xs:annotation> - <xs:documentation>The text prepended to the name of 'delete' service methods in the WCF service contract.</xs:documentation> + <xs:documentation>The text prepended to the name of 'delete' service methods in the WCF service contract. Default='Delete'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="PreferredIdKeyword" type="NamePartType" default="PreferredIdentifier"> <xs:annotation> - <xs:documentation>The text appended to the name of service methods used to select by the preferred identifier.</xs:documentation> + <xs:documentation>The text appended to the name of service methods used to select by the preferred identifier. Default='PreferredIdentifier'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="ServiceNameSuffix" type="NamePartType" default="Service"> <xs:annotation> - <xs:documentation>The text appended to the name of service contract interfaces.</xs:documentation> + <xs:documentation>The text appended to the name of service contract interfaces. Default='Service'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="InitializeFunctionName" type="NamePartType" default="Initialize"> <xs:annotation> - <xs:documentation>If WCF service is generated, this specifes the function name for initializing EntitySet members for serialization.</xs:documentation> + <xs:documentation>If WCF service is generated, this specifes the function name for initializing EntitySet members for serialization. Default='Initialize'</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="InstanceContextMode" default="PerCall"> <xs:annotation> - <xs:documentation>Determines the InstanceContextMode used with the ServiceBehavior attribute.</xs:documentation> + <xs:documentation>Determines the InstanceContextMode used with the ServiceBehavior attribute. Default='PerCall'</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:token"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |