private SemanticSchemaData GetSemanticSchema(Schema schema)
        {
            try
            {
                SemanticTypeData[] semanticTypes = GetSemanticTypes(schema).ToArray();

                SemanticSchemaData semanticSchema = new SemanticSchemaData
                {
                    Id          = schema.Id.ItemId,
                    RootElement = GetSemanticRootElementName(schema),
                    Semantics   = semanticTypes
                };

                _currentSchema = schema;

                SchemaFields schemaFields = new SchemaFields(schema, expandEmbeddedFields: true);
                List <SemanticSchemaFieldData> semanticSchemaFields = new List <SemanticSchemaFieldData>();
                semanticSchemaFields.AddRange(GetSemanticSchemaFields(schemaFields.Fields, semanticTypes, schema, "/" + schema.RootElementName));
                semanticSchemaFields.AddRange(GetSemanticSchemaFields(schemaFields.MetadataFields, semanticTypes, schema, "/Metadata"));
                semanticSchema.Fields = semanticSchemaFields.ToArray();

                return(semanticSchema);
            }
            catch (Exception ex)
            {
                throw new DxaException(
                          string.Format("An error occurred while generating the semantic schema for Schema '{0}' ({1}).", schema.Title, schema.Id),
                          ex
                          );
            }
        }
Ejemplo n.º 2
0
        private SemanticSchemaData GetSemanticSchema(Schema schema)
        {
            try
            {
                SemanticTypeData[] semanticTypes = GetSemanticTypes(schema).ToArray();

                SemanticSchemaData semanticSchema = new SemanticSchemaData
                {
                    Id = schema.Id.ItemId,
                    RootElement = GetSemanticRootElementName(schema),
                    Semantics = semanticTypes
                };

                _currentSchema = schema;

                SchemaFields schemaFields = new SchemaFields(schema, expandEmbeddedFields: true);
                List<SemanticSchemaFieldData> semanticSchemaFields = new List<SemanticSchemaFieldData>();
                semanticSchemaFields.AddRange(GetSemanticSchemaFields(schemaFields.Fields, semanticTypes, schema, "/" + schema.RootElementName));
                semanticSchemaFields.AddRange(GetSemanticSchemaFields(schemaFields.MetadataFields, semanticTypes, schema, "/Metadata"));
                semanticSchema.Fields = semanticSchemaFields.ToArray();

                return semanticSchema;
            }
            catch (Exception ex)
            {
                throw new DxaException(
                    string.Format("An error occurred while generating the semantic schema for Schema '{0}' ({1}).", schema.Title, schema.Id),
                    ex
                    );
            }
        }