1 //------------------------------------------------------------------------------
2 // <copyright file="XmlSchemaAnyAttribute.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 // <owner current="true" primary="true">[....]</owner>
6 //------------------------------------------------------------------------------
8 namespace System.Xml.Schema {
10 using System.Collections;
11 using System.ComponentModel;
12 using System.Xml.Serialization;
14 /// <include file='doc\XmlSchemaAnyAttribute.uex' path='docs/doc[@for="XmlSchemaAnyAttribute"]/*' />
16 /// <para>[To be supplied.]</para>
18 public class XmlSchemaAnyAttribute : XmlSchemaAnnotated {
20 XmlSchemaContentProcessing processContents = XmlSchemaContentProcessing.None;
21 NamespaceList namespaceList;
23 /// <include file='doc\XmlSchemaAnyAttribute.uex' path='docs/doc[@for="XmlSchemaAnyAttribute.Namespaces"]/*' />
25 /// <para>[To be supplied.]</para>
27 [XmlAttribute("namespace")]
28 public string Namespace {
33 /// <include file='doc\XmlSchemaAnyAttribute.uex' path='docs/doc[@for="XmlSchemaAnyAttribute.ProcessContents"]/*' />
35 /// <para>[To be supplied.]</para>
37 [XmlAttribute("processContents"), DefaultValue(XmlSchemaContentProcessing.None)]
38 public XmlSchemaContentProcessing ProcessContents {
39 get { return processContents; }
40 set { processContents = value; }
45 internal NamespaceList NamespaceList {
46 get { return namespaceList; }
50 internal XmlSchemaContentProcessing ProcessContentsCorrect {
51 get { return processContents == XmlSchemaContentProcessing.None ? XmlSchemaContentProcessing.Strict : processContents; }
54 internal void BuildNamespaceList(string targetNamespace) {
56 namespaceList = new NamespaceList(ns, targetNamespace);
59 namespaceList = new NamespaceList();
63 internal void BuildNamespaceListV1Compat(string targetNamespace) {
65 namespaceList = new NamespaceListV1Compat(ns, targetNamespace);
68 namespaceList = new NamespaceList(); //This is only ##any, hence base class is sufficient
72 internal bool Allows(XmlQualifiedName qname) {
73 return namespaceList.Allows(qname.Namespace);
76 internal static bool IsSubset(XmlSchemaAnyAttribute sub, XmlSchemaAnyAttribute super) {
77 return NamespaceList.IsSubset(sub.NamespaceList, super.NamespaceList);
80 internal static XmlSchemaAnyAttribute Intersection(XmlSchemaAnyAttribute o1, XmlSchemaAnyAttribute o2, bool v1Compat) {
81 NamespaceList nsl = NamespaceList.Intersection(o1.NamespaceList, o2.NamespaceList, v1Compat);
83 XmlSchemaAnyAttribute anyAttribute = new XmlSchemaAnyAttribute();
84 anyAttribute.namespaceList = nsl;
85 anyAttribute.ProcessContents = o1.ProcessContents;
86 anyAttribute.Annotation = o1.Annotation;
95 internal static XmlSchemaAnyAttribute Union(XmlSchemaAnyAttribute o1, XmlSchemaAnyAttribute o2, bool v1Compat) {
96 NamespaceList nsl = NamespaceList.Union(o1.NamespaceList, o2.NamespaceList, v1Compat);
98 XmlSchemaAnyAttribute anyAttribute = new XmlSchemaAnyAttribute();
99 anyAttribute.namespaceList = nsl;
100 anyAttribute.processContents = o1.processContents;
101 anyAttribute.Annotation = o1.Annotation;