示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="elementoXsd"></param>
        /// <param name="estaDeclarado"></param>
        /// <param name="minOccurs"></param>
        /// <param name="maxOccurs">si maxOccurs es mas pequeño que minOccurs se pondrá unbounded</param>
        public bool Añadir(ElementoXsd elementoXsd, bool estaDeclarado, int minOccurs = 1, int maxOccurs = 1)
        {
            bool añadido = false;

            if (!Equals(elementoXsd, default(ElementoXsd)))
            {
                text elemento;
                if (!estaDeclarado)
                {
                    elemento = elementoXsd.UsoCompleto();
                }
                else
                {
                    elemento = elementoXsd.UsoConReferencia();
                }
                elemento = elemento.Remove(0, elemento.Length - 2);
                if (minOccurs >= 0)
                {
                    elemento &= " minOccurs=\"" + minOccurs + "\"";
                }
                if (maxOccurs < minOccurs)
                {
                    elemento &= " maxOccurs=\"" + HIJOSILIMITADOS + "\"/>";
                }
                else
                {
                    elemento &= " maxOccurs=\"" + maxOccurs + "\"/>";
                }
                elementos.Add(new ElementoXsdOrdenado(elementoXsd, numerosOrden++), elemento);
                añadido = true;
            }
            return(añadido);
        }
示例#2
0
        public bool Quitar(ElementoXsd tipo)
        {
            bool quitado = true;

            if (declaracionElementos.ContainsKey(tipo))
            {
                declaracionElementos.Remove(tipo);
            }
            else
            {
                quitado = false;
            }
            return(quitado);
        }
示例#3
0
        public bool Añadir(ElementoXsd tipo)
        {
            if (tipo.Nombre == null)
            {
                throw new XsdException("El elemento tiene que tener un nombre");
            }
            bool añadir = true;

            if (!declaracionElementos.ContainsKey(tipo))
            {
                declaracionElementos.Add(tipo, null);
            }
            else
            {
                añadir = false;
            }
            return(añadir);
        }
示例#4
0
 public void Quitar(ElementoXsd elementoXsd)
 {
     if (!elementoXsd.Equals(default(ElementoXsd)))
     {
         ElementoXsdOrdenado elementoAQuitar = default(ElementoXsdOrdenado);
         var elementosEnum = elementos.GetEnumerator();
         while (elementoAQuitar.Equals(default(ElementoXsdOrdenado)) && elementosEnum.MoveNext())
         {
             if (elementosEnum.Current.Key.elemento.Equals(elementoXsd))
             {
                 elementoAQuitar = elementosEnum.Current.Key;
             }
         }
         if (!elementoAQuitar.Equals(default(ElementoXsdOrdenado)))
         {
             if (elementos.ContainsKey(elementoAQuitar))
             {
                 elementos.Remove(elementoAQuitar);
             }
         }
     }
 }
示例#5
0
 public void Reemplazar(ElementoXsd tipo)
 {
     Quitar(tipo);
     Añadir(tipo);
 }
示例#6
0
 public ElementoXsdOrdenado(ElementoXsd elemento, int orden)
 {
     this.elemento = elemento;
     this.orden    = orden;
 }