61 , m_checker(parserContext->checker())
62 , m_namePool(parserContext->namePool())
63 , m_schema(parserContext->schema())
354 m_context->
error(QtXmlPatterns::tr(
"%1 references unknown %2 or %3 element %4.")
364 m_context->
error(QtXmlPatterns::tr(
"%1 references identity constraint %2 that is no %3 or %4 element.")
374 m_context->
error(QtXmlPatterns::tr(
"%1 has a different number of fields from the identity constraint %2 that it references.")
397 m_context->
error(QtXmlPatterns::tr(
"Base type %1 of %2 element cannot be resolved.")
415 for (
int i = 0; i < types.
count(); ++i) {
422 for (
int i = 0; i < anonymousTypes.
count(); ++i) {
424 simpleTypes.
append(anonymousTypes.
at(i));
428 for (
int i = 0; i < simpleTypes.
count(); ++i) {
435 if (visitedTypes.
contains(simpleType))
438 visitedTypes.
insert(simpleType);
481 m_context->
error(QtXmlPatterns::tr(
"Item type %1 of %2 element cannot be resolved.")
503 for (
int j = 0; j < typeNames.
count(); ++j) {
512 m_context->
error(QtXmlPatterns::tr(
"Member type %1 of %2 element cannot be resolved.")
540 m_context->
error(QtXmlPatterns::tr(
"Type %1 of %2 element cannot be resolved.")
571 m_context->
error(QtXmlPatterns::tr(
"%1 cannot have complex base type that has a %2.")
590 for (
int i = 0; i < types.
count(); ++i) {
597 for (
int i = 0; i < anonymousTypes.
count(); ++i) {
599 complexTypes.
append(anonymousTypes.
at(i));
603 for (
int i = 0; i < complexTypes.
count(); ++i) {
611 if (visitedTypes.
contains(complexType))
614 visitedTypes.
insert(complexType);
651 complexType->
contentType()->setSimpleType(anonType);
674 complexType->
contentType()->setSimpleType(anonType);
682 complexType->
contentType()->setSimpleType(baseType);
694 for (
int i = 0; i < types.
count(); ++i) {
701 for (
int i = 0; i < anonymousTypes.
count(); ++i) {
703 complexTypes.
append(anonymousTypes.
at(i));
707 for (
int i = 0; i < complexTypes.
count(); ++i) {
715 if (visitedTypes.
contains(complexType))
718 visitedTypes.
insert(complexType);
721 bool foundCorrespondingItem =
false;
725 foundCorrespondingItem =
true;
730 if (!foundCorrespondingItem)
756 effectiveContent = particle;
767 if (!effectiveContent) {
775 explicitContentType->setParticle(effectiveContent);
781 if (!effectiveContent) {
789 explicitContentType->setParticle(effectiveContent);
795 explicitContentType = complexBaseType->
contentType();
821 particles.
append(particle);
826 baseParticle = complexBaseType->
contentType()->particle();
831 explicitContentType->setParticle(baseParticle);
846 explicitContentType->setParticle(particle);
857 m_context->
error(QtXmlPatterns::tr(
"Content model of complex type %1 contains %2 element, so it cannot be derived by extension from a non-empty type.")
863 m_context->
error(QtXmlPatterns::tr(
"Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model.")
872 particles << baseParticle;
873 if (effectiveContent)
874 particles << effectiveContent;
878 explicitContentType->setParticle(particle);
883 explicitContentType->setOpenContent(complexBaseType->
contentType()->openContent());
902 if (!wildcardElement) {
907 contentType->setVariety(explicitContentType->variety());
908 contentType->setParticle(explicitContentType->particle());
917 contentType->setVariety(explicitContentType->variety());
926 contentType->setParticle(particle);
928 contentType->setParticle(explicitContentType->particle());
933 openContent->setMode(wildcardElement->mode());
938 openContent->setWildcard(wildcardElement->wildcard());
955 m_context->
error(QtXmlPatterns::tr(
"Type %1 of %2 element cannot be resolved.")
964 m_context->
error(QtXmlPatterns::tr(
"Type of %1 element must be a simple type, %2 is not.")
985 m_context->
error(QtXmlPatterns::tr(
"Type %1 of %2 element cannot be resolved.")
1004 if (current == head)
1008 for (
int i = 0; i < elements.
count(); ++i) {
1026 m_context->
error(QtXmlPatterns::tr(
"Substitution group %1 of %2 element cannot be resolved.")
1039 affiliations.
append(element);
1053 if (head->
name(namePool) == element->
name(namePool))
1057 for (
int i = 0; i < affiliations.
count(); ++i) {
1068 for (
int i = 0; i < elements.
count(); ++i) {
1074 for (
int j = 0; j < elements.
count(); ++j) {
1088 for (
int i = 0; i < types.
count(); ++i) {
1101 for (
int i = 0; i < anonymousTypes.
count(); ++i) {
1113 for (
int i = 0; i < groups.
count(); ++i) {
1132 for (
int i = 0; i < particles.
count(); ++i) {
1138 for (
int i = 0; i < particles.
count(); ++i) {
1145 for (
int j = 0; j < particles.
count(); ++j) {
1155 m_context->
error(QtXmlPatterns::tr(
"Duplicated element names %1 in %2 element.")
1161 if (element->
type() != otherElement->
type()) {
1162 m_context->
error(QtXmlPatterns::tr(
"Duplicated element names %1 in %2 element.")
1184 switch (reference->type()) {
1191 m_context->
error(QtXmlPatterns::tr(
"Reference %1 of %2 element cannot be resolved.")
1210 particle->
setTerm(modelGroup);
1214 for (
int i = 0; i < particles.
count(); ++i) {
1225 m_context->
error(QtXmlPatterns::tr(
"%1 element cannot have %2 attribute with value other than %3.")
1233 m_context->
error(QtXmlPatterns::tr(
"%1 element cannot have %2 attribute with value other than %3 or %4.")
1243 m_context->
error(QtXmlPatterns::tr(
"Reference %1 of %2 element cannot be resolved.")
1258 for (
int i = 0; i < attributeGroups.
count(); ++i) {
1261 attributeGroups.
at(i)->setAttributeUses(uses);
1262 attributeGroups.
at(i)->setWildcard(wildcard);
1267 for (
int i = 0; i < types.
count(); ++i) {
1282 for (
int i = 0; i < anonymousTypes.
count(); ++i) {
1300 for (
int i = 0; i < attributeUses.
count(); ++i) {
1302 if (attributeUse->isAttributeUse()) {
1304 resolvedAttributeUses.
append(attributeUse);
1305 }
else if (attributeUse->isReference()) {
1314 m_context->
error(QtXmlPatterns::tr(
"Reference %1 of %2 element cannot be resolved.")
1322 if (attribute->
valueConstraint() && attributeUse->valueConstraint()) {
1323 if (attribute->
valueConstraint()->value() != attributeUse->valueConstraint()->value()) {
1324 m_context->
error(QtXmlPatterns::tr(
"%1 or %2 attribute of reference %3 does not match with the attribute declaration %4.")
1334 attributeUse->setAttribute(attribute);
1338 resolvedAttributeUses.
append(attributeUse);
1341 if (!attributeGroup) {
1342 m_context->
error(QtXmlPatterns::tr(
"Reference %1 of %2 element cannot be resolved.")
1359 if (!childWildcard) {
1366 wildcard = attributeGroup->
wildcard();
1376 newWildcard = childWildcard;
1384 wildcard = newWildcard;
1391 return resolvedAttributeUses;
1401 for (
int i = 0; i < types.
count(); ++i) {
1442 if (visitedTypes.
contains(complexType))
1445 visitedTypes.
insert(complexType);
1471 for (
int j = 0; j < uses.
count(); ++j) {
1474 for (
int k = 0; k < currentUses.
count(); ++k) {
1480 m_context->
error(QtXmlPatterns::tr(
"%1 attribute in %2 must have %3 use like in base type %4.")
1504 for (
int i = 0; i < attributeUses.
count(); ++i) {
1510 for (
int i = 0; i < uses.
count(); ++i) {
1532 m_context->
error(QtXmlPatterns::tr(
"Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2.")
1539 m_context->
error(QtXmlPatterns::tr(
"%1 has attribute wildcard but its base type %2 has not.")
1555 if (!baseWildcard) {
1557 }
else if (!completeWildcard) {
1561 if (unionWildcard) {
1565 m_context->
error(QtXmlPatterns::tr(
"Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible.")
1581 for (
int i = 0; i < types.
count(); ++i) {
1588 for (
int i = 0; i < anonymousTypes.
count(); ++i) {
1590 simpleTypes.
append(anonymousTypes.
at(i));
1593 for (
int i = 0; i < simpleTypes.
count(); ++i) {
1605 for (
int j = 0; j < values.
count(); ++j) {
1613 m_context->
error(QtXmlPatterns::tr(
"Enumeration facet contains invalid content: {%1} is not a value of type %2.")
1623 m_context->
error(QtXmlPatterns::tr(
"Namespace prefix of qualified name %1 is not defined.").arg(
formatData(qualifiedName)),
1630 facet->setMultiValue(newValues);
1674 m_context->
error(QtXmlPatterns::tr(
"%1 element %2 is not a valid restriction of the %3 element it redefines: %4.")
1692 m_context->
error(QtXmlPatterns::tr(
"%1 element %2 is not a valid restriction of the %3 element it redefines: %4.")
1709 visitedTypes.
insert(type);
XsdIdentityConstraint::Ptr keyRef
virtual DerivationMethod derivationMethod() const
Describes the content type of a complex type.
static uint hash(const uchar *p, int n)
void resolveAttributeTypes()
The complex type has further elements or attributes and text as content.
void addSubstitutionGroup(const XsdElement::Ptr &elements)
static const AtomicType::Ptr xsBase64Binary
void addComponentLocationHash(const QHash< NamedSchemaComponent::Ptr, QSourceLocation > &hash)
QVector< ElementType > m_elementTypes
bool m_defaultOpenContentAppliesToEmpty
QHash< AtomicValue::Ptr, NamespaceSupport > m_enumerationFacetValues
virtual TypeCategory category() const =0
Represents a XSD simpleType object.
void setSubstitutionGroupAffiliations(const XsdElement::List &affiliations)
virtual TypeCategory category() const
QList< QXmlName > typeNames
void addSubstitutionGroupAffiliation(const XsdElement::Ptr &element, const QList< QXmlName > &elementName, const QSourceLocation &location)
void resolveTermReference(const XsdParticle::Ptr &particle, QSet< QXmlName > visitedGroups)
virtual SchemaType::Ptr wxsSuperType() const
void resolveAlternativeTypes()
Represents a XSD model group object.
Any namespace is allowed.
#define QT_END_NAMESPACE
This macro expands to.
The model group is a choice.
XsdElement::Ptr element(const QXmlName &name) const
XsdAttributeGroup::Ptr attributeGroup(const QXmlName name) const
void setItemType(const AnySimpleType::Ptr &type)
XsdSimpleType::Ptr simpleType
virtual bool isSimpleType() const
static XsdWildcard::Ptr wildcardIntersection(const XsdWildcard::Ptr &wildcard, const XsdWildcard::Ptr &otherWildcard)
QString formatKeyword(const QString &keyword)
ProcessContents processContents() const
void addSimpleListType(const XsdSimpleType::Ptr &simpleType, const QXmlName &typeName, const QSourceLocation &location)
static const AtomicType::Ptr xsDuration
QVector< SimpleListType > m_simpleListTypes
void addRedefinedAttributeGroups(const XsdAttributeGroup::Ptr &redefinedGroup, const XsdAttributeGroup::Ptr &group)
QVector< AlternativeType > m_alternativeTypes
void resolveTermReferences()
QString formatType(const NamePool::Ptr &np, const T &type)
Formats ItemType and SequenceType.
XsdTerm::Ptr term() const
QVector< SimpleRestrictionBase > m_simpleRestrictionBases
QSet< XsdReference::Ptr > m_allGroups
XsdIdentityConstraint::Ptr identityConstraint(const QXmlName &name) const
XsdWildcard::Ptr wildcard() const
QVector< ComplexBaseType > m_complexBaseTypes
ValueConstraint::Ptr valueConstraint() const
static bool subsumes(const XsdParticle::Ptr &particle, const XsdParticle::Ptr &derivedParticle, const XsdSchemaContext::Ptr &context, QString &errorMsg)
static const AtomicType::Ptr xsGYearMonth
void setAttributeUses(const XsdAttributeUse::List &uses)
void setParticles(const XsdParticle::List &particles)
The attribute is not allowed to be there.
void setUri(const QUrl &newUri)
Sets the URI to newUri.
The model group contains elements only.
QVector< SimpleUnionType > m_simpleUnionTypes
XsdComplexType::OpenContent::Ptr m_defaultOpenContent
static const AtomicType::Ptr xsGMonthDay
XsdAttributeUse::List attributeUses() const
void setLine(qint64 newLine)
Sets the line number to newLine.
SchemaType::List anonymousTypes() const
XsdElement::List substitutionGroupAffiliations() const
Represents a XSD wildcard object.
int count(const T &t) const
Returns the number of occurrences of value in the list.
void setMinimumOccurs(unsigned int occurrence)
bool hasCircularSubstitutionGroup(const XsdElement::Ptr ¤t, const XsdElement::Ptr &head, const NamePool::Ptr &namePool)
QList< QXmlName > elementNames
The QString class provides a Unicode character string.
XsdSimpleType::Ptr simpleType
void resolveAttributeTermReferences()
void resolveSimpleListType()
XsdModelGroup::List elementGroups() const
The reference points to an attribute group.
static ValueConstraint::Ptr fromAttributeValueConstraint(const XsdAttribute::ValueConstraint::Ptr &constraint)
bool contains(const Key &key) const
Returns true if the hash contains an item with the key; otherwise returns false.
void setType(const AnySimpleType::Ptr &type)
void setDerivationMethod(DerivationMethod method)
QVector< RedefinedAttributeGroups > m_redefinedAttributeGroups
const T value(const Key &key) const
Returns the value associated with the key.
QExplicitlySharedDataPointer< XsdSchemaContext > m_context
XsdAttributeUse::List attributeUses() const
QHash< XsdFacet::Type, XsdFacet::Ptr > Hash
virtual QXmlName name(const NamePool::Ptr &np) const
Returns the name of the type.
ContentType::Ptr contentType() const
void addKeyReference(const XsdElement::Ptr &element, const XsdIdentityConstraint::Ptr &keyRef, const QXmlName &name, const QSourceLocation &location)
XsdComplexType::Ptr complexType
void resolveElementTypes()
XsdWildcard::Ptr attributeWildcard() const
void setProcessContents(ProcessContents contents)
iterator insert(const Key &key, const T &value)
Inserts a new item with the key and a value of value.
void setDefaultOpenContent(const XsdComplexType::OpenContent::Ptr &openContent, bool appliesToEmpty)
SchemaType::Ptr type() const
static const AtomicType::Ptr xsString
void setMaximumOccurs(unsigned int occurrence)
virtual SchemaType::Ptr wxsSuperType() const
Match an enumeration (Enumeration Definition)
static const SchemaType::Ptr xsAnyType
void append(const T &t)
Inserts value at the end of the list.
unsigned int maximumOccurs() const
virtual bool isElement() const
static const AtomicType::Ptr xsGDay
The reference points to a model group.
void addRedefinedGroups(const XsdModelGroup::Ptr &redefinedGroup, const XsdModelGroup::Ptr &group)
virtual SchemaType::Ptr wxsSuperType() const
#define QT_BEGIN_NAMESPACE
This macro expands to.
const TCastTarget * as() const
void error(const QString &message, const ReportContext::ErrorCode errorCode, const QSourceLocation &sourceLocation)
SchemaTypeFactory::Ptr schemaTypeFactory() const
void resolveComplexBaseTypes()
QBool contains(const T &t) const
Returns true if the list contains an occurrence of value; otherwise returns false.
QHash< NamedSchemaComponent::Ptr, QSourceLocation > m_componentLocationHash
static bool checkWildcardProcessContents(const XsdWildcard::Ptr &baseWildcard, const XsdWildcard::Ptr &derivedWildcard)
static bool isEmpty(const char *str)
unsigned int minimumOccurs() const
void setFacets(const XsdFacet::Hash &facets)
XsdParticle::List particles() const
static QNameValue::Ptr fromValue(const NamePool::Ptr &np, const QXmlName name)
static QString formatElement(const QString &element)
Formats element name.
static const AtomicType::Ptr xsDateTime
Namespaces in the namespaces set are not allowed.
bool contains(const T &value) const
void setColumn(qint64 newColumn)
Sets the column number to newColumn.
XsdXPathExpression::List fields() const
void addAllGroupCheck(const XsdReference::Ptr &reference)
void setWxsSuperType(const SchemaType::Ptr &type)
QList< XsdAttributeUse::Ptr > List
virtual bool isComplexType() const
XsdComplexType::Ptr complexType
Represents a XSD particle object.
const T & at(int i) const
Returns the item at index position i in the list.
XsdModelGroup::Ptr elementGroup(const QXmlName &name) const
XsdFacet::Hash complexTypeFacets(const XsdComplexType::Ptr &complexType) const
The namespace for the internal API of QtXmlPatterns.
virtual QString displayName(const NamePool::Ptr &namePool) const
A context for schema parsing.
const_iterator insert(const T &value)
static const AtomicType::Ptr xsDouble
The QSourceLocation class identifies a location in a resource by URI, line, and column.
QSourceLocation sourceLocation(const NamedSchemaComponent::Ptr component) const
static bool isValidAttributeGroupRestriction(const XsdAttributeGroup::Ptr &derivedAttributeGroup, const XsdAttributeGroup::Ptr &attributeGroup, const XsdSchemaContext::Ptr &context, QString &errorMsg)
QExplicitlySharedDataPointer< XsdModelGroup > Ptr
XsdAttributeGroup::Ptr redefinedGroup
QExplicitlySharedDataPointer< XsdParticle > Ptr
An element name to process.
void setTerm(const XsdTerm::Ptr &term)
void addAttributeUse(const XsdAttributeUse::Ptr &use)
QVector< KeyReference > m_keyReferences
void addComplexBaseType(const XsdComplexType::Ptr &complexType, const QXmlName &baseName, const QSourceLocation &location, const XsdFacet::Hash &facets=XsdFacet::Hash())
XsdSimpleType::Ptr simpleType
static qreal component(const QPointF &point, unsigned int i)
static const AtomicType::Ptr xsGYear
static QString formatData(const QString &data)
void addSubstitutionGroupType(const XsdElement::Ptr &element)
void resolveEnumerationFacetValues()
A helper class for handling nested namespace declarations.
void setMemberTypes(const AnySimpleType::List &types)
SchemaType::Ptr type(const QXmlName &name) const
void setType(const SchemaType::Ptr &type)
QXmlName baseTypeNameOfType(const SchemaType::Ptr &type) const
virtual QXmlName name(const NamePool::Ptr &namePool) const
void copyDataTo(const XsdSchemaResolver::Ptr &other) const
void setWxsSuperType(const SchemaType::Ptr &type)
XsdAlternative::Ptr alternative
QXmlName typeNameOfAttribute(const XsdAttribute::Ptr &attribute) const
The constraint is an unique constraint.
T & first()
Returns a reference to the first item in the list.
Represents instances of derived xs:string types, such as xs:normalizedString.
The complex type has only simple type content (e.g. text, number etc.)
void setPrimitiveType(const AnySimpleType::Ptr &type)
void addEnumerationFacetValue(const AtomicValue::Ptr &facetValue, const NamespaceSupport &namespaceSupport)
void setReferencedKey(const XsdIdentityConstraint::Ptr &key)
void addComponentLocationHash(const QHash< NamedSchemaComponent::Ptr, QSourceLocation > &hash)
virtual DerivationMethod derivationMethod() const
XsdParticle::Ptr explicitContent
bool maximumOccursUnbounded() const
NamespaceConstraint::Ptr namespaceConstraint() const
void setCategory(TypeCategory category)
The QXmlName class represents the name of an XML node, in an efficient, namespace-aware way...
XsdSchemaResolver(const QExplicitlySharedDataPointer< XsdSchemaContext > &context, const XsdSchemaParserContext *parserContext)
QExplicitlySharedDataPointer< XsdWildcard > Ptr
static const AtomicType::Ptr xsQName
virtual bool isReference() const
The reference points to an attribute use.
void resolveSimpleRestrictions()
static bool wxsTypeMatches(const SchemaType::Ptr &type, const SchemaType::Ptr &otherType, QSet< SchemaType::Ptr > &visitedTypes, SchemaType::Ptr &conflictingType)
XsdFacet::Hash facets() const
static QString fromLatin1(const char *, int size=-1)
Returns a QString initialized with the first size characters of the Latin-1 string str...
void setCompositor(ModelCompositor compositor)
void removeSimpleRestrictionBase(const XsdSimpleType::Ptr &type)
void resolveKeyReferences()
QList< T > values() const
Returns a list containing all the values in the hash, in an arbitrary order.
void addAnonymousType(const SchemaType::Ptr &type)
SchemaType::List m_predefinedSchemaTypes
static const SchemaType::Ptr xsAnySimpleType
static const AtomicType::Ptr xsFloat
static QTestResult::TestLocation location
void setAttributeWildcard(const XsdWildcard::Ptr &wildcard)
AnySimpleType::Ptr findPrimitiveType(const AnySimpleType::Ptr &type, QSet< AnySimpleType::Ptr > &visitedTypes)
void resolveSubstitutionGroups()
static XsdWildcard::Ptr wildcardUnion(const XsdWildcard::Ptr &wildcard, const XsdWildcard::Ptr &otherWildcard)
Category category() const
void setContentType(const ContentType::Ptr &type)
virtual DerivationMethod derivationMethod() const =0
XsdModelGroup::Ptr redefinedGroup
QExplicitlySharedDataPointer< AnySimpleType > Ptr
virtual SchemaType::Hash types() const =0
virtual bool isModelGroup() const
XsdAttribute::Ptr attribute(const QXmlName &name) const
static const AtomicType::Ptr xsTime
AnySimpleType::List memberTypes() const
static const QTextHtmlElement elements[Html_NumElements]
void resolveSimpleContentComplexTypes()
QExplicitlySharedDataPointer< XsdSchemaChecker > m_checker
virtual SchemaType::Ptr createSchemaType(const QXmlName name) const =0
static const AtomicType::Ptr xsDecimal
XsdAttributeGroup::List attributeGroups() const
static const AtomicType::Ptr xsBoolean
void resolveComplexContentComplexTypes()
void addAttributeType(const XsdAttribute::Ptr &attribute, const QXmlName &typeName, const QSourceLocation &location)
void resolveSubstitutionGroupAffiliations()
void addElementType(const XsdElement::Ptr &element, const QXmlName &typeName, const QSourceLocation &location)
QExplicitlySharedDataPointer< XsdComplexType > Ptr
static bool isParticleEmptiable(const XsdParticle::Ptr &particle)
ModelCompositor compositor() const
Namespaces in the namespaces set are allowed.
static const AtomicType::Ptr xsDate
If the item has a uniquely determined declaration available, it must be valid with respect to that de...
void checkRedefinedGroups()
QVector< ComplexContentType > m_complexContentTypes
QVector< AlternativeTypeElement > m_alternativeTypeElements
static QString formatAttribute(const QString &attribute)
Formats attribute name.
void resolveSimpleRestrictionBaseTypes()
void addSimpleUnionTypes(const XsdSimpleType::Ptr &simpleType, const QList< QXmlName > &typeNames, const QSourceLocation &location)
static bool isQName(const QString &qName)
QVector< XsdElement::Ptr > m_substitutionGroupTypes
XsdAlternative::Ptr alternative
void resolveSimpleUnionTypes()
void checkRedefinedAttributeGroups()
void removeComplexBaseType(const XsdComplexType::Ptr &type)
void setType(const SchemaType::Ptr &type)
virtual bool isDefinedBySchema() const
SchemaType::List types() const
The complex type has further elements or attributes but no text as content.
static const AtomicType::Ptr xsNOTATION
static const AtomicType::Ptr xsGMonth
void resolveAttributeInheritance()
void addAlternativeType(const XsdAlternative::Ptr &alternative, const QXmlName &typeName, const QSourceLocation &location)
bool isValidWildcardRestriction(const XsdWildcard::Ptr &wildcard, const XsdWildcard::Ptr &baseWildcard)
void checkConstrainingFacets()
bool isSubstGroupHeadOf(const XsdElement::Ptr &head, const XsdElement::Ptr &element, const NamePool::Ptr &namePool)
The complex type has no further content.
The model group is a sequence.
QVector< AttributeType > m_attributeTypes
static const AtomicType::Ptr xsHexBinary
XsdAttributeGroup::Ptr group
void addComplexContentType(const XsdComplexType::Ptr &complexType, const XsdParticle::Ptr &content, bool mixed)
The reference points to an element.
static const AtomicType::Ptr xsAnyURI
XsdElement::List elements() const
QHash< Key, T > & unite(const QHash< Key, T > &other)
Inserts all the items in the other hash into this hash.
XsdAttribute::Ptr attribute
Describes the open content object of a complex type.
void setMaximumOccursUnbounded(bool unbounded)
The constraint is a key constraint.
QVector< RedefinedGroups > m_redefinedGroups
void addSimpleRestrictionBase(const XsdSimpleType::Ptr &simpleType, const QXmlName &baseName, const QSourceLocation &location)
QVector< SubstitutionGroupAffiliation > m_substitutionGroupAffiliations
AnySimpleType::Ptr itemType() const