这是我目前的配置:
<?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)
<?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
<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个选项,如小时,秒.
我正在使用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的代码,它可以正常工作.如果我不这样做,验证不会找到"元素"的声明.
将项目升级到Visual Studio 2010和.Net 4.0后,我的app.config文件在构建项目时生成以下消息:
这是我的整个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自定义设置无法找到架构信息,但我在属性列表中看不到输入架构的路径.
谢谢.
当我在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)

我有一个XSD格式的文件.如何将其转换为C#类?
我需要在其他Web应用程序中使用类引用,我需要按照以下方式进行调用:
var res = client.Post<Customer>("/customers", c );
Run Code Online (Sandbox Code Playgroud) 如何在XSD中表示以下内容.
<price-update>
<![CDATA[
arbitrary data goes here
]]>
</price-update>
Run Code Online (Sandbox Code Playgroud) 我希望能够DataContract从XSD文件生成一个,最好使用xsd.exe工具.什么是自动生成[DataContract]和[DataMember]我的每个项目最简单的方法?
还是有更好的方法?我试图避免每次更改和重新生成XSD文件时重新创建数据协定.
长话短说:我想知道如何使用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)仍然不在乎.
谢谢
我在使用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) xsd ×10
xml ×5
.net ×2
java ×2
jaxb ×2
validation ×2
app-config ×1
c# ×1
datacontract ×1
eclipse ×1
reference ×1
schema ×1
servicestack ×1
wcf ×1
web-services ×1
wsdl ×1
wsdl2java ×1
xjc ×1