小编Tom*_*m W的帖子

为什么这个XDocument验证失败?

给定模式(匿名化,重命名关键点,其余部分省略):

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="inspec"
    targetNamespace="the_right_namespace"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:element name="inspec">
    <xs:complexType>
      <xs:all>
        <xs:element name="a_scalar_property" type="xs:int"/>
        <xs:element name="a_collection_property">
          <xs:complexType>
            <snip>
          </xs:complexType>
        </xs:element>
        <xs:element name="another_collection_property">
          <xs:complexType>                
            <snip>
          </xs:complexType>
        </xs:element>                       
      </xs:all>
    </xs:complexType>
  </xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

和实例(使用VB xml文字声明):

Dim xDocument = 
<x:inspec xmlns:x='the_right_namespace'>
<a_collection_property/>
<another_collection_property/>
</x:inspec>
Run Code Online (Sandbox Code Playgroud)

验证失败并显示消息 The element 'inspec' in namespace 'the_right_namespace' has incomplete content. List of possible elements expected: 'a_scalar_property'.

为什么?的all元件,根据W3Schools的:

"all元素指定子元素可以按任何顺序出现,并且每个子元素可以出现零次或一次."

省略a_scalar_property与将其包括零次相同.为什么此文档无法验证?

并且不要说"发布完整代码"之类的内容 - 这不是我的IP,而且我已将其匿名化了,原因很简单.它没有什么其他的东西,我已经用这个最小的例子进行了测试,它给出了相同的结果.

xml xsd

5
推荐指数
1
解决办法
4068
查看次数

使用F#WsdlService类型提供程序编译错误

我在F#中尝试使用类型提供程序.我以下列方式使用WsdlService提供程序取得了一些成功:

type ec2 = WsdlService<"http://s3.amazonaws.com/ec2-downloads/ec2.wsdl">

但是当我下载wsdl时,将其重命名为.wsdlschema并根据此示例中指定的方法将其作为本地模式提供:

type ec2 = WsdlService< ServiceUri="N/A", ForceUpdate = false, 
                          LocalSchemaFile = """C:\ec2.wsdlschema""">
Run Code Online (Sandbox Code Playgroud)

Visual Studio发出错误消息:

类型提供程序'Microsoft.FSharp.Data.TypeProviders.DesignTime.DataProviders'报告错误:错误:未指定有效的输入文件.指定元数据文档或程序集文件

此消息是错误的,因为该文件非常明显有效,如前面的示例所证明的那样.

我已经考虑了权限问题,并且我在我的用户文件夹中重复了相同的示例,确保在这两种情况下都向所有用户授予完全控制权,以及以管理员身份运行VS.

为什么F#编译器认为该文件无效?

编辑#1:我已经确认做同样的事情不适用于http://gis1.usgs.gov/arcgis/services/gap/GAP_Land_Cover_NVC_Class_Landuse/MapServer?wsdl(USGS植物相关API),而引用wsdl在线工作正常.

f# wsdl web-services amazon-ec2 type-providers

3
推荐指数
1
解决办法
537
查看次数

在WCF中通过命名管道传输SOAP消息

我担心我可能会对这个问题表现出无知,但这里......

我想使用WCF来实现.NET应用程序和用Qt编写的第三方应用程序之间的进程间通信.Qt应用程序有一个插件架构,如果我选择,可以用来引导一些.NET类来在两端干净地处理WCF,但我宁愿保持代码库原生,因此我正在考虑如何制作确保无论我使用WCF发送电线,我都可以使用Qt中提供的类在另一端重新组装.

Qt有一个SOAP消息类,所以我认为最好的解决方案 - 和我们已经一起攻击的解决方案最接近 - 是发送SOAP消息并从QLocalSocket中获取它们.问题是,是否有可能强制WCF通过NetNamedPipeBinding将消息编码为SOAP,如果是这样,这样做是否明智?

在这一点上我感到相当谨慎,因为我对所涉及的技术的不稳定理解,我的问题可能不完全合理.如果是这种情况,请花时间解释原因,而不只是说"不".

编辑#1:我认为有必要进行更新,因为我已经调查了一些并且应该报告我的发现.

首先,我发现Qt是猪.事实证明,我提到的QtSoapMessage类在当前版本中不存在,并且仅作为您必须自己编译的售后市场源包提供.我用了几个小时的谷歌搜索,找出了为什么这不起作用.Qt文档是完全可怕的,Qt Creator极端违反直觉,我几乎已经失去了耐心,所以还没有进一步追求这个想法.此外,我是如何将套接字数据传递到soap消息构造函数中并不明显,后者采用QDomDocument,而从套接字读取XML的API使用QXmlStreamReader或其他类似的东西.他们之间似乎没有任何转换.

wcf qt soap ipc

1
推荐指数
1
解决办法
1024
查看次数

如何配置逻辑应用以登录到 ARM 模板中的 Log Analytics?

我正在尝试使用逻辑应用程序部署解决方案,我希望将其日志数据转到 Log Analytics 工作区。通过诊断设置 > 添加诊断设置 > 选中“发送到 Log Analytics”并选择预先存在的工作区,可以轻松在门户中进行配置。

但是,通过查看逻辑应用程序、工作区或整个资源组的导出模板,我看不到如何在 ARM 模板中配置此链接。文档似乎也根本没有提到这个设置。

azure azure-resource-manager azure-log-analytics

1
推荐指数
1
解决办法
2979
查看次数