Custom RunTime Type Info #include <iostream> #include <string> enum class SimpleType { ST_INVALID MY_MACRO(SimpleType::ST_UINT64, uint64_t, ##__VA_ARGS__); \ MY_MACRO(SimpleType::ST_DOUBLE template<SimpleType stype> struct SimpleType2BuiltinType { struct InvalidType {}; typedef InvalidType \ } SIMPLE_TYPE_MACRO(SimpleType2BuiltinTypeTraits); #undef SimpleType2BuiltinTypeTraits class virtual SimpleType type() const { return type_; } virtual void type(SimpleType stype)
> </xs:element> 2.枚举限制,指只能在指定的几个值中取值 <xs:element name=”car” type=”carType”/> <xs:simpleType > </xs:simpleType> </xs:element> 表示必须是0或者多个小写字符组成的序列 <xs:element name="letter"> <xs:simpleType> <xs </xs:simpleType> </xs:element> 长度必须是8。 > </xs:simpleType> </xs:element> 表示必须是0或者多个小写字符组成的序列 <xs:element name="letter"> <xs:simpleType> <xs </xs:simpleType> </xs:element> 长度必须是8。
"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType></xs:element>下一个示例定义了一个名为 " 唯一可接受的值是小写或大写字母 a 到 z 中的三个:<xs:element name="initials"> <xs:simpleType> <xs:restriction base="xs: 唯一可接受的值是小写或大写字母 a 到 z 中的三个:<xs:element name="initials"> <xs:simpleType> <xs:restriction base="xs: string"> <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/> </xs:restriction> </xs:simpleType></ "> <xs:pattern value="[xyz]"/> </xs:restriction> </xs:simpleType></xs:element>下一个示例定义了一个名为 "
在我们的示例中,在ResourceMonitor类的getCustomOpenType方法中,我们尝试返回一个SimpleType.INTEGER,但可能在创建或使用这个SimpleType的过程中,存在与实际需求不匹配的情况 对于报错中涉及到的具体OpenType(在示例中是SimpleType),仔细检查其创建过程。查看是否有参数传递错误、是否按照正确的方式进行初始化等。 如果我们原本是想创建一个表示整数的SimpleType,并且可能需要指定一些额外的属性(比如范围等),我们应该按照正确的方式进行定义。 > createAgeSimpleType() { // 这里我们可以使用SimpleType的构造函数,根据需要传入参数 return SimpleType.valueOf >[]{ SimpleType.STRING, SimpleType.INTEGER, SimpleType.STRING
>[] {SimpleType.STRING, SimpleType.INTEGER} ); // 错误:传递了一个不兼容的类型 Object[] personData = new Object[] >[] {SimpleType.STRING, SimpleType.INTEGER} ); // 错误:age的类型应为Integer,但传递了String Object[] >[] {SimpleType.STRING, SimpleType.INTEGER} ); // 正确:将age设置为Integer类型 Object[] personData
创建简单类型需要利用simpleType元素,其定义如下: <simpleType id="ID" name="NCName" final="(#all|((list|union|restriction simpleType不能包含元素,也不能有属性,它基本上是一个值,或者是一个值的集合。 <xsd:simpleType name="listOfIntType"> <xsd:list itemType="Integer"/> </xsd:simpleType> <xsd:element 例如: <xsd:simpleType name="zipUnion"> <xsd:union memberTypes="USState listOfMyIntType"/> </xsd:simpleType 在复杂类型的使用中,主要是complexType和simpleType配合使用。
> <xs:simpleType name="enumResultClass" > <xs:restriction base ="xs:string"> <xs:enumeration value ="EntityList"></xs:enumeration> </xs:restriction> </xs:simpleType > <xs:simpleType name="enumScriptType" > <xs:restriction base ="xs:string"> < > <xs:enumeration value ="UNKNOWN"></xs:enumeration> </xs:restriction> </xs:simpleType " type="xs:string" use="optional" /> </xs:complexType> </xs:element> </xs:schema> 注意文件中的simpleType
-- sexType性别类型声明 --> <xsd:simpleType name="sexType"> <xsd:restriction base="xsd:string"> > <xsd:simpleType name="ageType"> <xsd:restriction base="xsd:integer"> <! minInclusive value="0"/> <xsd:maxInclusive value="256"/> </xsd:restriction> </xsd:simpleType > <xsd:simpleType name="idType"> <xsd:restriction base="xsd:string"> <! 要求gp_xxxx(四位数字) --> <xsd:pattern value="gp_\d{4}"/> </xsd:restriction> </xsd:simpleType
documentation> 16 </xs:annotation> 17 <xs:simpleType /> 20 </xs:restriction> 21 </xs:simpleType documentation> 26 </xs:annotation> 27 <xs:simpleType /> 30 </xs:restriction> 31 </xs:simpleType </xs:annotation> 49 <xs:simpleType
value="0"/> <xsd:maxInclusive value="200"/> </xsd:restriction> </xsd:simpleType > <xsd:simpleType name="numberType"> <xsd:restriction base="xsd:string"> <xsd > <xsd:simpleType name="hobbyType"> <xsd:restriction base="xsd:string"> <xsd: > <xsd:simpleType name="numberType"> <xsd:restriction base="xsd:string"> <xsd :pattern value="\d"/> </xsd:restriction> </xsd:simpleType> </xsd:schema> 引入约束编写 user.xml
--CachingMode--> 55: <xs:simpleType name="CachingMode"> 56: <xs:restriction base="xs:string value="Category"/> 60: <xs:enumeration value="All"/> 61: </xs:restriction> 62: </xs:simpleType --MessageProviderTypes--> 64: <xs:simpleType name="MessageProviderTypes"> 65: <xs:restriction value="Artech.Messages.XmlMessageProvider, Artech.Messages"/> 68: </xs:restriction> 69: </xs:simpleType
complexType> <complexType name="Address"> <sequence> <element minOccurs="0" name="State"> <simpleType <restriction base="s:string"> <maxLength value="2"/> </restriction> </simpleType > </element> <element minOccurs="0" name="Zip"> <simpleType> <restriction base ="s:string"> <maxLength value="10"/> </restriction> </simpleType> </element complexType> <complexType name="Address"> <sequence> <element minOccurs="0" name="State"> <simpleType
元素有类型区分 最常用的类型是: xs:string xs:decimal xs:integer xs:boolean xs:date xs:time 对元素的限定方法可通过比较区间进行限定 <xs:simpleType > 也可以通过枚举进行限定 <xs:element name="car"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType > </xs:element> 通过正则限定 <xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string "> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element> 示例代码 XML <?
HtmlTargetElement("div",Attributes = "simple-type")] public class Simple1TagHelpers : TagHelper { public string SimpleType public override void Process(TagHelperContext context, TagHelperOutput output) { if (SimpleType.Equals HtmlTargetElement("div",Attributes = "simple-type")] public class Simple1TagHelpers : TagHelper { public string SimpleType public override void Process(TagHelperContext context, TagHelperOutput output) { if (SimpleType.Equals ) { output.Content.SetHtmlContent("
Simple2
"); } else if (SimpleType.EqualsFluentIterable<ModelAttributeField> expendables = modelAttributes .filter(not(simpleType } } FluentIterable<ModelAttributeField> simpleFields = modelAttributes.filter(simpleType (input.getFieldType()); } }; } private Predicate<ModelAttributeField> simpleType ; FluentIterable<ModelAttributeField> expendables = attributes .filter(not(simpleType } } FluentIterable<ModelAttributeField> simpleFields = attributes.filter(simpleType
ST_PositiveFixedPercentage" use="required"/> </xsd:complexType> 而 ST_PositiveFixedPercentage 的定义如下 <xsd:simpleType name="ST_PositiveFixedPercentage"> <xsd:union memberTypes="s:ST_PositiveFixedPercentage"/> </xsd:simpleType
" type="xs:string"/> <xs:element name="age" type="xs:integer"/> <xs:element name="sex"> <xs:simpleType enumeration value="male"/> <xs:enumeration value="female"/> </xs:restriction> </xs:simpleType
xsd:positiveInteger"/> </xsd:all> </xsd:complexType> </xsd:element> <xsd:simpleType value = "MyOwn"/> <xsd:enumeration value = "Amazon"/> </xsd:restriction> </xsd:simpleType > <xsd:simpleType name="statusType"> <! OUT_OF_SERVICE"/> <xsd:enumeration value = "UNKNOWN"/> </xsd:restriction> </xsd:simpleType
code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType))); } public string EnumOpening(SimpleType edmType is StructuralType) { return typeName; } if (edmType is SimpleType GetEnumItemsToGenerate(IEnumerable<GlobalItem> itemCollection) { return GetItemsToGenerate<SimpleType GetSimpleProperties(EntityType type) { return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType GetSimpleProperties(ComplexType type) { return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType
element name="PostCode" type="xs:unsignedInt" /> <xs:element name="Country" minOccurs="0"> <xs:simpleType xs:enumeration value="UK" /> <xs:enumeration value="US" /> </xs:restriction> </xs:simpleType