001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package dev.metaschema.core.model;
007
008/**
009 * This marker interface is used to identify a field or assembly instance that
010 * is a member of an assembly's model.
011 */
012public interface IModelInstance extends IGroupable {
013  @Override
014  IContainerModel getParentContainer();
015
016  @Override
017  IAssemblyDefinition getContainingDefinition();
018
019  /**
020   * Indicate if the instance allows values without an XML element wrapper.
021   *
022   * @return {@code true} if the underlying data type is allowed to be unwrapped,
023   *         or {@code false} otherwise
024   */
025  boolean isEffectiveValueWrappedInXml();
026}