@@ -30,11 +30,11 @@ * * @brief A class which stores an XML element. */ @interface OFXMLElement: OFXMLNode { - OFString *_name, *_Nullable _namespace, *_Nullable _defaultNamespace; + OFString *_name, *_Nullable _namespace; OFMutableArray OF_GENERIC(OFXMLAttribute *) *_Nullable _attributes; OFMutableDictionary OF_GENERIC(OFString *, OFString *) *_Nullable _namespaces; OFMutableArray OF_GENERIC(OFXMLNode *) *_Nullable _children; OF_RESERVE_IVARS(OFXMLElement, 4) @@ -53,16 +53,10 @@ #else @property OF_NULLABLE_PROPERTY (copy, nonatomic, getter=namespace, setter=setNamespace:) OFString *nameSpace; #endif -/** - * @brief The default namespace for the element to be used if there is no - * parent. - */ -@property OF_NULLABLE_PROPERTY (copy, nonatomic) OFString *defaultNamespace; - /** * @brief An array with the attributes of the element. */ @property OF_NULLABLE_PROPERTY (readonly, nonatomic) OFArray OF_GENERIC(OFXMLAttribute *) *attributes; @@ -327,12 +321,12 @@ /** * @brief Removes the child at the specified index. * * @param index The index of the child to remove */ - - (void)removeChildAtIndex: (size_t)index; + /** * @brief Replaces the first child that is equal to the specified OFXMLNode * with the specified node. * * @param child The child to replace @@ -351,12 +345,12 @@ /** * @brief Returns all children that have the specified namespace. * * @return All children that have the specified namespace */ -- (OFArray OF_GENERIC(OFXMLElement *) *)elementsForNamespace: - (nullable OFString *)elementNS; +- (OFArray OF_GENERIC(OFXMLElement *) *) + elementsForNamespace: (nullable OFString *)elementNS; /** * @brief Returns the first child element with the specified name. * * @param elementName The name of the element @@ -368,12 +362,12 @@ * @brief Returns the child elements with the specified name. * * @param elementName The name of the elements * @return The child elements with the specified name */ -- (OFArray OF_GENERIC(OFXMLElement *) *)elementsForName: - (OFString *)elementName; +- (OFArray OF_GENERIC(OFXMLElement *) *) + elementsForName: (OFString *)elementName; /** * @brief Returns the first child element with the specified name and namespace. * * @param elementName The name of the element @@ -391,10 +385,32 @@ * @return The child elements with the specified name and namespace */ - (OFArray OF_GENERIC(OFXMLElement *) *) elementsForName: (OFString *)elementName namespace: (nullable OFString *)elementNS; + +/** + * @brief Returns an OFString representing the OFXMLElement as an XML string + * with the specified indentation per level. + * + * @param indentation The indentation per level + * @return An OFString representing the OFXMLNode as an XML string with + * indentation + */ +- (OFString *)XMLStringWithIndentation: (unsigned int)indentation; + +/** + * @brief Returns an OFString representing the OFXMLElement as an XML string + * with the specified default namespace and indentation per level. + * + * @param defaultNS The default namespace + * @param indentation The indentation per level + * @return An OFString representing the OFXMLNode as an XML string with + * indentation + */ +- (OFString *)XMLStringWithDefaultNamespace: (OFString *)defaultNS + indentation: (unsigned int)indentation; @end OF_ASSUME_NONNULL_END #import "OFXMLElement+Serialization.h"