Thursday, May 5, 2011

xsd attribute and element validation

I am trying to create an XSD schema which will validate the following xml.

<Item ItemGUID="3F2504E0-4F89-11D3-9A0C-0305E82C3301">The name of the item</Item>

I want to validate the max length of the attribute "ItemGUID" to 36 characters and "The name of the item" to a max 25 characters.

How can it be validated to satisfy the above condition using the xsd schema?

From stackoverflow
  • With XML Schema, you can do something like this:

    <xs:element name="Item">
      <xs:complexType>
        <xs:simpleContent>
          <xs:extension base="string25">
            <xs:attribute name="ItemGUID" type="string36" />
          </xs:extension>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element> 
    
    <xs:simpleType name="string25">
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="25"/>
      </xs:restriction>
    </xs:simpleType>
    
    
    <xs:simpleType name="string36">
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="36"/>
      </xs:restriction>
    </xs:simpleType>
    

    I haven't tried it, but if this doesn't work it should be very close to what you need.

0 comments:

Post a Comment