| Top |  |  |  |  | 
Figure 24. Schema fragment for saml:Assertion
<element name="Assertion" type="saml:AssertionType"/>
<complexType name="AssertionType">
  <sequence>
    <element ref="saml:Conditions" minOccurs="0"/>
    <element ref="saml:Advice" minOccurs="0"/>
    <choice maxOccurs="unbounded">
      <element ref="saml:Statement"/>
      <element ref="saml:SubjectStatement"/>
      <element ref="saml:AuthenticationStatement"/>
      <element ref="saml:AuthorizationDecisionStatement"/>
      <element ref="saml:AttributeStatement"/>
    </choice>
    <element ref="ds:Signature" minOccurs="0"/>
  </sequence>
  <attribute name="MajorVersion" type="integer" use="required"/>
  <attribute name="MinorVersion" type="integer" use="required"/>
  <attribute name="AssertionID" type="saml:IDType" use="required"/>
  <attribute name="Issuer" type="string" use="required"/>
  <attribute name="IssueInstant" type="dateTime" use="required"/>
</complexType>
From oasis-sstc-saml-schema-assertion-1.0.xsd:
<simpleType name="IDType">
  <restriction base="string"/>
</simpleType>
LassoSamlAssertion *
lasso_saml_assertion_new (void);
Creates a new LassoSamlAssertion object.
struct LassoSamlAssertion {
	LassoNode parent;
	/* <element ref="saml:Conditions" minOccurs="0"/> */
	LassoSamlConditions *Conditions;
	/* <element ref="saml:Advice" minOccurs="0"/> */
	LassoSamlAdvice *Advice;
	void *Statement; /* XXX LassoSamlStatement missing from lasso */
	LassoSamlSubjectStatement *SubjectStatement;
	LassoSamlAuthenticationStatement *AuthenticationStatement;
	void *AuthorizationDecisionStatement;
		/* XXX LassoSamlAuthorizationDecisionStatement missing from lasso*/
	LassoSamlAttributeStatement *AttributeStatement;
	int MajorVersion;
	int MinorVersion;
	char *AssertionID;
	char *Issuer;
	char *IssueInstant;
	/* ds:Signature stuff */
	LassoSignatureType sign_type;
	LassoSignatureMethod sign_method;
	char *private_key_file;
	char *certificate_file;
};