Beispiel #1
0
        /// <summary>
        ///     Serialize the <see cref="EdmModel" /> to the XmlWriter.
        /// </summary>
        /// <param name="model">
        ///     The EdmModel to serialize, mut have only one <see cref="EdmNamespace" /> and one
        ///     <see
        ///         cref="Core.Metadata.Edm.EntityContainer" />
        /// </param>
        /// <param name="xmlWriter"> The XmlWriter to serialize to </param>
        public bool Serialize(EdmModel model, XmlWriter xmlWriter)
        {
            Check.NotNull(model, "model");
            Check.NotNull(xmlWriter, "xmlWriter");

            if (model.Namespaces.Count != 1 ||
                model.Containers.Count != 1)
            {
                Validator_OnError(
                    this,
                    new DataModelErrorEventArgs
                {
                    ErrorMessage = Strings.Serializer_OneNamespaceAndOneContainer,
                });
            }

            // validate the model first
            var validator = new DataModelValidator();

            validator.OnError += Validator_OnError;
            validator.Validate(model, true);

            if (_isModelValid)
            {
                var visitor = new EdmSerializationVisitor(xmlWriter, model.Version);
                visitor.Visit(model);
            }
            return(_isModelValid);
        }
Beispiel #2
0
        /// <summary>
        ///     Serialize the <see cref="EdmModel" /> to the <see cref="XmlWriter" />
        /// </summary>
        /// <param name="dbDatabase"> The EdmModel to serialize </param>
        /// <param name="provider"> Provider information on the Schema element </param>
        /// <param name="providerManifestToken"> ProviderManifestToken information on the Schema element </param>
        /// <param name="xmlWriter"> The XmlWriter to serialize to </param>
        /// <returns> </returns>
        public virtual bool Serialize(
            EdmModel dbDatabase, string provider, string providerManifestToken, XmlWriter xmlWriter)
        {
            Check.NotNull(dbDatabase, "dbDatabase");
            Check.NotNull(xmlWriter, "xmlWriter");

            var visitor = new EdmSerializationVisitor(xmlWriter, dbDatabase.Version, serializeDefaultNullability: true);

            visitor.Visit(dbDatabase, provider, providerManifestToken);

            return(true);
        }
Beispiel #3
0
        private void AppendMetadataItem <T>(
            StringBuilder builder, T item, Action <EdmSerializationVisitor, T> visitAction)
            where T : MetadataItem
        {
            var settings = new XmlWriterSettings
            {
                ConformanceLevel = ConformanceLevel.Fragment,
                Indent           = true
            };

            settings.NewLineChars += "        ";

            builder.Append(settings.NewLineChars);

            using (var writer = XmlWriter.Create(builder, settings))
            {
                var visitor = new EdmSerializationVisitor(_schemaWriter.Replicate(writer));
                visitAction(visitor, item);
            }
        }