- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 SAX 解析器进行 XML 验证时遇到一些问题。这是我为解决该问题而制作的一个简单的 XML 架构:
<?xml version="1.0"?>
<xs:schema targetNamespace="urn:test"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
xmlns="urn:test">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="content" type="ContentType"
maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="ContentType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="title" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:attribute name="title" type="xs:string" />
</xs:schema>
这是一个非常简单的 XML 文件,我认为它对于我的架构应该是有效的:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root xmlns="urn:test">
<content title="Title">
Content comes here...
</content>
</root>
有趣的是,当我尝试解析此 XML 文件时,我收到以下验证错误:
cvc-complex-type.3.2.2: Attribute 'title' is not allowed to appear in element 'content'.
但是,如果我从 XML 文件中删除 content 元素的 title 属性,我仍然会收到验证错误:
cvc-complex-type.4: Attribute 'title' must appear on element 'content'.
我不知道问题是什么。当然,这只是一个简单的例子来说明问题。我想了解这种行为的原因。另外,如果能找到解决办法就好了。我不确定我的 Java 代码进行验证在这种情况下是否重要,如果有必要我会稍后发布。
任何帮助将不胜感激。
最佳答案
title
属性的全局声明将该属性放入目标命名空间 urn:test
中。这也意味着您必须在架构和实例文档中限定对属性的引用。默认情况下,不合格的属性没有命名空间。
<xs:schema targetNamespace="urn:test"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
xmlns="urn:test" xmlns:test="urn:test" >
....
<xs:complexType name="ContentType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="test:title" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:attribute name="title" type="xs:string" />
和
<root xmlns="urn:test" xmlns:test="urn:test" >
<content test:title="Title">
Content comes here...
</content>
</root>
这整件事非常微妙,当我尝试在 ecplise 中验证原始实例文档时,我收到两个非常令人困惑的错误:
title
属性不能出现在内容元素上。这是指对属性的不合格使用,并且title
元素必须出现在内容元素上。这是指缺少合格的 test:title
属性。当然,错误消息可以使用更多的上下文信息。
关于java - XML 架构 : using attribute definition in complexType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17909741/
该XSD部分是从http://www.iana.org/assignments/xml-registry/schema/netconf.xsd获得的
我遇到了这个列表 W3C XML Schema: DOs and DON'Ts和说 DO NOT use complex types 的部分有点让我吃惊。 我在使用 时没有发现任何问题我不明白为什么
到一个简单的元素 type="xs:int"我想添加一个限制和一些属性。但是,我看到的唯一方法是分两步: 声明一个命名(全局)类型并将所有限制放在命名类型中 引用base中的命名类型的 并将属性添加到
我在架构中有以下内容: 一些解析器允许直接在元素中使用 PCDATA,而另一些则不允许。 XSD 推荐 (3.4.2)
我在以下类(class)中收到以下错误: 无法序列化 DataObjects.Ingredient 类型的成员“成分”。 XmlAttribute/XmlText 不能用于编码复杂类型。 关于为什么的
我想知道为什么不用写 我不能指定它是 xs:complexType 的元素属性吗?或者是否有 xs:superSecretThingIdontKnow
我最近更新到 Breezejs 1.4.2,运行自定义初始值设定项似乎存在问题。我的应用程序使用 Breeze 正确注册了 ctor 和初始化程序(我相信),但是当我从 Entity Framewor
当使用XML Schema声明一个complexType只有一个子元素时,以下三种方式都可以达到目的: 显然,sequence、choice
我有一个类似于此示例的 xml 文档(和复杂元素): 但是在我的 xml 中,我是先添加名字还是姓氏并不重要。所以我想删除“xs:sequence”部分,但我不
目前我使用的是 PHP 版本 5.4.16 和 NuSoap 0.95,我试过这个例子: here 它显示了这样的服务器代码; $server->wsdl->addComplexType( '
我刚刚读了一本关于网络服务的书,上面说有“RPC 风格的网络服务”和“文档风格的网络服务”。第二个是在 WSDL 序列和复杂类型中使用。我什么时候应该使用这种风格? 最佳答案 当您想要将联系人、消息或
我自动生成 XML 架构,生成的 xsd 文件是根据百叶窗设计模式创建的。现在我有很多复杂的类型,并且想减少它们的数量。有没有一种简单的方法可以确定两个复杂类型是否描述相同的限制? 这是一个向您展示我
我正在尝试使用包含以下 XSD 的 WCF 使用服务(用 Java 构建和托管) 当我从该服务请求数据时,出现以下错误: "Base64 sequence length (1) no
我对 EntityFramework 的 Code First 方法相当陌生,当我尝试创建引用实体类型的可重用复杂类型时遇到以下错误。 模型: class Bank { public int
我正在使用 Jdeveloper 12c。我正在尝试使用 complexType 作为在另一个 complexType 中键入另一个元素的引用。 Jdev 告诉我它找不到 AddressInfo 引用
我有这个 xsd,它有点糟糕,但我必须使用它来避免更改我正在编写的 servlet 的接口(interface)。请求-响应接口(interface)的 xsd 包含以下几行:
这
我有一个服务器 (SoapUI) 响应 WSDL 请求。 当发送测试请求时,我的服务器代码正在接收参数的列表,但我试图实现的是单个参数,复杂类型,例如: { ingredient_id => I
例子如下。请让我知道同名的副作用。我正在尝试从此 XSD 创建 Java 对象模型。
如何及时插入具有复杂类型的多个实体? 考虑以下几点: public class Entity { public Address Address { get; set; } } [ComplexTy
我是一名优秀的程序员,十分优秀!