-
@Retention(RUNTIME) @Target(PACKAGE) public @interface XmlSchema
将包名称映射到XML命名空间。
用法
XmlSchema注释可以与以下程序元素一起使用:
- 包
这是一个包级注释,并遵循JSR 175第三部分“注释”中的建议和限制。 因此,使用受到以下限制和建议的约束。
- JSR 175第三部分“注释”中只能列出一个包装声明。
- JSR 175建议使用package-info.java进行包级注释。 遵循此建议的JAXB提供程序将允许在package-info.java中定义包级别注释。
示例1:自定义包映射到的XML命名空间的名称。
@javax.xml.bind.annotation.XmlSchema ( namespace = "http://www.example.com/MYPO1" )
<!-- XML Schema fragment --> <schema xmlns=... xmlns:po=.... targetNamespace="http://www.example.com/MYPO1" > <!-- prefixes generated by default are implementation depedenent -->
示例2:自定义命名空间前缀,命名空间URI映射
// Package level annotation @javax.xml.bind.annotation.XmlSchema ( xmlns = { @javax.xml.bind.annotation.XmlNs(prefix = "po", namespaceURI="http://www.example.com/myPO1"), @javax.xml.bind.annotation.XmlNs(prefix="xs", namespaceURI="http://www.w3.org/2001/XMLSchema") } )
<!-- XML Schema fragment --> <schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:po="http://www.example.com/PO1" targetNamespace="http://www.example.com/PO1">
示例3:自定义elementFormDefault
@javax.xml.bind.annotation.XmlSchema ( elementFormDefault=XmlNsForm.UNQUALIFIED ... )
<!-- XML Schema fragment --> <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:po="http://www.example.com/PO1" elementFormDefault="unqualified">
- 从以下版本开始:
- 1.6,JAXB 2.0
-
-
Field Summary
Fields Modifier and Type Fields 描述 static String
NO_LOCATION
location()
属性的默认值,表示模式生成器将在此命名空间中生成组件。
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element 描述 XmlNsForm
attributeFormDefault
属性的命名空间资格。XmlNsForm
elementFormDefault
元素的命名空间资格。String
location
表示此命名空间(由namespace()
指定)具有在该位置可用的模式。String
namespace
XML命名空间的名称。XmlNs[]
xmlns
自定义命名空间URI,前缀关联。
-
-
-
字段详细信息
-
NO_LOCATION
static final String NO_LOCATION
location()
属性的默认值,表示模式生成器将在此命名空间中生成组件。
-
-
Element Detail
-
xmlns
XmlNs[] xmlns
自定义命名空间URI,前缀关联。 默认情况下,XML命名空间的命名空间前缀由JAXB Provider以实现依赖的方式生成。- Default:
- {}
-
-
-
namespace
String namespace
XML命名空间的名称。- Default:
- “”
-
-
-
elementFormDefault
XmlNsForm elementFormDefault
元素的命名空间资格。 默认情况下,XML Schema片段中不存在元素默认属性。- Default:
- javax.xml.bind.annotation.XmlNsForm.UNSET
-
-
-
attributeFormDefault
XmlNsForm attributeFormDefault
属性的命名空间资格。 默认情况下,XML Schema片段中将不存在attributesFormDefault。- Default:
- javax.xml.bind.annotation.XmlNsForm.UNSET
-
-
-
location
String location
表示此命名空间(由namespace()
指定)具有在该位置可用的模式。这指示JAXB模式生成器简单地引用指向的模式,而不是将组件生成到模式中。 假设该模式与模式生成器将生成的模式相同(相同的元素名称,相同的类型名称...)
当一组Java类最初是从现有模式生成的,手工编写为匹配外部定义的模式,或者手动修改生成的模式时,将使用此功能。
值可以是任何绝对URI,如
http://example.org/some.xsd
。 也可以指定空字符串,以指示模式是外部可用的,但位置未指定(因此生成模式的读者有责任定位它)最后,此属性的默认值"##generate"
表示模式生成器将为此命名空间生成组件(如在JAXB 2.0中所做的那样)。允许多个包上的多个
XmlSchema
注释管理相同的namespace()
。 在这种情况下,所有这些都必须具有相同的location()
值。注意实现者
更确切地说,值必须是
""
,"##generate"
,或a valid lexical representation ofxs:anyURI
,且开头<scheme>:
。预计模式生成器将生成相应的
<xs:import namespace="..." schemaLocation="..."/>
(如果指定了空字符串,则完全不schemaLocation
属性)。但是,允许模式生成器在schemaLocation
属性中使用不同的值(包括不生成此属性),用于示例,以便用户可以通过命令行界面指定资源的本地副本。- 从以下版本开始:
- 1.6,JAXB 2.1
- Default:
- “##生成”
-
-