Xml 限制XSD中没有自定义类型的属性
我正在寻找一种使xs:string类型的属性具有最小长度的方法。我已经找到了一种方法,但解决方案是引入一种新类型。当我使用XML映射/绑定时,它会导致一个闪亮的新类,它的存在和额外的方法调用会使代码变得混乱,这是完全无用的——它仍然只是一个普通的旧字符串Xml 限制XSD中没有自定义类型的属性,xml,xsd,custom-attributes,restriction,Xml,Xsd,Custom Attributes,Restriction,我正在寻找一种使xs:string类型的属性具有最小长度的方法。我已经找到了一种方法,但解决方案是引入一种新类型。当我使用XML映射/绑定时,它会导致一个闪亮的新类,它的存在和额外的方法调用会使代码变得混乱,这是完全无用的——它仍然只是一个普通的旧字符串 有没有办法避免引入自定义类型?您不需要声明新的命名类型-只需将限制放在属性定义中即可: <xs:element name="foo"> <xs:complexType> <xs:attrib
有没有办法避免引入自定义类型?您不需要声明新的命名类型-只需将限制放在属性定义中即可:
<xs:element name="foo">
<xs:complexType>
<xs:attribute name="bar">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="5" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
您不需要声明新的命名类型-只需将限制放在属性定义中即可:
<xs:element name="foo">
<xs:complexType>
<xs:attribute name="bar">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="5" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
谢谢你,费尔伯特。这样我就不需要介绍一种新的类型。不幸的是,在为Java生成JAXB类XML绑定时,限制只保留在注释中,而没有在代码本身中实施,因此取消/编组无效对象仍然有效。但是在验证过程中会发现违规行为,因此有一种方法可以强制执行限制,而不必在生成代码后调整代码本身,这是一种痛苦,因为代码是在每次生成过程中生成的。谢谢你,Filburt。这样我就不需要介绍一种新的类型。不幸的是,在为Java生成JAXB类XML绑定时,限制只保留在注释中,而没有在代码本身中实施,因此取消/编组无效对象仍然有效。但是,在验证过程中会发现违规行为,因此有一种方法可以强制执行限制,而不必在生成代码后对代码本身进行调整,这是一种痛苦,因为代码是在每次生成过程中生成的。Filburt,我真的为我的长期AFK感到抱歉。但这是有原因的。我知道你的贡献被忽略时的感觉,所以请原谅给你带来的不便。但这是有原因的。我知道当你的贡献被忽略时的感觉,所以请原谅给你带来的不便。