internal void Reset() { _Name = XmlQualifiedName.Empty; _Prefix = null; _TypeName = XmlQualifiedName.Empty; _TypePrefix = null; _Default = null; _Revises = null; _MaxOccurs = 1; _MinOccurs = 1; _Checking = false; _ElementDecl = null; _Next = null; _Attdef = null; }
private void XDR_CheckAttributeDefault(DeclBaseInfo decl, SchemaAttDef pAttdef) { if (decl._Default != null || pAttdef.DefaultValueTyped != null) { if (decl._Default != null) { pAttdef.DefaultValueRaw = pAttdef.DefaultValueExpanded = (string)decl._Default; CheckDefaultAttValue(pAttdef); } } SetAttributePresence(pAttdef, 1 == decl._MinOccurs); }
private static void XDR_BeginAttribute(XdrBuilder builder) { if (builder._BaseDecl._TypeName.IsEmpty) { builder.SendValidationEvent(SR.Sch_MissAttribute); } SchemaAttDef attdef = null; XmlQualifiedName qname = builder._BaseDecl._TypeName; string prefix = builder._BaseDecl._Prefix; // local? if (builder._ElementDef._AttDefList != null) { attdef = (SchemaAttDef)builder._ElementDef._AttDefList[qname]; } // global? if (attdef == null) { // if there is no URN in this name then the name is local to the // schema, but the global attribute was still URN qualified, so // we need to qualify this name now. XmlQualifiedName gname = qname; if (prefix.Length == 0) gname = new XmlQualifiedName(qname.Name, builder._TargetNamespace); SchemaAttDef ad; if (builder._SchemaInfo.AttributeDecls.TryGetValue(gname, out ad)) { attdef = (SchemaAttDef)ad.Clone(); attdef.Name = qname; } else if (prefix.Length != 0) { builder.SendValidationEvent(SR.Sch_UndeclaredAttribute, XmlQualifiedName.ToString(qname.Name, prefix)); } } if (attdef != null) { builder.XDR_CheckAttributeDefault(builder._BaseDecl, attdef); } else { // will process undeclared types later attdef = new SchemaAttDef(qname, prefix); DeclBaseInfo decl = new DeclBaseInfo(); decl._Checking = true; decl._Attdef = attdef; decl._TypeName = builder._BaseDecl._TypeName; decl._ElementDecl = builder._ElementDef._ElementDecl; decl._MinOccurs = builder._BaseDecl._MinOccurs; decl._Default = builder._BaseDecl._Default; // add undefined attribute types decl._Next = builder._UndefinedAttributeTypes; builder._UndefinedAttributeTypes = decl; } builder._ElementDef._ElementDecl.AddAttDef(attdef); }
private static void XDR_BeginAttribute(XdrBuilder builder) { if (builder._BaseDecl._TypeName.IsEmpty) { builder.SendValidationEvent("Sch_MissAttribute"); } SchemaAttDef pAttdef = null; XmlQualifiedName name = builder._BaseDecl._TypeName; string ns = builder._BaseDecl._Prefix; if (builder._ElementDef._AttDefList != null) { pAttdef = (SchemaAttDef) builder._ElementDef._AttDefList[name]; } if (pAttdef == null) { SchemaAttDef def2; XmlQualifiedName key = name; if (ns.Length == 0) { key = new XmlQualifiedName(name.Name, builder._TargetNamespace); } if (builder._SchemaInfo.AttributeDecls.TryGetValue(key, out def2)) { pAttdef = def2.Clone(); pAttdef.Name = name; } else if (ns.Length != 0) { builder.SendValidationEvent("Sch_UndeclaredAttribute", XmlQualifiedName.ToString(name.Name, ns)); } } if (pAttdef != null) { builder.XDR_CheckAttributeDefault(builder._BaseDecl, pAttdef); } else { pAttdef = new SchemaAttDef(name, ns); DeclBaseInfo info = new DeclBaseInfo { _Checking = true, _Attdef = pAttdef, _TypeName = builder._BaseDecl._TypeName, _ElementDecl = builder._ElementDef._ElementDecl, _MinOccurs = builder._BaseDecl._MinOccurs, _Default = builder._BaseDecl._Default, _Next = builder._UndefinedAttributeTypes }; builder._UndefinedAttributeTypes = info; } builder._ElementDef._ElementDecl.AddAttDef(pAttdef); }