标签: xsd

从XSD文件生成WSDL

我需要在给定XSD文件的情况下生成WSDL文件.我该怎么做呢?我可以在VS2005中这样做吗?最简单的方法是什么?

xsd wsdl

38
推荐指数
4
解决办法
14万
查看次数

没有Unicode字节顺序标记.无法切换到Unicode

我正在用XSD编写XML验证器.

以下是我所做的,但当验证器到达该行时,while (list.Read())它会给我错误

没有Unicode字节顺序标记.无法切换到Unicode.

任何人都可以帮我解决这个问题吗?

public class Validator
    {
        public void Validate(string xmlString)
        {
            Boolean bRet = true;
            string xmlPath = @"C:\x.xml";
            string xsdPath = @"C:\general.xsd";

            XmlReaderSettings Settings = new XmlReaderSettings();
            Settings.Schemas.Add("", xsdPath);
            Settings.ValidationType = ValidationType.Schema;
            Settings.ValidationEventHandler += 
               new ValidationEventHandler(SettingsValidationEventHandler);

            XmlReader list = XmlReader.Create(xmlPath, Settings);
            //StringBuilder output = new StringBuilder();
            while (list.Read()) 
            {
            }
            //File.WriteAllText(@"D:\Output.xml", output.ToString());
        }
        static void SettingsValidationEventHandler(object sender,
                                                   ValidationEventArgs e)
        {
            if (e.Severity == XmlSeverityType.Warning)
            {
                MessageBox.Show( "WARNING: ");
                MessageBox.Show(e.Message);
            }
            else if (e.Severity == …
Run Code Online (Sandbox Code Playgroud)

c# xml xsd xmlreader character-encoding

38
推荐指数
1
解决办法
4万
查看次数

停止Visual Studio 2010在设计模式下打开XSD

Visual Studio 2010现在默认以设计模式打开XSD文件.我找不到禁用此选项的任何选项.有没有办法在文本模式下始终打开XSD文件?

xsd visual-studio-2010

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

使用XSD进行XML验证:如何避免关注元素序列?

我有以下XSD代码:

<xsd:complexType name="questions">
    <xsd:sequence>
        <xsd:element name="location" type="location"/>
        <xsd:element name="multipleChoiceInput" type="multipleChoiceInput" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="textInput" type="textInput" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="pictureInput" type="pictureInput" minOccurs="0"/>
    </xsd:sequence>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)

这里的问题是:元素位置,multipleChoiceInput等必须以它们声明的相同顺序出现.我不希望这种情况发生,我希望在验证过程中序列不应该相关.我怎样才能做到这一点?

我尝试过的另一种可能性是:

<xsd:complexType name="questions">

        <xsd:choice maxOccurs="unbounded">   
            <xsd:element name="location" type="location"/>  
            <xsd:element name="multipleChoiceInput" type="multipleChoiceInput" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="textInput" type="textInput" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="pictureInput" type="pictureInput" minOccurs="0" maxOccurs="1"/>
        </xsd:choice>            

</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)

在这个例子中,序列真的无关紧要,我可以拥有我想要的那么多元素("所有"不允许我做什么).但我仍然遇到min-和maxOccurs的问题.在这个例子中,我可以拥有尽可能多的"pictureInput",但是我希望拥有0或1的约束.

非常感谢您的帮助!

xml xsd xml-validation

37
推荐指数
2
解决办法
4万
查看次数

37
推荐指数
1
解决办法
7万
查看次数

cvc-elt.1:找不到元素'MyElement'的声明

我正在尝试使用xsd验证一个非常简单的xml,但由于某种原因我得到了这个错误.如果有人能解释我为什么,我真的很感激.

XML文件

<?xml version="1.0" encoding="utf-8"?> 
<MyElement>A</MyElement>
Run Code Online (Sandbox Code Playgroud)

XSD文件

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.example.org/Test"
        xmlns:tns="http://www.example.org/Test"
        elementFormDefault="qualified">

    <simpleType name="MyType">
        <restriction base="string"></restriction>
    </simpleType>

    <element name="MyElement" type="tns:MyType"></element>
</schema>
Run Code Online (Sandbox Code Playgroud)

xsd xml-namespaces xml-validation xml-error

36
推荐指数
2
解决办法
11万
查看次数

XML Schema:可以包含元素或文本的元素?

如何定义可以包含纯文本或包含元素的元素?说我想以某种方式允许这两种情况:

<xs:element name="field">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="subfield" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
        <xs:attribute name="name" type="xs:string" />
    </xs:complexType>
</xs:element>

<xs:element name="field" type="xs:string" />
Run Code Online (Sandbox Code Playgroud)

......这样这两个元素都是有效的:

<field name="test_field_0">
    <subfield>Some text.</subfield>
</field>

<field name="test_field_1">Some more text.</field>
Run Code Online (Sandbox Code Playgroud)

xml xsd

35
推荐指数
2
解决办法
1万
查看次数

针对多个模式定义验证XML文件

我正在尝试针对许多不同的模式验证XML文件(为人为的例子道歉):

  • a.xsd
  • b.xsd
  • c.xsd

c.xsd特别是导入b.xsd和b.xsd导入a.xsd,使用:

<xs:include schemaLocation="b.xsd"/>

我试图通过Xerces以下列方式执行此操作:

XMLSchemaFactory xmlSchemaFactory = new XMLSchemaFactory();
Schema schema = xmlSchemaFactory.newSchema(new StreamSource[] { new StreamSource(this.getClass().getResourceAsStream("a.xsd"), "a.xsd"),
                                                         new StreamSource(this.getClass().getResourceAsStream("b.xsd"), "b.xsd"),
                                                         new StreamSource(this.getClass().getResourceAsStream("c.xsd"), "c.xsd")});     
Validator validator = schema.newValidator();
validator.validate(new StreamSource(new StringReader(xmlContent)));
Run Code Online (Sandbox Code Playgroud)

但这无法正确导入所有三个模式,导致无法将名称'blah'解析为(n)'组'组件.

我已经使用Python成功验证了这一点,但是在Java 6.0Xerces 2.8.1中存在实际问题.任何人都可以在这里建议出现问题,或者更简单的方法来验证我的XML文档?

java xsd xerces

35
推荐指数
2
解决办法
3万
查看次数

nillable和minOccurs XSD元素属性

我要来回设置一个元素minOccurs="0"nillable="true".

我正在阅读这篇文章,现在在我的WSDL中,我不确定使用它们是否值得.本文给出了一个很好的例子来表示你可能在其中散布空值的数组,因为这不能用于完成minOccurs="0".现在,我一直在使用的约定是,如果一个元素不是可选的,那么它就不是可用的.根据我的理解和我的问题所在的区别在于,通过将nillable属性应用于元素,我说你可以传入相当于NULL值的XSD?否则,没有nillable属性的元素必须在限制内放置一个值?

xml xsd wsdl

35
推荐指数
1
解决办法
6万
查看次数

加载WSDL时SoapUI"无法加载url"错误

我一直有一些奇怪的问题.主要的一点是,在尝试将WSDL添加到新项目时,我不断收到以下错误:

Error loading [https://.../token?wsdl]: java.lang.Exception: Failed to load url; https://.../token?wsdl, 0 -
Run Code Online (Sandbox Code Playgroud)

这是error.log文件中记录的消息:

java.lang.Exception: Failed to load url; https://.../token?wsdl, 0 - 
at com.eviware.soapui.impl.wsdl.support.wsdl.UrlWsdlLoader.load(UrlWsdlLoader.java:184)
at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader.loadXmlObject(WsdlLoader.java:121)
at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:535)
at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:524)
at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionCache.update(AbstractDefinitionCache.java:97)
at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext$Loader.construct(AbstractDefinitionContext.java:226)
at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46)
at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:149)
at java.lang.Thread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

我验证了该URL上的应用程序已启动并运行,我可以从Web浏览器访问WSDL,但无论如何我都会收到此错误消息.我在Windows 7机器上使用SoapUI 4.5.0(32位).我也尝试了64位版本,结果相同.无论我是否使用VPN,都会发生这种情况.

你知道为什么我会收到这个错误吗?

java xsd wsdl web-services soapui

35
推荐指数
3
解决办法
16万
查看次数