W3C

HMRC-P38A

The document http://www.hmrc.gov.uk/ebu/paye_techpack/p38a-2006-schema-v1.0.xsd has been classified as being possibly an Advanced XML Schema Patterns for Databinding 1.0 conformant document as it only exhibits the following patterns:

Status Nodes Name XPath
basic TargetNamespace .[@targetNamespace]/ (., @targetNamespace)
basic QualifiedLocalElements .[@elementFormDefault = 'qualified']/ (@elementFormDefault)
basic UnqualifiedLocalAttributes .[not(@attributeFormDefault) or @attributeFormDefault = 'unqualified']/ (., @attributeFormDefault)
basic SchemaVersion ./@version
basic DocumentationElement .//xs:annotation/xs:documentation/ (.., ., .//*, .//@*)
advanced AppinfoElement .//xs:annotation/xs:appinfo/ (.., ., .//*, .//@*)
basic IdentifierName .//.[matches(@name, "^[A-Za-z_]([A-Za-z0-9_]0 31)$")]/ (@name)
basic Include ./xs:include[@schemaLocation]/ (., @schemaLocation)
advanced ElementTypeDefaultNamespace .//xs:element[@name and @type and not(contains(@type, ':'))]/ (@name, @type)
basic MinOccurs1 .//.[@minOccurs = '1']/ (@minOccurs)
basic MaxOccurs1 .//.[@maxOccurs = '1']/ (@maxOccurs)
basic Id .//@id
basic ElementMinOccurs0 .//xs:element[@minOccurs = '0' and (not(@maxOccurs) or @maxOccurs = '1')]/ (@minOccurs, @maxOccurs)
basic ElementMinOccurs1 .//xs:element[@minOccurs = '1' and (not(@maxOccurs) or @maxOccurs = '1')]/ (@minOccurs, @maxOccurs)
basic ElementMaxOccurs1 .//xs:element[(not(@minOccurs) or @minOccurs = '1') and @maxOccurs = '1']/ (@minOccurs, @maxOccurs)
basic ElementMinOccurs0MaxOccursUnbounded .//xs:element[@minOccurs = '0' and @maxOccurs = 'unbounded']/ (@minOccurs, @maxOccurs)
advanced AttributeRequired .//xs:attribute[@use = 'required']/ (@use)
basic StringEnumerationType .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string') and xs:enumeration]/ (., @base, xs:enumeration/(., @value))
advanced SimpleTypeEnumerationType .//xs:simpleType/xs:restriction[@base and namespace-uri-from-QName(resolve-QName(@base,.)) != 'http://www.w3.org/2001/XMLSchema' ]/ (., @base, xs:enumeration/(., @value))
advanced ComplexTypeChoice .//xs:complexType/xs:choice/ (., xs:element/(., @name))
basic ComplexTypeAttribute .//xs:complexType/xs:attribute[@name]/ (., @name)
basic ComplexTypeSequence .//xs:complexType/xs:sequence/ (., xs:element/(., @name))
basic GlobalElementSequence ./xs:element[@name]/xs:complexType/xs:sequence[xs:element]/ (../../(., @name), .., ., xs:element/(., @name))
advanced ChoiceElement .//xs:choice/xs:element/(.)
basic SequenceElement .//xs:sequence/xs:element/(.)
basic NullEnumerationType .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string') and count(xs:enumeration) le 1 and xs:enumeration = '']/ (@base, xs:enumeration/(., @value))
advanced ElementTypeReferenceUnqualified .//xs:element[@name and @type and namespace-uri-from-QName(resolve-QName(@type,.)) != 'http://www.w3.org/2001/XMLSchema' and not(contains(@type, ':'))]/ (., @name, @type)
advanced ElementReferenceUnqualified .//xs:element[@ref and not(contains(@ref, ':'))]/ (., @ref)
advanced DateElement .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:date')]
advanced StringSimpleTypePattern .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string')]/xs:pattern[@value]/ (.., ../@base, ., @value)
advanced RestrictedStringMinLength .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string')]/xs:minLength[@value]/ (.., ../@base, ., @value)
advanced RestrictedStringMaxLength .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string')]/xs:maxLength[@value]/ (.., ../@base, ., @value)
advanced RestrictedStringMinMaxLength .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string') and xs:minLength/@value and xs:maxLength/@value]/ (., @base, xs:minLength/(., @value), xs:maxLength/(., @value))
advanced RestrictedMinInclusive .//xs:simpleType/xs:restriction/xs:minInclusive[@value]/(.., ../@base, ., @value)
advanced RestrictedMaxInclusive .//xs:simpleType/xs:restriction/xs:maxInclusive[@value]/(.., ../@base, ., @value)
advanced RestrictedMaxLength .//xs:simpleType/xs:restriction/xs:maxLength[@value]/(.., ../@base, ., @value)
advanced RestrictedMinLength .//xs:simpleType/xs:restriction/xs:minLength[@value]/(.., ../@base, ., @value)
advanced LocalElementSimpleType .//xs:element[not(parent::xs:schema)]/xs:simpleType
basic LocalElementComplexType .//xs:element[not(parent::xs:schema)]/xs:complexType
advanced LocalAttributeSimpleType .//xs:attribute[not(parent::xs:schema)]/xs:simpleType
advanced GlobalElementComplexType .//xs:element[parent::xs:schema]/xs:complexType / (.,..)
advanced RestrictedSimpleContent .//xs:complexType/xs:simpleContent/xs:restriction[@base]/(.., ., @base, child::*, child::*/@value)

<xsd:schema TargetNamespace UnqualifiedLocalAttributes version="1.0" SchemaVersion elementFormDefault="qualified" QualifiedLocalElements attributeFormDefault="unqualified" UnqualifiedLocalAttributes id="p38a2006" Id targetNamespace="http://www.govtalk.gov.uk/taxation/P38A" TargetNamespace >
<xsd:include Include schemaLocation="http://www.inlandrevenue.gov.uk/schemas/core-v2-0.xsd" Include />
<xsd:annotation DocumentationElement AppinfoElement >
<xsd:documentation DocumentationElement >
Inland Revenue FBI End Of Year Return
</xsd:documentation>
<xsd:appinfo AppinfoElement >
<gt:KeyWords AppinfoElement >
P38A, PAYE, taxation, FBI, Inland Revenue
</gt:KeyWords>
<gms:Metadata AppinfoElement >
<gms:Audience AppinfoElement >
e-service developers
</gms:Audience>
<gms:Contributor AppinfoElement >
DecisionSoft Ltd
</gms:Contributor>
<gms:Creator AppinfoElement >
Inland Revenue
</gms:Creator>
<gms:Date AppinfoElement >
<gms:Created AppinfoElement >
2004-07-12
</gms:Created>
</gms:Date>
<gms:Date AppinfoElement >
<gms:Modified AppinfoElement >
2004-07-20
</gms:Modified>
</gms:Date>
<gms:Format AppinfoElement >
<gms:MediaType AppinfoElement >
text/xml
</gms:MediaType>
<gms:Syntax AppinfoElement >
http://www.w3.org/2001/XMLSchema
</gms:Syntax>
<gms:Description AppinfoElement >
XML Schema, W3C Recommendation 2001
</gms:Description>
</gms:Format>
<gms:Language AppinfoElement >
[ISO 639-2/B] ENG
</gms:Language>
<gms:Publisher AppinfoElement >
Inland Revenue
</gms:Publisher>
<gms:Relation AppinfoElement >
<gms:Requires AppinfoElement >
core-v2-0
</gms:Requires>
</gms:Relation>
<gms:Relation AppinfoElement >
<gms:ProvidesDefinitionOf AppinfoElement >
IRenvelope
</gms:ProvidesDefinitionOf>
</gms:Relation>
<gms:Relation AppinfoElement >
<gms:ProvidesDefinitionOf AppinfoElement >
Employee
</gms:ProvidesDefinitionOf>
</gms:Relation>
<gms:Rights AppinfoElement >
<gms:Copyright AppinfoElement >
(C) Crown Copyright 2001-2004
</gms:Copyright>
</gms:Rights>
<gms:Subject AppinfoElement >
<gms:Category AppinfoElement >
Economics, Finance and Tax
</gms:Category>
</gms:Subject>
<gms:Title AppinfoElement >
P38A
</gms:Title>
<gms:Type AppinfoElement >
message
</gms:Type>
</gms:Metadata>
</xsd:appinfo>
</xsd:annotation>
<xsd:element GlobalElementSequence GlobalElementComplexType name="IRenvelope" IdentifierName GlobalElementSequence >
<xsd:complexType GlobalElementSequence GlobalElementComplexType >
<xsd:sequence ComplexTypeSequence GlobalElementSequence >
<xsd:element ComplexTypeSequence GlobalElementSequence SequenceElement name="P38AReturn" IdentifierName ComplexTypeSequence GlobalElementSequence minOccurs="1" MinOccurs1 ElementMinOccurs1 ElementMaxOccurs1 maxOccurs="1" MaxOccurs1 ElementMinOccurs1 ElementMaxOccurs1 >
<xsd:complexType LocalElementComplexType >
<xsd:sequence ComplexTypeSequence >
<xsd:element ComplexTypeSequence SequenceElement name="EmployerDetails" IdentifierName ComplexTypeSequence minOccurs="1" MinOccurs1 ElementMinOccurs1 ElementMaxOccurs1 maxOccurs="1" MaxOccurs1 ElementMinOccurs1 ElementMaxOccurs1 >
<xsd:complexType LocalElementComplexType >
<xsd:sequence ComplexTypeSequence >
<xsd:element ComplexTypeSequence SequenceElement name="EmployerName" IdentifierName ComplexTypeSequence minOccurs="1" MinOccurs1 ElementMinOccurs1 ElementMaxOccurs1 maxOccurs="1" MaxOccurs1 ElementMinOccurs1 ElementMaxOccurs1 >
<xsd:simpleType LocalElementSimpleType >
<xsd:restriction SimpleTypeEnumerationType RestrictedMaxLength RestrictedMinLength base="PAYEstringType" SimpleTypeEnumerationType RestrictedMaxLength RestrictedMinLength >
<xsd:minLength RestrictedMinLength value="1" RestrictedMinLength />
<xsd:maxLength RestrictedMaxLength value="35" RestrictedMaxLength />
<xsd:pattern value="\S.*"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element ComplexTypeSequence SequenceElement name="Declarations" IdentifierName ComplexTypeSequence minOccurs="1" MinOccurs1 ElementMinOccurs1 ElementMaxOccurs1 maxOccurs="1" MaxOccurs1 ElementMinOccurs1 ElementMaxOccurs1 >
<xsd:complexType LocalElementComplexType >
<xsd:choice ComplexTypeChoice minOccurs="1" MinOccurs1 maxOccurs="1" MaxOccurs1 > </xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:element ComplexTypeSequence SequenceElement name="P38ACount" IdentifierName ComplexTypeSequence minOccurs="1" MinOccurs1 ElementMinOccurs1 ElementMaxOccurs1 maxOccurs="1" MaxOccurs1 ElementMinOccurs1 ElementMaxOccurs1 >
<xsd:simpleType LocalElementSimpleType >
<xsd:restriction RestrictedMinInclusive RestrictedMaxInclusive base="xsd:integer" RestrictedMinInclusive RestrictedMaxInclusive >
<xsd:maxInclusive RestrictedMaxInclusive value="9999999" RestrictedMaxInclusive />
<xsd:minInclusive RestrictedMinInclusive value="0" RestrictedMinInclusive />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element GlobalElementSequence GlobalElementComplexType name="Employee" IdentifierName GlobalElementSequence >
<xsd:complexType GlobalElementSequence GlobalElementComplexType >
<xsd:sequence ComplexTypeSequence GlobalElementSequence >
<xsd:element ComplexTypeSequence GlobalElementSequence SequenceElement name="NINO" IdentifierName ComplexTypeSequence GlobalElementSequence minOccurs="0" ElementMinOccurs0 maxOccurs="1" MaxOccurs1 ElementMinOccurs0 >
<xsd:simpleType LocalElementSimpleType >
<xsd:restriction StringSimpleTypePattern base="xsd:string" StringSimpleTypePattern >
<xsd:pattern StringSimpleTypePattern value="[A-Z]{2}[0-9]{6}[A-D ]" StringSimpleTypePattern />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element ComplexTypeSequence GlobalElementSequence SequenceElement name="Pay" IdentifierName ComplexTypeSequence GlobalElementSequence minOccurs="1" MinOccurs1 ElementMinOccurs1 ElementMaxOccurs1 maxOccurs="1" MaxOccurs1 ElementMinOccurs1 ElementMaxOccurs1 >
<xsd:complexType LocalElementComplexType >
<xsd:simpleContent RestrictedSimpleContent >
<xsd:restriction RestrictedSimpleContent base="IRnonNegativeMonetaryStructure" RestrictedSimpleContent >
<xsd:maxInclusive RestrictedSimpleContent value="9999999.99" RestrictedSimpleContent />
<xsd:minExclusive RestrictedSimpleContent value="0.00" RestrictedSimpleContent />
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute ComplexTypeAttribute name="Section" IdentifierName ComplexTypeAttribute use="required" AttributeRequired >
<xsd:simpleType LocalAttributeSimpleType >
<xsd:restriction SimpleTypeEnumerationType base="PAYEstringType" SimpleTypeEnumerationType > </xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:schema>

This document was produced by the W3C XML Schema Patterns for Databinding Working Group. Comments on this document may be sent to the public public-xsd-databinding-comments@w3.org mailing list (public archive).