code: func NewClient(ctx context.Context, rt soap.RoundTripper) (*Client, error) {
  	c := Client{
  		RoundTripper: rt,
  	}
  
  	// Set client if it happens to be a soap.Client
  	if sc, ok := rt.(*soap.Client); ok {
  		c.Client = sc
  
  		if c.Namespace == "" {
  			c.Namespace = "urn:" + Namespace
  		} else if !strings.Contains(c.Namespace, ":") {
  			c.Namespace = "urn:" + c.Namespace // ensure valid URI format
  		}
  		if c.Version == "" {
  			c.Version = Version
  		}
  	}
  
  	var err error
  	c.ServiceContent, err = methods.GetServiceContent(ctx, rt)
  	if err != nil {
  		return nil, err
  	}
  
  	return &c, nil
  }
docs: // NewClient creates and returns a new client with the ServiceContent field
  // filled in.