这是我的web.xmlxsd
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
Run Code Online (Sandbox Code Playgroud)
这是servlet节点
<servlet>
<servlet-name>spring1</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param> <!-- here is a problem -->
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</init-param>
</servlet>
Run Code Online (Sandbox Code Playgroud)
在标记的行上xml验证器说
cvc-complex-type.2.4.a:从元素'init-param'开始发现无效内容.其中一个'{" http://java.sun.com/xml/ns/javaee ":启用," http://java.sun.com/xml/ns/javaee ":async-supported," http:/ /java.sun.com/xml/ns/javaee ":运行为," http://java.sun.com/xml/ns/javaee ":安全角色引用," HTTP://java.sun .com/xml/ns/javaee ":multipart-config}'是预期的.
有什么问题,如何更正此错误?
我正在运行Visual Studio 2010.我有一个XSD架构,并希望使用xsd.exe工具生成适当的C#文件.我已经从命令行成功完成了这项工作,但现在我想从IDE中做同样的事情.
有一些众所周知的路线吗?我已经设法使用预构建事件,但我讨厌在每个构建上运行该工具.通常,它只应在XSD更改时运行.
将生成的.cs文件添加到项目中会将其置于同名的.xsd下,因此IDE知道它们是相关的.
我知道我可以在我的.xsd上设置"自定义工具",但我不确定它是否达到了预期的效果.我希望有一种更直接的方式.
最终,VS2010无法执行XSD.EXE,因为它位于SDK文件夹中,而VS已知的路径显然不包含它.
欢迎任何建议!
我想知道定义包含属性和子元素的元素的正确语法(如果可能).例如:
<component type="A" binding="B">
<operation name="X">
<input type="C" />
</operation>
<event name="Y">
<output type="D" />
</event>
</component>
Run Code Online (Sandbox Code Playgroud)
如您所见,元素组件,操作和事件都具有属性和子元素.是否可以在XSD中定义它?怎么样?
非常感谢你!
我目前有两个XSD方案,一个是另一个的"轻"版本.现在我在"完整"模式中重复了"轻"版本中的所有内容,但是当我需要进行更改时,这会变得很痛苦,而且无论如何都违背了DRY原则,所以我想知道是否有元素这有助于将另一个模式包含在模式中,因此我可以从"轻量级"模式中获得"完整"继承,以减少维护障碍.
我只是想知道是否有一个程序可以将XSD文件转换为Python类,就像JAXB为Java做的那样?
什么是targetNamespace功能?
<schema xmlns="http://www.w3.org/2001/SchemaXML"
targetNamespace="http://www.example.com/name"
xmlns:target="http://www.example.com/name">
Run Code Online (Sandbox Code Playgroud)
据我所知,它xmlns="http://www.w3.org/2001/SchemaXML定义了Schema XML命名空间.
我也理解,xmlns:target="http://www.example.com/name"如果我使用前缀"target"创建自己的模式,则为我自己的词汇表定义名称空间.它充当URI的代理或占位符http://www.example.com/name.
这似乎足以定义命名空间参与者所需的边界和词汇表.那么为什么我需要一个targetNamespace复制http://www.example.com/name命名空间的属性呢?
我是JAXB的初学者,在使用xjc生成Java类时遇到了烦人的问题.我提供了这样的XSD:
<xs:element name="item" type="itemType"/>
...
<xs:complexType name="itemType">
<xs:attribute name="id" type="xs:string" use="required">
...
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
和xjc正在生成一个名为的类ItemType.java,但我想要名称Item.java.也就是说,我希望生成的类就好像XSD是这样的:
<xs:element name="item">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required">
...
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
在任何其他元素上都不会重复使用itemType,只是构造XSD的人喜欢这样.我想可能有一种方法可以使用自定义绑定,但我仍然没有找到如何.
有帮助吗?
谢谢,米格尔
我有一个用UTF-8编码的XSD文件,我运行它的任何文本编辑器都没有在文件开头显示任何字符,但是当我在Visual Studio的调试器中提取它时,我清楚地看到一个空的文件前面的框.

我也得到错误:
根级别的数据无效.第1行,第1位.

有谁知道这是什么吗?
更新:编辑帖子以限定文件类型.这是由Microsoft的XSD创建者创建的XSD文件.
我需要使用给定的XSD文件验证XML文件.如果验证正常,我只需要方法返回true,否则返回false.