示例#1
0
        /// <summary>
        /// Get the expected elements - elements which minOccurs >= 0.
        /// </summary>
        /// <param name="result"></param>
        /// <returns>True if there are expected elements in this particle.</returns>
        public override bool GetExpectedElements(ExpectedChildren result)
        {
            if (result != null)
            {
                result.Add(NamespaceIdMap.GetNamespaceUri(this._nsAnyParticleConstraint.NamespaceId));
            }

            return(true);
        }
        /// <summary>
        /// Get the required elements - elements which minOccurs > 0.
        /// </summary>
        /// <param name="result"></param>
        /// <returns>True if there are required elements in this particle.</returns>
        public override bool GetRequiredElements(ExpectedChildren result)
        {
            if (ParticleConstraint.MinOccurs > 0)
            {
                if (result != null)
                {
                    result.Add(NamespaceIdMap.GetNamespaceUri(_nsAnyParticleConstraint.NamespaceId));
                }

                return(true);
            }
            return(false);
        }
        public void NamespacePrefixTest(string ns, string prefix, FileFormatVersions version, byte id)
        {
            Assert.True(NamespaceIdMap.TryGetNamespaceId(ns, out var outId));
            Assert.Equal(id, outId);

            Assert.Equal(prefix, NamespaceIdMap.GetNamespacePrefix(id));

            Assert.Equal(ns, NamespaceIdMap.GetNamespaceUri(prefix));
            Assert.Equal(ns, NamespaceIdMap.GetNamespaceUri(id));

            foreach (var v in FileFormatVersionExtensions.AllVersions)
            {
                Assert.Equal(v == version, NamespaceIdMap.IsInFileFormat(ns, v));
            }
        }
示例#4
0
        /// <summary>
        /// Try match this element once.
        /// </summary>
        /// <param name="particleMatchInfo"></param>
        /// <param name="validationContext">The context information for validation.</param>
        public override void TryMatchOnce(ParticleMatchInfo particleMatchInfo, ValidationContext validationContext)
        {
            Debug.Assert(particleMatchInfo != null);
            Debug.Assert(particleMatchInfo.StartElement != null);
            Debug.Assert(!(particleMatchInfo.StartElement is OpenXmlMiscNode));

            var element = particleMatchInfo.StartElement;

            if (element.NamespaceUri == NamespaceIdMap.GetNamespaceUri(this._nsAnyParticleConstraint.NamespaceId))
            {
                particleMatchInfo.Match = ParticleMatch.Matched;
                particleMatchInfo.LastMatchedElement = element;
            }
            else
            {
                particleMatchInfo.Match = ParticleMatch.Nomatch;
            }
            return;
        }
 protected static XmlQualifiedName GetAttributeQualifiedName(OpenXmlElement element, byte attributeID)
 {
     return(new XmlQualifiedName(element.AttributeTagNames[attributeID], NamespaceIdMap.GetNamespaceUri(element.AttributeNamespaceIds[attributeID])));
 }