[Mono-bugs] [Bug 540001] New: WSDL generation fails in ServiceDebugBehavior

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Thu Sep 17 13:38:41 EDT 2009


http://bugzilla.novell.com/show_bug.cgi?id=540001


           Summary: WSDL generation fails in ServiceDebugBehavior
    Classification: Mono
           Product: Mono: Class Libraries
           Version: SVN
          Platform: x86-64
        OS/Version: Ubuntu
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: WCF
        AssignedTo: atsushi at ximian.com
        ReportedBy: dans at houmus.org
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---


User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3)
Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)

Here's the Exception + Stack Trace:
Unhandled Exception: System.Xml.Schema.XmlSchemaException: XmlSchema error:
name must be a NCName Related schema item SourceUri: , Line 0, Position 0.
  at System.Xml.Schema.ValidationHandler.RaiseValidationEvent
(System.Xml.Schema.ValidationEventHandler handle, System.Exception
innerException, System.String message, System.Xml.Schema.XmlSchemaObject xsobj,
System.Object sender, System.String sourceUri, XmlSeverityType severity)
[0x00000] 
  at System.Xml.Schema.XmlSchemaObject.error
(System.Xml.Schema.ValidationEventHandler handle, System.String message,
System.Exception innerException, System.Xml.Schema.XmlSchemaObject xsobj,
System.Object sender) [0x00000] 
  at System.Xml.Schema.XmlSchemaObject.error
(System.Xml.Schema.ValidationEventHandler handle, System.String message)
[0x00000] 
  at System.Xml.Schema.XmlSchemaComplexType.Compile
(System.Xml.Schema.ValidationEventHandler h, System.Xml.Schema.XmlSchema
schema) [0x00000] 
  at System.Xml.Schema.XmlSchema.DoCompile
(System.Xml.Schema.ValidationEventHandler handler, System.Collections.Hashtable
handledUris, System.Xml.Schema.XmlSchemaSet col, System.Xml.XmlResolver
resolver) [0x00000] 
  at System.Xml.Schema.XmlSchema.CompileSubset
(System.Xml.Schema.ValidationEventHandler handler,
System.Xml.Schema.XmlSchemaSet col, System.Xml.XmlResolver resolver,
System.Collections.Hashtable handledUris) [0x00000] 
  at System.Xml.Schema.XmlSchema.CompileSubset
(System.Xml.Schema.ValidationEventHandler handler,
System.Xml.Schema.XmlSchemaSet col, System.Xml.XmlResolver resolver) [0x00000] 
  at System.Xml.Schema.XmlSchemaSet.Reprocess (System.Xml.Schema.XmlSchema
schema) [0x00000] 
  at System.Runtime.Serialization.CollectionTypeMap.GetSchemaType
(System.Xml.Schema.XmlSchemaSet schemas,
System.Collections.Generic.Dictionary`2 generated_schema_types) [0x00000] 
  at System.Runtime.Serialization.XsdDataContractExporter.Export (System.Type
type) [0x00000] 
  at System.ServiceModel.Description.WsdlExporter.GetSchemaElementForPart
(System.ServiceModel.Description.MessagePartDescription part,
System.Xml.Schema.XmlSchema schema) [0x00000] 
  at System.ServiceModel.Description.WsdlExporter.ExportParameters
(System.ServiceModel.Description.MessageBodyDescription msgbody, System.String
name, System.String ns) [0x00000] 
  at System.ServiceModel.Description.WsdlExporter.ExportMessageBodyDescription
(System.ServiceModel.Description.MessageBodyDescription msgbody, System.String
name, System.String ns) [0x00000] 
  at System.ServiceModel.Description.WsdlExporter.ExportContractInternal
(System.ServiceModel.Description.ContractDescription contract) [0x00000] 
  at System.ServiceModel.Description.WsdlExporter.ExportEndpoint
(System.ServiceModel.Description.ServiceEndpoint endpoint) [0x00000] 
  at System.ServiceModel.Description.ServiceMetadataExtension.get_Metadata ()
[0x00000] 
  at System.ServiceModel.Description.HttpGetWsdl.GetMetadata
(System.ServiceModel.ServiceHostBase host) [0x00000] 
  at System.ServiceModel.Description.HttpGetWsdl..ctor
(System.ServiceModel.Description.ServiceMetadataExtension metadata_extn,
System.Uri base_uri) [0x00000] 
  at
System.ServiceModel.Description.ServiceMetadataExtension.EnsureServiceMetadataDispatcher
(System.ServiceModel.Description.ServiceDescription description,
System.ServiceModel.ServiceHostBase serviceHostBase,
System.ServiceModel.Description.ServiceMetadataExtension sme, System.Uri uri,
System.ServiceModel.Channels.Binding binding) [0x00000] 
  at
System.ServiceModel.Description.ServiceMetadataExtension.EnsureServiceMetadataHttpChanelDispatcher
(System.ServiceModel.Description.ServiceDescription description,
System.ServiceModel.ServiceHostBase serviceHostBase,
System.ServiceModel.Description.ServiceMetadataExtension sme, System.Uri uri,
System.ServiceModel.Channels.Binding binding) [0x00000] 
  at
System.ServiceModel.Description.ServiceDebugBehavior.System.ServiceModel.Description.IServiceBehavior.ApplyDispatchBehavior
(System.ServiceModel.Description.ServiceDescription description,
System.ServiceModel.ServiceHostBase serviceHostBase) [0x00000] 
  at System.ServiceModel.ServiceHostBase.InitializeRuntime () [0x00000] 
  at System.ServiceModel.ServiceHostBase.OnOpen (TimeSpan timeout) [0x00000] 
  at System.ServiceModel.Channels.CommunicationObject.Open (TimeSpan timeout)
[0x00000] 
  at System.ServiceModel.Channels.CommunicationObject.Open () [0x00000] 
  at QueryService.Program.Main (System.String[] args) [0x00000] 


This is generated by ServiceDebugBehavior.*HelpEnabled being set to true by
default:

The contract looks like this:
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.ServiceModel;

namespace QueryService
{
  public static class Constants
  {
    public const string QUERY_SERVICE_NS =
"http://www.xyz.com/2009/05/QueryService";
  }

  [ServiceContract(Namespace = Constants.QUERY_SERVICE_NS)]
  interface ICatalogQuery
  {   
    [OperationContract]
    BookMetadataList GetBooks(string bookName, string startDate, string
endDate, int subIdStart, int subIdEnd, string field);

    [OperationContract]
    PublisherMetadataList GetPublishers();

    [OperationContract]
    BookClassMetadataList GetBookClasses();

    [OperationContract]
    int GetOffsetFromUtc(string publisherCode, string date);

    [OperationContract]
    List<string> GetBooks(string publisherCode, string bookClassCode);

    [OperationContract]
    AdditionalMetadata GetAdditionalMetadata(string bookCode);
  }

  [DataContract(Namespace = Constants.QUERY_SERVICE_NS)]
  public class BookClassMetadata
  {
    [DataMember]
    public string Code;
    [DataMember]
    public string Name;
  }


  [CollectionDataContract(Name = "{0}List", ItemName = "BookClassMetadata",
                           Namespace = Constants.QUERY_SERVICE_NS)]
  public class BookClassMetadataList : List<BookClassMetadata> { }

  [DataContract(Namespace = Constants.QUERY_SERVICE_NS)]
  public class PublisherMetadata
  {
    [DataMember]
    public string Code;
    [DataMember]
    public string Name;
    [DataMember]
    public string TimeZone;
  }

  [CollectionDataContract(Name = "{0}List", ItemName = "PublisherMetadata",
                           Namespace = Constants.QUERY_SERVICE_NS)]
  public class PublisherMetadataList : List<PublisherMetadata> { }

  [DataContract(Namespace = Constants.QUERY_SERVICE_NS)]
  public class BookMetadata
  {
    [DataMember]
    public string Filename;
    [DataMember]
    public int FileIndex;
    [DataMember]
    public DateTime Date;
    [DataMember]
    public int DateInt;
    [DataMember]
    public string Source;
    [DataMember]
    public string BookName;
    [DataMember]
    public string Field;
    [DataMember]
    public int SubId;
    [DataMember]
    public string BookType;
  }

  [CollectionDataContract(Name = "{0}List", ItemName = "BookMetadata",
                          Namespace = Constants.QUERY_SERVICE_NS)]
  public class BookMetadataList : List<BookMetadata> { }

  [DataContract(Namespace = Constants.QUERY_SERVICE_NS)]
  public class AdditionalMetadata
  {
    [DataMember]
    public string BookName;
    [DataMember]
    public double Width;
    [DataMember]
    public double Height;
    [DataMember]
    public string Currency;
    [DataMember]
    public TimeSpan RegularReadTime;
    [DataMember]
    public int RegularReadTimeInt;
    [DataMember]
    public TimeSpan RegularHoldTime;
    [DataMember]
    public int RegularHoldTimeInt;
  }
}


Reproducible: Always

Steps to Reproduce:
1. Try to generate WSDL for this contract

Actual Results:  
The exception above

Expected Results:  
Should not crash and generate the proper WSDL

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list