我正在尝试使用以下命令从此WSDL生成代码:
svcutil /noConfig /language:C# /out:ICatalog.cs http://schemas.opengis.net/csw/2.0.2/profiles/ebrim/1.0/wsdl/2.0/csw-ebrim-interface.wsdl
Run Code Online (Sandbox Code Playgroud)
但是svcutil无法读取它,xMethods WSDL验证器说它无效.
什么是无效的?如何让svcutil生成我的界面代码?
我有一个架构,我使用XML编辑器"扁平化".在我弄平它后,我得到验证错误.我该怎么办才能解决这个问题?
错误信息:
F [Xerces]元素或属性与QName生成不匹配:QName :: =(NCName':')?NCName.
码:
<xs:import namespace="http://www.opengis.net/gml"
schemaLocation="http://schemas.opengis.net/gml/3.1.1/base/gml.xsd"
xmlns:="http://www.opengis.net/gml/3.1.1" />
<xs:annotation xmlns:="http://www.opengis.net/sps/1.0">
<xs:documentation>
<copyright> SPS is an OGC Standard. Copyright (c)
2007,2010 Open Geospatial Consortium, Inc. All Rights Reserved. To
obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</copyright>
</xs:documentation>
</xs:annotation>
Run Code Online (Sandbox Code Playgroud)
这是一个截图,可能更好地说明我的错误:

编辑:
以某种方式删除冒号.这种"扁平化"究竟应该做什么?
xsd的展平采用了包含大量包含的xsd,并将其全部放入一个文件中(没有任何包含).
鉴于以下代码,我认为不再需要finally块来关闭阅读器或连接(如果它仍然可用).使用这么多嵌套的"使用"语句有什么好处或缺点吗?或者我应该走最后的街区路线?
List<string> platforms = new List<string>();
NpgsqlDataReader reader = null;
try
{
using (NpgsqlConnection conn = new NpgsqlConnection(GetConnectionString()))
{
// Making connection with Npgsql provider
string sql = @"SELECT platforms.""name"" FROM public.""platforms""";
using (NpgsqlCommand command = new NpgsqlCommand(sql))
{
command.Connection = conn;
command.CommandType = System.Data.CommandType.Text;
conn.Open();
using (reader = command.ExecuteReader())
{
while (reader.Read())
{
platforms.Add((string)reader["name"].ToString());
}
}
}
}
}
catch (Exception err)
{
HandleError(err, "GetPlatforms");
}
finally
{
platforms = null;
if (!reader.IsClosed)
{
reader.Close();
}
}
Run Code Online (Sandbox Code Playgroud) 无论CODE ="BB",我想插入一个包含所有相同行/列数据的新行,只需将CODE更改为"XX"即可.
例如:
当前表:
ID | CODE | Name
---+----------+---------
1 | AA | Tom
2 | BB | Mary
3 | AA | John
4 | CC | Carlos
5 | CC | Mario
6 | BB | Steve
7 | AA | Pablo
Run Code Online (Sandbox Code Playgroud)
执行SQL语句后相同:
ID | CODE | Name
---+----------+---------
1 | AA | Tom
2 | BB | Mary
3 | AA | John
4 | CC | Carlos
5 | CC | Mario
6 | BB …Run Code Online (Sandbox Code Playgroud) 我正在尝试读取xml文档,但XmlReader.ReadToNextSibling不能像在此MSDN文档中所宣传的那样工作
这是一个控制台示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.IO;
namespace ConsoleTestApp
{
class Program
{
static void Main(string[] args)
{
string xmlText = "<xmlRoot><group><item>Item 1</item><item>Item 2</item></group><group><item>Item 3</item><item>Item 4</item></group></xmlRoot>";
using (XmlReader reader = XmlReader.Create(new StringReader(xmlText)))
{
reader.ReadToFollowing("item");
do
{
Console.WriteLine("Item: {0}", reader.ReadInnerXml());
} while (reader.ReadToNextSibling("item"));
}
Console.WriteLine("Press any key to continue...");
Console.Read();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这只输出一个项目:
货号:第1项
谁知道我怎么能让这个工作?
请不要建议使用DOM模型(XmlDocument).我不能,因为这些xml文件来自不同的来源,并且可以有许多不同的命名空间,这是一个巨大的麻烦.我需要让这个工作.
我正在调用返回 JSON 的 Web 服务。在该 JSON 中,我有一个包含 URL 的属性。但该 URL 中的冒号 (:) 导致 Gson 抛出错误gson.stream.MalformedJsonException。我知道这些键和值应该被包装
{
ID=15;
Code=ZPFgNr;
UserName=https://www.google.com/accounts/o8/id?id=xxxxxx; //<--problem
FirstName=Joe
}
Run Code Online (Sandbox Code Playgroud)
我的爪哇:
resultData=((SoapObject) result).getProperty(0).toString();
User response = gson.fromJson(resultData, User.class);
Run Code Online (Sandbox Code Playgroud)
我知道这些键和值应该用双引号引起来。但事实并非如此,这似乎就是问题所在。
我应该在以某种方式反序列化之前对这个 JSON 进行编码吗?如果是这样,怎么办?
或者
我应该查找并替换https:并转义冒号吗?如果是这样,我将如何转义冒号?
这是我的第一个Perl脚本.我已经使用CPAN安装了SOAP :: Lite,它似乎已经没问题了.
我正在尝试访问一个简单的HelloWorld .NET Web服务.我收到的错误似乎与Perl或SOAP :: Lite无法验证SSL证书有关.
虽然它看起来像是返回500的代码,但是我创建了一个能够很好地调用web方法的Java客户端,所以我认为问题不在Web服务端.
任何人都可以指出我正确的方向,我将如何工作?
#!/usr/bin/perl
use SOAP::Lite 'trace', 'debug';
$api_ns = "https://www.mydomain.com/edgedev/";
$api_url = "https://www.mydomain.com/edgedev/ws.asmx";
$action = "HelloWorld";
my $soap = SOAP::Lite
-> readable(1)
-> ns($api_ns, 'tns')
-> proxy($api_url)
-> on_action(sub { return "\"$action\""});
print $soap->HelloWorld()->result;
Run Code Online (Sandbox Code Playgroud)
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="https://www.mydomain.com/edgedev/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<tns:HelloWorld xsi:nil="true" />
</soap:Body>
</soap:Envelope>
SOAP::Transport::HTTP::Client::send_receive: 500 Can't connect to www.mydomain.com:443 (certificate verify failed)
Content-Type: text/plain
Client-Date: Tue, 12 Feb 2013 16:40:28 GMT
Client-Warning: Internal response
Can't connect …Run Code Online (Sandbox Code Playgroud) 如何检索或计算矩形的NW或SE角的坐标?
我正在使用Google Maps API v3,我知道有getBounds()方法返回矩形的NE和SW坐标.
我需要所有四个坐标,因为KML 2.2没有矩形模式规范,它只有多边形模式,我需要能够将我的矩形导出为kml作为多边形.
我在使用正则表达式在javascript中将DMS转换为DD时遇到问题.我从geoserver那里获取了这段代码,但似乎没有用.我希望它能够使用正确或非常接近的答案转换我的所有测试用例.
我真的不在乎函数是完全javascript还是繁重的正则表达式,我只是需要它才能工作.
你可以在JSFIDDLE http://jsfiddle.net/NJDp4/13/上测试它
以下是我的测试用例:dmsToDeg('N 03 01'37"'); dmsToDeg('03 01 37'); dmsToDeg('03 01'37"N'); dmsToDeg('076 40'35"W'); dmsToDeg('W 076 40'35"'); dmsToDeg('N 05 11'17"');
这是我的代码:
function dmsToDeg (dms) {
if (!dms) {
return Number.NaN;
}
var neg = dms.match(/(^\s?-)|(\s?[SW]\s?$)/) != null ? -1.0 : 1.0;
dms = dms.replace(/(^\s?-)|(\s?[NSEW]\s?)$/, '');
dms = dms.replace(/\s/g, '');
var parts = dms.match(/(\d{1,3})[.,°d ]?\s*(\d{0,2})[']?(\d{0,2})[.,]?(\d{0,})(?:["]|[']{2})?/);
if (parts == null) {
return Number.NaN;
}
// parts:
// 0 : degree
// 1 : degree
// 2 : minutes
// 3 : …Run Code Online (Sandbox Code Playgroud) 我使用常规 HTML文件选择器输入表单项来允许我的用户选择文件。我想向他们展示他们选择的文件的缩略图,因为他们需要选择许多图像,这可能会让人感到困惑。
有谁知道是否可以显示他们选择的图像而不将其上传到服务器?如果是这样,怎么办?
如果有人可以给我指出一个帖子或给我一个关于如何做到这一点的想法,我将不胜感激。
<input type="file" name="image" accept="image/*">Run Code Online (Sandbox Code Playgroud)