ProtectedRange Class

Definition

Defines the ProtectedRange Class.

This class is available in Office 2010 and above.

When the object is serialized out as xml, it's qualified name is x14:protectedRange.

[DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Office.Excel.ReferenceSequence))]
[DocumentFormat.OpenXml.OfficeAvailability(DocumentFormat.OpenXml.FileFormatVersions.Office2010)]
[DocumentFormat.OpenXml.SchemaAttr(53, "protectedRange")]
public class ProtectedRange : DocumentFormat.OpenXml.OpenXmlCompositeElement
public class ProtectedRange : DocumentFormat.OpenXml.OpenXmlCompositeElement
[DocumentFormat.OpenXml.SchemaAttr(53, "protectedRange")]
public class ProtectedRange : DocumentFormat.OpenXml.OpenXmlCompositeElement
[DocumentFormat.OpenXml.SchemaAttr("x14:protectedRange")]
public class ProtectedRange : DocumentFormat.OpenXml.OpenXmlCompositeElement
[DocumentFormat.OpenXml.SchemaAttr("x14:protectedRange")]
public class ProtectedRange : DocumentFormat.OpenXml.TypedOpenXmlCompositeElement
[DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Office.Excel.ReferenceSequence))]
[DocumentFormat.OpenXml.OfficeAvailability(DocumentFormat.OpenXml.FileFormatVersions.Office2010)]
public class ProtectedRange : DocumentFormat.OpenXml.OpenXmlCompositeElement
[<DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Office.Excel.ReferenceSequence))>]
[<DocumentFormat.OpenXml.OfficeAvailability(DocumentFormat.OpenXml.FileFormatVersions.Office2010)>]
[<DocumentFormat.OpenXml.SchemaAttr(53, "protectedRange")>]
type ProtectedRange = class
    inherit OpenXmlCompositeElement
type ProtectedRange = class
    inherit OpenXmlCompositeElement
[<DocumentFormat.OpenXml.SchemaAttr(53, "protectedRange")>]
type ProtectedRange = class
    inherit OpenXmlCompositeElement
[<DocumentFormat.OpenXml.SchemaAttr("x14:protectedRange")>]
type ProtectedRange = class
    inherit OpenXmlCompositeElement
[<DocumentFormat.OpenXml.SchemaAttr("x14:protectedRange")>]
type ProtectedRange = class
    inherit TypedOpenXmlCompositeElement
[<DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Office.Excel.ReferenceSequence))>]
[<DocumentFormat.OpenXml.OfficeAvailability(DocumentFormat.OpenXml.FileFormatVersions.Office2010)>]
type ProtectedRange = class
    inherit OpenXmlCompositeElement
Public Class ProtectedRange
Inherits OpenXmlCompositeElement
Public Class ProtectedRange
Inherits TypedOpenXmlCompositeElement
Inheritance
Inheritance
Attributes

Remarks

2.6.56 CT_ProtectedRange

Target namespace: http://schemas.microsoft.com/office/spreadsheetml/2009/9/main

Referenced by: CT_ProtectedRanges

A complex type that specifies a cell range to be unprotected. The cell range is editable with a password or proper credentials when sheet (1) protection is on and the cell is locked.

Child Elements:

xm:sqref: A sqref element that specifies the cell range to be unprotected.

Attributes:

password: An ST_UnsignedShortHex ([ISO/IEC-29500-4] section 10.7.2) attribute that specifies the verifier value of the password required for editing the cell range. If the value is 0x0000, then there is no password.

The verifier value is calculated in two stages. First, the provided Unicode password string is converted to a new character string in the ANSI code page of the current system by using the algorithm specified in the revisionsPassword attribute in [ISO/IEC-29500-1] section 18.2.29. Second, this string is input into the XOR obfuscation algorithm specified in [MS-OFFCRYPTO] section 2.3.7.1 to produce a 16-bit password verifier value.

This attribute MUST NOT be present if algorithmName is present.

algorithmName: An ST_Xstring ([ISO/IEC-29500-1] section 22.9.2.19) attribute that specifies the name of the hash algorithm used to calculate hashValue. If this attribute is present, hashValue, saltValue, and spinCount MUST also be present. This attribute MUST NOT be present if password is present.

hashValue: A base64Binary ([XMLSCHEMA2] section 3.2.16) attribute that specifies the hash value for the password required to edit this range. This value will be compared with the resulting hash value after hashing the user-supplied password by using the algorithm specified by algorithmName, and if the two values match, the protection will no longer be enforced.

Password hashes are computed by the algorithm specified in [MS-OFFCRYPTO] section 2.4.2.4. Under some circumstances, the password is first converted to a 16-bit verifier value and reinterpreted as a single Unicode character, which is then passed to the algorithm specified in [MS-OFFCRYPTO] section 2.4.2.4. There is no way to determine which method was used to generate a hash without knowledge of the password; it is necessary to compute both hashes to verify the password.

This attribute MUST be present if and only if algorithmName is present.

saltValue: A base64Binary ([XMLSCHEMA2] section 3.2.16) attribute that specifies the salt used to calculate hashValue. This attribute MUST be present if and only if algorithmName is present.

spinCount: An unsignedInt ([XMLSCHEMA2] section 3.3.22) attribute that specifies the number of times that the hash function was iterated over the password to generate the hashValue. It MUST NOT be greater than 10,000,000. This attribute MUST be present if and only if algorithmName is present.

name: An ST_Xstring ([ISO/IEC-29500-1] section 22.9.2.19) attribute that specifies the title of the cell range. The value MUST be unique for the sheet (1). The number of characters in the string MUST be greater than or equal to 1, and less than or equal to 255. The string MUST conform to the following Augmented Backus-Naur Form (ABNF) ([RFC5234]) grammar:

string = name-start-character *name-character

name-start-character = "_" / "\" / Unicode-character

name-character = name-start-character / Unicode-space / Unicode-digit / "?" / "."

The following points summarize this grammar:

Unicode-character is any code point that is a character as defined by the Unicode character properties, [UNICODE5.1] chapter 4.

Unicode-digit is any code point that is a digit as defined by the Unicode character properties, [UNICODE5.1] chapter 4.

Unicode-space is any code point that is a space as defined by the Unicode character properties, [UNICODE5.1] chapter 4.

securityDescriptor: A string ([XMLSCHEMA2] section 3.2.1) attribute that specifies a security descriptor ([MS-WSO] section 3.1.2.3.2) that lists users who can edit the cell range without providing the password.

The following W3C XML Schema ([XMLSCHEMA1] section 2.1) fragment specifies the contents of this complex type.

<xsd:complexType name="CT_ProtectedRange">

<xsd:sequence maxOccurs="1">

<xsd:element ref="xm:sqref" minOccurs="1" maxOccurs="1"/>

</xsd:sequence>

<xsd:attribute name="password" type="x:ST_UnsignedShortHex" use="optional"/>

<xsd:attribute name="algorithmName" type="x:ST_Xstring" use="optional"/>

<xsd:attribute name="hashValue" type="xsd:base64Binary" use="optional"/>

<xsd:attribute name="saltValue" type="xsd:base64Binary" use="optional"/>

<xsd:attribute name="spinCount" type="xsd:unsignedInt" use="optional"/>

<xsd:attribute name="name" type="x:ST_Xstring" use="required"/>

<xsd:attribute name="securityDescriptor" type="xsd:string" use="optional"/>

</xsd:complexType>

See section 5.4 for the full W3C XML Schema ([XMLSCHEMA1] section 2.1).

Constructors

ProtectedRange()

Initializes a new instance of the ProtectedRange class.

ProtectedRange(IEnumerable<OpenXmlElement>)

Initializes a new instance of the ProtectedRange class with the specified child elements.

ProtectedRange(OpenXmlElement[])

Initializes a new instance of the ProtectedRange class with the specified child elements.

ProtectedRange(String)

Initializes a new instance of the ProtectedRange class from outer XML.

Properties

AlgorithmName

algorithmName, this property is only available in Office 2010 and later.

Represents the following attribute in the schema: algorithmName

ChildElements

Gets all the child nodes of the current element.

(Inherited from OpenXmlElement)
ExtendedAttributes

Gets all extended attributes (attributes not defined in the schema) of the current element.

(Inherited from OpenXmlElement)
Features

Gets a IFeatureCollection for the current element. This feature collection will be read-only, but will inherit features from its parent part and package if available.

(Inherited from OpenXmlElement)
FirstChild

Gets the first child of the current OpenXmlElement element.

(Inherited from OpenXmlCompositeElement)
HasAttributes

Gets a value indicating whether the current element has any attributes.

(Inherited from OpenXmlElement)
HasChildren

Gets a value that indicates whether the current element has any child elements.

(Inherited from OpenXmlCompositeElement)
HashValue

hashValue, this property is only available in Office 2010 and later.

Represents the following attribute in the schema: hashValue

InnerText

Gets or sets the concatenated values of the current node and all of its children.

(Inherited from OpenXmlCompositeElement)
InnerXml

Gets or sets the markup that represents only the child nodes of the current node.

(Inherited from OpenXmlCompositeElement)
LastChild

Gets the last child of the current OpenXmlElement element. Returns null (Nothing in Visual Basic) if there is no such OpenXmlElement element.

(Inherited from OpenXmlCompositeElement)
LocalName
LocalName

Gets the local name of the current element.

(Inherited from OpenXmlElement)
MCAttributes

Gets or sets the markup compatibility attributes. Returns null if no markup compatibility attributes are defined for the current element.

(Inherited from OpenXmlElement)
Name

name, this property is only available in Office 2010 and later.

Represents the following attribute in the schema: name

NamespaceDeclarations

Gets all the namespace declarations defined in the current element. Returns an empty enumerator if there is no namespace declaration.

(Inherited from OpenXmlElement)
NamespaceUri

Gets the namespace URI of the current element.

(Inherited from OpenXmlElement)
OpenXmlElementContext

Gets the OpenXmlElementContext of the current element.

(Inherited from OpenXmlElement)
OuterXml

Gets the markup that represents the current element and all of its child elements.

(Inherited from OpenXmlElement)
Parent

Gets the parent element of the current element.

(Inherited from OpenXmlElement)
Password

password, this property is only available in Office 2010 and later.

Represents the following attribute in the schema: password

Prefix

Gets the namespace prefix of current element.

(Inherited from OpenXmlElement)
ReferenceSequence

ReferenceSequence.

Represents the following element tag in the schema: xne:sqref.

SaltValue

saltValue, this property is only available in Office 2010 and later.

Represents the following attribute in the schema: saltValue

SecurityDescriptor

securityDescriptor, this property is only available in Office 2010 and later.

Represents the following attribute in the schema: securityDescriptor

SpinCount

spinCount, this property is only available in Office 2010 and later.

Represents the following attribute in the schema: spinCount

XmlQualifiedName

Gets the qualified name of the current element.

(Inherited from OpenXmlElement)
XName

Gets the qualified name of the current element.

(Inherited from OpenXmlElement)

Methods

AddAnnotation(Object)

Adds an object to the current OpenXmlElement element's list of annotations.

(Inherited from OpenXmlElement)
AddChild(OpenXmlElement, Boolean)

Adds the specified element to the element if it is a known child. This adds the element in the correct location according to the schema.

(Inherited from OpenXmlCompositeElement)
AddNamespaceDeclaration(String, String)

Adds a namespace declaration to the current node.

(Inherited from OpenXmlElement)
Ancestors()

Enumerates all of the current element's ancestors.

(Inherited from OpenXmlElement)
Ancestors<T>()

Enumerates only the current element's ancestors that have the specified type.

(Inherited from OpenXmlElement)
Annotation(Type)

Get the first annotation object of the specified type from the current OpenXmlElement element.

(Inherited from OpenXmlElement)
Annotation<T>()

Get the first annotation object of the specified type from the current OpenXmlElement element.

(Inherited from OpenXmlElement)
Annotations(Type)

Gets a collection of annotations with the specified type for the current OpenXmlElement element.

(Inherited from OpenXmlElement)
Annotations<T>()

Gets a collection of annotations with the specified type for the current OpenXmlElement element.

(Inherited from OpenXmlElement)
Append(IEnumerable<OpenXmlElement>)

Appends each element from a list of elements to the end of the current element's list of child elements.

(Inherited from OpenXmlElement)
Append(OpenXmlElement[])

Appends each element from an array of elements to the end of the current element's list of child elements.

(Inherited from OpenXmlElement)
AppendChild<T>(T)

Appends the specified element to the end of the current element's list of child nodes.

(Inherited from OpenXmlCompositeElement)
ClearAllAttributes()

Clears all of the attributes, including both known attributes and extended attributes.

(Inherited from OpenXmlElement)
Clone()

Creates a duplicate of the current node.

(Inherited from OpenXmlElement)
CloneNode(Boolean)

Creates a duplicate of this node.

Descendants()

Enumerates all of the current element's descendants.

(Inherited from OpenXmlElement)
Descendants<T>()

Enumerate all of the current element's descendants of type T.

(Inherited from OpenXmlElement)
Elements()

Enumerates all of the current element's children.

(Inherited from OpenXmlElement)
Elements<T>()

Enumerates only the current element's children that have the specified type.

(Inherited from OpenXmlElement)
ElementsAfter()

Enumerates all of the sibling elements that follow the current element and have the same parent as the current element.

(Inherited from OpenXmlElement)
ElementsBefore()

Enumerates all of the sibling elements that precede the current element and have the same parent as the current element.

(Inherited from OpenXmlElement)
GetAttribute(String, String)

Gets an Open XML attribute with the specified tag name and namespace URI.

(Inherited from OpenXmlElement)
GetAttributes()

Gets a list that contains a copy of all the attributes.

(Inherited from OpenXmlElement)
GetEnumerator()

Returns an enumerator that iterates through the child collection.

(Inherited from OpenXmlElement)
GetFirstChild<T>()

Finds the first child element in type T.

(Inherited from OpenXmlElement)
InsertAfter<T>(T, OpenXmlElement)

Inserts the specified element immediately after the specified reference element.

(Inherited from OpenXmlCompositeElement)
InsertAfterSelf<T>(T)

Inserts the specified element immediately after the current element.

(Inherited from OpenXmlElement)
InsertAt<T>(T, Int32)

Inserts the specified element at the specified index of the current element's children.

(Inherited from OpenXmlCompositeElement)
InsertBefore<T>(T, OpenXmlElement)

Inserts the specified element immediately before the specified reference element.

(Inherited from OpenXmlCompositeElement)
InsertBeforeSelf<T>(T)

Inserts the specified element immediately before the current element.

(Inherited from OpenXmlElement)
IsAfter(OpenXmlElement)

Determines if the current element appears after a specified element in document order.

(Inherited from OpenXmlElement)
IsBefore(OpenXmlElement)

Determines if the current element appears before a specified element in document order.

(Inherited from OpenXmlElement)
LookupNamespace(String)

Resolves the namespace prefix in the context of the current node.

(Inherited from OpenXmlElement)
LookupPrefix(String)

Finds the corresponding prefix for a namespace uri in the current element scope.

(Inherited from OpenXmlElement)
NextSibling()

Gets the OpenXmlElement element that immediately follows the current OpenXmlElement element. Returns null (Nothing in Visual Basic) if there is no next OpenXmlElement element.

(Inherited from OpenXmlElement)
NextSibling<T>()

Gets the OpenXmlElement element with the specified type that follows the current OpenXmlElement element. Returns null (Nothing in Visual Basic) if there is no next OpenXmlElement.

(Inherited from OpenXmlElement)
PrependChild<T>(T)

Inserts the specified element at the beginning of the current element's list of child nodes.

(Inherited from OpenXmlCompositeElement)
PreviousSibling()

Gets the OpenXmlElement element that immediately precedes the current OpenXmlElement element. Returns null (Nothing in Visual Basic ) if there is no preceding OpenXmlElement element.

(Inherited from OpenXmlElement)
PreviousSibling<T>()

Gets the OpenXmlElement element with the specified type that precedes the current OpenXmlElement. Returns null (Nothing in Visual Basic) if there is no preceding OpenXmlElement element.

(Inherited from OpenXmlElement)
Remove()

Removes the current element from its parent.

(Inherited from OpenXmlElement)
RemoveAllChildren()

Removes all of the current element's child elements.

(Inherited from OpenXmlCompositeElement)
RemoveAllChildren<T>()

Remove all of the current element's child elements that are of type T.

(Inherited from OpenXmlElement)
RemoveAnnotations(Type)

Removes the annotations of the specified type from the current OpenXmlElement element.

(Inherited from OpenXmlElement)
RemoveAnnotations<T>()

Removes the annotations with the specified type from the current OpenXmlElement element.

(Inherited from OpenXmlElement)
RemoveAttribute(String, String)

Removes the attribute from the current element.

(Inherited from OpenXmlElement)
RemoveChild<T>(T)

Removes the specified child element.

(Inherited from OpenXmlCompositeElement)
RemoveNamespaceDeclaration(String)

Removes the namespace declaration for the specified prefix. Removes nothing if there is no prefix.

(Inherited from OpenXmlElement)
ReplaceChild<T>(OpenXmlElement, T)

Replaces one of the current element's child elements with another OpenXmlElement element.

(Inherited from OpenXmlCompositeElement)
SetAttribute(OpenXmlAttribute)

Sets an attribute to the specified element. If the attribute is a known attribute, the value of the attribute is set. If the attribute is an extended attribute, the 'openxmlAttribute' is added to the extended attributes list.

(Inherited from OpenXmlElement)
SetAttributes(IEnumerable<OpenXmlAttribute>)

Sets a number of attributes to the element. If an attribute is a known attribute, the value of the attribute is set. If an attribute is an extended attribute, the 'openxmlAttribute' is added to the extended attributes list.

(Inherited from OpenXmlElement)
WriteTo(XmlWriter)

Saves the current node to the specified XmlWriter.

(Inherited from OpenXmlElement)

Explicit Interface Implementations

IEnumerable.GetEnumerator() (Inherited from OpenXmlElement)
IEnumerable<OpenXmlElement>.GetEnumerator()

Returns an enumerator that iterates through the child collection.

(Inherited from OpenXmlElement)

Applies to