标签: xsd

将xsd导入wsdl

这是我目前的配置:

XSD

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://stock.com/schemas/services/stock"
    xmlns:tns="http://stock.com/schemas/services/stock"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  elementFormDefault="qualified"  targetNamespace="http://stock.com/schemas/services/stock">

<xsd:element name="Stock">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="ticker" nillable="true" type="xsd:string"/>
            <xsd:element maxOccurs="unbounded" minOccurs="0" name="quotes" nillable="true" type="Quote"/>
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>

<xsd:complexType name="Quote">
    ........
</xsd:complexType>
.......
<xsd:element name="gethighBetaStockResponse">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="stock" ref="Stock" minOccurs="1" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>
Run Code Online (Sandbox Code Playgroud)

WSDL

<?xml version="1.0" encoding="UTF-8"?><definitions targetNamespace="http://stock.com/schemas/services/stock/wsdl"
    .....xmlns:external="http://stock.com/schemas/services/stock"
<import namespace="http://stock.com/schemas/services/stock" location="Stock.xsd" />
<message name="getStockQuoteResp">
    <part name="parameters" element="external:getStockQuoteResponse" />
</message>
Run Code Online (Sandbox Code Playgroud)

但是,当时ref ="Stock"更改为type ="Stock",wsdl2java开始给出类型{http://stock.com/schemas/services/stock}Stock被引用但未定义.

不知怎的,它似乎是wsdl和xsd导入之间的冲突 - 但我无法解决它.帮助是值得赞赏的.

xsd wsdl web-services wsdl2java

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

Xsd和继承

我有这样的xsd

<xsd:complexType name="A">  
        <xsd:complexContent>  
            <xsd:sequence>  
                <xsd:element name="options">  
                    <xsd:complexType>  
                        <xsd:sequence>  
                            <xsd:element name="Day">  
                            ...  
                            </xsd:element>  
                        </xsd:sequence>  
                    </xsd:complexType>  
                </xsd:element>  
            </xsd:sequence>  
        </xsd:complexContent>  
</xsd:complexType>  

<xsd:complexType name="B">  
    <xsd:complexContent>
        <xsd:extension base="A">
        ...What would go here...
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>  
Run Code Online (Sandbox Code Playgroud)

所以基本上我希望A类有一系列选项(例如Day,Week)然后我希望B继承A并拥有所有A的选项以及额外的2或3个选项,如小时,秒.

xml xsd

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

如何使用带有包含XSD的Java来验证XML文件?

我正在使用Java 5 javax.xml.validation.Validator来验证XML文件.我已经为一个仅使用导入的模式完成了它,一切正常.现在我正在尝试使用另一个使用import和一个include的模式进行验证.我遇到的问题是主模式中的元素被忽略,验证表明它无法找到它们的声明.

以下是我构建Schema的方法:

InputStream includeInputStream = getClass().getClassLoader().getResource("include.xsd").openStream();
InputStream importInputStream = getClass().getClassLoader().getResource("import.xsd").openStream();
InputStream mainInputStream = getClass().getClassLoader().getResource("main.xsd").openStream();
Source[] sourceSchema = new SAXSource[]{includeInputStream , importInputStream, 
mainInputStream };
Schema schema = factory.newSchema(sourceSchema);
Run Code Online (Sandbox Code Playgroud)

现在这里是main.xsd中声明的摘录

<xsd:schema xmlns="http://schema.omg.org/spec/BPMN/2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:import="http://www.foo.com/import" targetNamespace="http://main/namespace" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xsd:import namespace="http://www.foo.com/import" schemaLocation="import.xsd"/>
    <xsd:include schemaLocation="include.xsd"/>
    <xsd:element name="element" type="tElement"/>
    <...>
</xsd:schema>
Run Code Online (Sandbox Code Playgroud)

如果我在main.xsd中复制我包含的XSD的代码,它可以正常工作.如果我不这样做,验证不会找到"元素"的声明.

java xml validation xsd

27
推荐指数
4
解决办法
5万
查看次数

转换为Visual Studio 2010/.Net 4.0后,app.config"无法找到架构信息"

将项目升级到Visual Studio 2010和.Net 4.0后,我的app.config文件在构建项目时生成以下消息:

  • 找不到元素'supportedRuntime'的架构信息.
  • 找不到属性"version"的架构信息.
  • 找不到属性'sku'的架构信息.

这是我的整个app.config文件:

<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/>
  </startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)

如果我创建一个新的VS2010项目并逐字地复制/粘贴相同的app.config文件,我收不到这样的消息.

显然,这些消息不会导致任何运行时问题,但它们仍然令人讨厌和令人不安.

如何修复出现这些消息的问题?

我在app.config看到答案,configSections自定义设置无法找到架构信息,但我在属性列表中看不到输入架构的路径.

谢谢.

.net xsd app-config visual-studio-2010

27
推荐指数
2
解决办法
5万
查看次数

eclipse:用xsd验证xml

当我在eclipse中编辑xml时,有没有人知道是否有可能用xsd验证xml?

这就是我的xml开始的方式:

<root 
    xmlns:xi="http://www.w3.org/2001/XInclude"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="../definitions.xsd">
Run Code Online (Sandbox Code Playgroud)

替代文字

xml eclipse validation xsd

27
推荐指数
2
解决办法
6万
查看次数

如何将XSD文件转换为C#类

我有一个XSD格式的文件.如何将其转换为C#类?

我需要在其他Web应用程序中使用类引用,我需要按照以下方式进行调用:

var res = client.Post<Customer>("/customers", c ); 
Run Code Online (Sandbox Code Playgroud)

c# xsd servicestack

27
推荐指数
1
解决办法
9万
查看次数

如何在XSD中指定元素只包含CDATA?

如何在XSD中表示以下内容.

<price-update>
    <![CDATA[
      arbitrary data goes here
    ]]>
</price-update>
Run Code Online (Sandbox Code Playgroud)

xml xsd

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

从XSD生成DataContract

我希望能够DataContract从XSD文件生成一个,最好使用xsd.exe工具.什么是自动生成[DataContract][DataMember]我的每个项目最简单的方法?

还是有更好的方法?我试图避免每次更改和重新生成XSD文件时重新创建数据协定.

.net wcf xsd datacontract

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

XML Schema key/keyref - 如何使用它们?

长话短说:我想知道如何使用XSD中的key/keyref让元素互相引用.它必须有一个示例的形式,使用简单的xsd和XML.

长话:我熟悉ID/IDREF的用法.我用它来连接JAXB的元素.我一再被告知,XSD中的key/keyref构造为元素间引用提供了增强的灵活性.我已经查阅了OReilly XML Schema一书,它似乎教会了关于key/keyref的正确定义以及它与ID/IDREF(但更好)类似的一切,并没有给出一个简单的使用示例.它似乎并不相似,因为您将ID定义为一个元素中的属性,将IDREF定义为另一个元素中的ID.但是key/keyref必须在引用和引用元素(AFAIK)的共同祖先中定义...

我使用XSD文件使用XJC生成JAXB绑定的Java类

我搜索了how-to,教程和示例,但谷歌给了我一些废话.同样适用于搜索SO(也使用谷歌和包含搜索的'+').

为了让每个人的生活更轻松,我准备了一个已经定义的密钥/密钥对的XSD,正如我所理解的那样.

<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="referenced">
                <xs:complexType>
                    <xs:attribute name="id" type="xs:string" />
                </xs:complexType>
            </xs:element>
            <xs:element name="owner">
                <xs:complexType>
                    <xs:attribute name="id" type="xs:string" />
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:key name="aKey">
        <xs:selector xpath="owner" />
        <xs:field xpath="@id" />
    </xs:key>
    <xs:keyref name="aKeyRef" refer="aKey">
        <xs:selector xpath="referenced" />
        <xs:field xpath="@id" />
    </xs:keyref>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

一个XML如何看起来像一个'owner'元素引用'引用'元素?

编辑:应用Tom W提议的更改,将关键元素的xpath属性更改为"owner".JAXB(XJC)仍然不在乎.

谢谢

xml schema xsd reference jaxb

26
推荐指数
3
解决办法
4万
查看次数

如何在XSD中为基类型生成@XmlRootElement类?

我在使用XJC从XSD生成具有适当JAXB注释的Java类时遇到一些问题.

我有一个相对简单的XSD文件来定义我的XML模式.XSD中的复杂类型利用<xs:extension>标记继承.我遇到的问题是我需要所有复杂的类型来生成Java类@XmlRootElement.

不幸的是,XJC生成类的方式意味着只有派生类才能获得@XmlRootElement(而不是基类).我使用简单的全局绑定指令来确保它解决了我在XJC面临的许多其他问题.

以下是XSD的示例代码段:

<xs:schema version="1.0" targetNamespace="http://www.knowledgemill.com/kmcs"
  xmlns:kmcs="http://www.knowledgemill.com/kmcs"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
  jaxb:version="2.0"
  xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
  jaxb:extensionBindingPrefixes="xjc"
  elementFormDefault="qualified">
    <xs:annotation>
        <xs:appinfo>
            <jaxb:globalBindings>
                <xjc:simple />
            </jaxb:globalBindings>
        </xs:appinfo>
    </xs:annotation>

    <xs:element name="Artifact" type="kmcs:Artifact"/>
    <xs:element name="EmailArtifact" type="kmcs:EmailArtifact"/>

    <xs:complexType name="Artifact">
        <xs:sequence>
            <xs:element name="artifactId" type="xs:string" minOccurs="0"/>
            <xs:element name="artifactType" type="xs:string" minOccurs="0"/>
            <xs:element name="contentHash" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="EmailArtifact">
        <xs:complexContent>
            <xs:extension base="kmcs:Artifact">
                <xs:sequence>
                    <xs:element name="subject" type="xs:string" minOccurs="0"/>
                    <xs:element name="threadSubject" type="xs:string" minOccurs="0"/>
                    <xs:element name="from" type="xs:string" minOccurs="0"/>
                    <xs:element name="to" type="xs:string" minOccurs="0"/>
                    <xs:element name="cc" type="xs:string" minOccurs="0"/>
                    <xs:element name="bcc" type="xs:string" …
Run Code Online (Sandbox Code Playgroud)

java xsd jaxb xjc

25
推荐指数
2
解决办法
6万
查看次数