给定模式(匿名化,重命名关键点,其余部分省略):
<?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,而且我已将其匿名化了,原因很简单.它没有什么其他的东西,我已经用这个最小的例子进行了测试,它给出了相同的结果.
我在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在线工作正常.
我担心我可能会对这个问题表现出无知,但这里......
我想使用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或其他类似的东西.他们之间似乎没有任何转换.
我正在尝试使用逻辑应用程序部署解决方案,我希望将其日志数据转到 Log Analytics 工作区。通过诊断设置 > 添加诊断设置 > 选中“发送到 Log Analytics”并选择预先存在的工作区,可以轻松在门户中进行配置。
但是,通过查看逻辑应用程序、工作区或整个资源组的导出模板,我看不到如何在 ARM 模板中配置此链接。文档似乎也根本没有提到这个设置。