【问题标题】:XSD: restriction on type to not be empty /Blank and to exist? But its a simple type (string) inside a complexType [duplicate]XSD:限制类型不能为空/Blank 并且存在?但它是一个复杂类型中的简单类型(字符串)[重复]
【发布时间】:2011-07-25 07:00:03
【问题描述】:

我有一个 XSD,下面是它的一部分定义,但它不起作用。我需要确保 Name 不是这样的

   <Item Name="example"></Item> 

请注意,标签之间没有任何内容,我运行了验证并通过了。我已设置使用 =“必需”。而且我也尝试设置一些限制,但它说它只能用简单的类型来做。嗯,它是一个复杂类型,里面有一个字符串。

      <xs:complexType>
        <xs:simpleContent msprop:Generator_ColumnVarNameInTable="columnItem_Text" 
                msprop:Generator_ColumnPropNameInRow="Item_Text" 
                msprop:Generator_ColumnPropNameInTable="Item_TextColumn" 
                msprop:Generator_UserColumnName="Item_Text" 
                msdata:ColumnName="Item_Text" msdata:Ordinal="1>
          <xs:extension base="xs:string" >
            <xs:attribute name="Name"
                msprop:Generator_ColumnVarNameInTable="columnName" 
                msprop:Generator_ColumnPropNameInRow="Name" 
                msprop:Generator_ColumnPropNameInTable="NameColumn" 
                msprop:Generator_UserColumnName="Name" type="xs:string"
                     use="required" />
          </xs:extension>
        </xs:simpleContent>
      </xs:complexType>

【问题讨论】:

  • 你到底想要什么?是否要确保 必须是非空字符串?
  • 完全按照非空字符串,即不为空也不为空

标签: c# xml schema xsd


【解决方案1】:

不要使用extension base="xs:string",而是使用extension base="non-empty-string",其中非空字符串是一个简单类型,定义为使用&lt;minLength value='1'/&gt;(或者可能是正则表达式,如果您还想禁止值仅包含空格)。

【讨论】:

  • 感谢迈克尔,未声明非空字符串
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多