This commit is contained in:
Francesco Chicchiriccò 2014-03-19 17:58:20 +01:00
commit df77c31a6e
26 changed files with 3204 additions and 570 deletions

View File

@ -57,7 +57,7 @@ public abstract class Commons {
protected final static Map<String, Integer> sequence = new HashMap<String, Integer>();
protected final static Set<String> mediaContent = new HashSet<String>();
public final static Set<String> mediaContent = new HashSet<String>();
protected final static Map<ODataVersion, MetadataLinkInfo> linkInfo =
new EnumMap<ODataVersion, MetadataLinkInfo>(ODataVersion.class);
@ -65,12 +65,14 @@ public abstract class Commons {
static {
sequence.put("Customer", 1000);
sequence.put("CustomerInfo", 1000);
sequence.put("Car", 1000);
sequence.put("Message", 1000);
sequence.put("Order", 1000);
sequence.put("ComputerDetail", 1000);
sequence.put("AllGeoTypesSet", 1000);
mediaContent.add("CustomerInfo");
mediaContent.add("Car");
}
public static String getEntityURI(final String entitySetName, final String entityKey) {

View File

@ -34,9 +34,12 @@ import org.apache.olingo.fit.utils.LinkInfo;
import java.io.File;
import java.io.InputStream;
import java.util.AbstractMap;
import java.util.Arrays;
import java.util.Collections;
import java.util.EnumSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.DefaultValue;
@ -64,6 +67,8 @@ public abstract class AbstractServices {
*/
protected static final Logger LOG = LoggerFactory.getLogger(AbstractServices.class);
private static Set<ODataVersion> initialized = EnumSet.noneOf(ODataVersion.class);
protected abstract ODataVersion getVersion();
protected final XMLUtilities xml;
@ -72,6 +77,11 @@ public abstract class AbstractServices {
public AbstractServices() throws Exception {
this.xml = new XMLUtilities(getVersion());
this.json = new JSONUtilities(getVersion());
if (!initialized.contains(getVersion())) {
xml.retrieveLinkInfoFromMetadata();
initialized.add(getVersion());
}
}
/**
@ -272,13 +282,15 @@ public abstract class AbstractServices {
@POST
@Path("/{entitySetName}")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM})
public Response postNewEntity(
@HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) String accept,
@HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) String prefer,
@PathParam("entitySetName") String entitySetName,
final String entity) {
// default
AbstractUtilities utils = xml;
try {
final Accept acceptType = Accept.parse(accept, getVersion());
@ -286,19 +298,22 @@ public abstract class AbstractServices {
throw new UnsupportedMediaTypeException("Unsupported media type");
}
utils = getUtilities(acceptType);
final InputStream res;
if (acceptType == Accept.ATOM) {
res = xml.addOrReplaceEntity(entitySetName, IOUtils.toInputStream(entity));
if (utils.isMediaContent(entitySetName)) {
res = utils.addMediaEntity(entitySetName, IOUtils.toInputStream(entity));
} else {
res = json.addOrReplaceEntity(entitySetName, IOUtils.toInputStream(entity));
res = utils.addOrReplaceEntity(entitySetName, IOUtils.toInputStream(entity));
}
final Response response;
if ("return-no-content".equalsIgnoreCase(prefer)) {
res.close();
response = xml.createResponse(null, null, acceptType, Response.Status.NO_CONTENT);
IOUtils.closeQuietly(res);
response = utils.createResponse(null, null, acceptType, Response.Status.NO_CONTENT);
} else {
response = xml.createResponse(res, null, acceptType, Response.Status.CREATED);
response = utils.createResponse(res, null, acceptType, Response.Status.CREATED);
}
if (StringUtils.isNotBlank(prefer)) {
@ -307,7 +322,7 @@ public abstract class AbstractServices {
return response;
} catch (Exception e) {
return xml.createFaultResponse(accept, e);
return utils.createFaultResponse(accept, e);
}
}
@ -489,6 +504,28 @@ public abstract class AbstractServices {
}
}
@GET
@Path("/{entitySetName}({entityId})/$value")
public Response getMediaEntity(
@HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) String accept,
@PathParam("entitySetName") String entitySetName,
@PathParam("entityId") String entityId) {
try {
if (!accept.contains("*/*") && !accept.contains("application/octet-stream")) {
throw new UnsupportedMediaTypeException("Unsupported media type");
}
final AbstractUtilities utils = getUtilities(null);
final Map.Entry<String, InputStream> entityInfo = utils.readMediaEntity(entitySetName, entityId);
return utils.createResponse(entityInfo.getValue(), Commons.getETag(entityInfo.getKey(), getVersion()), null);
} catch (Exception e) {
LOG.error("Error retrieving entity", e);
return xml.createFaultResponse(accept, e);
}
}
@DELETE
@Path("/{entitySetName}/{entityId}")
public Response removeEntityKeyAsSegment(
@ -514,6 +551,327 @@ public abstract class AbstractServices {
}
}
private Response replaceProperty(
final String accept,
final String prefer,
final String entitySetName,
final String entityId,
final String path,
final String format,
final String changes,
final boolean justValue) {
try {
Accept acceptType = null;
if (StringUtils.isNotBlank(format)) {
acceptType = Accept.valueOf(format.toUpperCase());
} else if (StringUtils.isNotBlank(accept)) {
acceptType = Accept.parse(accept, getVersion(), null);
}
// if the given path is not about any link then search for property
LOG.info("Retrieve property {}", path);
final AbstractUtilities utils = getUtilities(acceptType);
final InputStream changed = utils.replaceProperty(
entitySetName,
entityId,
IOUtils.toInputStream(changes),
Arrays.asList(path.split("/")),
acceptType,
justValue);
final Response response;
if ("return-content".equalsIgnoreCase(prefer)) {
response = xml.createResponse(changed, null, acceptType, Response.Status.OK);
} else {
changed.close();
response = xml.createResponse(null, null, acceptType, Response.Status.NO_CONTENT);
}
if (StringUtils.isNotBlank(prefer)) {
response.getHeaders().put("Preference-Applied", Collections.<Object>singletonList(prefer));
}
return response;
} catch (Exception e) {
return xml.createFaultResponse(accept, e);
}
}
private Response deletePropertyValue(
final String accept,
final String prefer,
final String entitySetName,
final String entityId,
final String path,
final String format) {
try {
Accept acceptType = null;
if (StringUtils.isNotBlank(format)) {
acceptType = Accept.valueOf(format.toUpperCase());
} else if (StringUtils.isNotBlank(accept)) {
acceptType = Accept.parse(accept, getVersion(), null);
}
// if the given path is not about any link then search for property
LOG.info("Retrieve property {}", path);
final AbstractUtilities utils = getUtilities(acceptType);
final InputStream changed = utils.deleteProperty(
entitySetName,
entityId,
Arrays.asList(path.split("/")),
acceptType);
final Response response;
if ("return-content".equalsIgnoreCase(prefer)) {
response = xml.createResponse(changed, null, acceptType, Response.Status.OK);
} else {
changed.close();
response = xml.createResponse(null, null, acceptType, Response.Status.NO_CONTENT);
}
if (StringUtils.isNotBlank(prefer)) {
response.getHeaders().put("Preference-Applied", Collections.<Object>singletonList(prefer));
}
return response;
} catch (Exception e) {
return xml.createFaultResponse(accept, e);
}
}
/**
* Replace property value.
*
* @param accept
* @param entitySetName
* @param entityId
* @param path
* @param format
* @param changes
* @return
*/
@PUT
@Path("/{entitySetName}({entityId})/{path:.*}/$value")
public Response replacePropertyValue(
@HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) String accept,
@HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) String prefer,
@PathParam("entitySetName") String entitySetName,
@PathParam("entityId") String entityId,
@PathParam("path") String path,
@QueryParam("$format") @DefaultValue(StringUtils.EMPTY) String format,
final String changes) {
return replaceProperty(accept, prefer, entitySetName, entityId, path, format, changes, true);
}
/**
* Replace property.
*
* @param accept
* @param entitySetName
* @param entityId
* @param path
* @param format
* @param changes
* @return
*/
@MERGE
@Path("/{entitySetName}({entityId})/{path:.*}")
public Response mergeProperty(
@HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) String accept,
@HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) String prefer,
@PathParam("entitySetName") String entitySetName,
@PathParam("entityId") String entityId,
@PathParam("path") String path,
@QueryParam("$format") @DefaultValue(StringUtils.EMPTY) String format,
final String changes) {
return replaceProperty(accept, prefer, entitySetName, entityId, path, format, changes, false);
}
/**
* Replace property.
*
* @param accept
* @param entitySetName
* @param entityId
* @param path
* @param format
* @param changes
* @return
*/
@PATCH
@Path("/{entitySetName}({entityId})/{path:.*}")
public Response patchProperty(
@HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) String accept,
@HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) String prefer,
@PathParam("entitySetName") String entitySetName,
@PathParam("entityId") String entityId,
@PathParam("path") String path,
@QueryParam("$format") @DefaultValue(StringUtils.EMPTY) String format,
final String changes) {
return replaceProperty(accept, prefer, entitySetName, entityId, path, format, changes, false);
}
@PUT
@Produces({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
@Consumes({MediaType.WILDCARD, MediaType.APPLICATION_OCTET_STREAM})
@Path("/{entitySetName}({entityId})/$value")
public Response replaceMediaEntity(
@HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) String prefer,
@PathParam("entitySetName") String entitySetName,
@PathParam("entityId") String entityId,
@QueryParam("$format") @DefaultValue(StringUtils.EMPTY) String format,
String value) {
try {
final AbstractUtilities utils = getUtilities(null);
InputStream res = utils.putMediaInMemory(entitySetName, entityId, IOUtils.toInputStream(value));
final Response response;
if ("return-content".equalsIgnoreCase(prefer)) {
response = xml.createResponse(res, null, null, Response.Status.OK);
} else {
res.close();
response = xml.createResponse(null, null, null, Response.Status.NO_CONTENT);
}
if (StringUtils.isNotBlank(prefer)) {
response.getHeaders().put("Preference-Applied", Collections.<Object>singletonList(prefer));
}
return response;
} catch (Exception e) {
LOG.error("Error retrieving entity", e);
return xml.createFaultResponse(Accept.JSON.toString(), e);
}
}
/**
* Replace property.
*
* @param accept
* @param entitySetName
* @param entityId
* @param path
* @param format
* @param changes
* @return
*/
@PUT
@Path("/{entitySetName}({entityId})/{path:.*}")
public Response replaceProperty(
@HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) String accept,
@HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) String prefer,
@PathParam("entitySetName") String entitySetName,
@PathParam("entityId") String entityId,
@PathParam("path") String path,
@QueryParam("$format") @DefaultValue(StringUtils.EMPTY) String format,
final String changes) {
if (xml.isMediaContent(entitySetName + "/" + path)) {
return replaceMediaProperty(prefer, entitySetName, entityId, path, format, changes);
} else {
return replaceProperty(accept, prefer, entitySetName, entityId, path, format, changes, false);
}
}
private Response replaceMediaProperty(
final String prefer,
final String entitySetName,
final String entityId,
final String path,
final String format,
final String value) {
try {
final AbstractUtilities utils = getUtilities(null);
InputStream res = utils.putMediaInMemory(entitySetName, entityId, path, IOUtils.toInputStream(value));
final Response response;
if ("return-content".equalsIgnoreCase(prefer)) {
response = xml.createResponse(res, null, null, Response.Status.OK);
} else {
res.close();
response = xml.createResponse(null, null, null, Response.Status.NO_CONTENT);
}
if (StringUtils.isNotBlank(prefer)) {
response.getHeaders().put("Preference-Applied", Collections.<Object>singletonList(prefer));
}
return response;
} catch (Exception e) {
LOG.error("Error retrieving entity", e);
return xml.createFaultResponse(Accept.JSON.toString(), e);
}
}
/**
* Nullify property value.
*
* @param accept
* @param entitySetName
* @param entityId
* @param path
* @param format
* @param changes
* @return
*/
@DELETE
@Path("/{entitySetName}({entityId})/{path:.*}/$value")
public Response deleteProperty(
@HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) String accept,
@HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) String prefer,
@PathParam("entitySetName") String entitySetName,
@PathParam("entityId") String entityId,
@PathParam("path") String path,
@QueryParam("$format") @DefaultValue(StringUtils.EMPTY) String format) {
return deletePropertyValue(accept, prefer, entitySetName, entityId, path, format);
}
/**
* Retrieve property sample.
*
* @param accept Accept header.
* @param entitySetName Entity set name.
* @param entityId entity id.
* @param path path.
* @param format format query option.
* @return property.
*/
@GET
@Path("/{entitySetName}({entityId})/{path:.*}/$value")
public Response getPathValue(
@HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) String accept,
@PathParam("entitySetName") String entitySetName,
@PathParam("entityId") String entityId,
@PathParam("path") String path,
@QueryParam("$format") @DefaultValue(StringUtils.EMPTY) String format) {
AbstractUtilities utils = null;
try {
Accept acceptType = null;
if (StringUtils.isNotBlank(format)) {
acceptType = Accept.valueOf(format.toUpperCase());
} else if (StringUtils.isNotBlank(accept)) {
acceptType = Accept.parse(accept, getVersion(), null);
}
utils = getUtilities(acceptType);
return navigateProperty(acceptType, entitySetName, entityId, path, true);
} catch (Exception e) {
return (utils == null ? xml : utils).createFaultResponse(accept, e);
}
}
/**
* Retrieve property sample.
*
@ -533,69 +891,99 @@ public abstract class AbstractServices {
@PathParam("path") String path,
@QueryParam("$format") @DefaultValue(StringUtils.EMPTY) String format) {
// default utilities
final AbstractUtilities utils = xml;
try {
boolean searchForValue = path.endsWith("$value");
Accept acceptType = null;
if (StringUtils.isNotBlank(format)) {
acceptType = Accept.valueOf(format.toUpperCase());
} else if (StringUtils.isNotBlank(accept)) {
acceptType = Accept.parse(accept, getVersion(), null);
}
final String basePath =
entitySetName + File.separatorChar + Commons.getEntityKey(entityId) + File.separatorChar;
InputStream stream;
try {
final LinkInfo linkInfo = xml.readLinks(entitySetName, entityId, path, Accept.XML);
final Map.Entry<String, List<String>> links = XMLUtilities.extractLinkURIs(linkInfo.getLinks());
switch (acceptType) {
case JSON:
case JSON_FULLMETA:
case JSON_NOMETA:
stream = json.readEntities(links.getValue(), path, links.getKey(), linkInfo.isFeed());
stream = json.wrapJsonEntities(stream);
break;
default:
stream = xml.readEntities(links.getValue(), path, links.getKey(), linkInfo.isFeed());
}
} catch (NotFoundException e) {
// if the given path is not about any link then search for property
LOG.info("Retrieve property {}", path);
stream = FSManager.instance(getVersion()).readFile(
basePath + ENTITY, acceptType == null || acceptType == Accept.TEXT
? Accept.XML : acceptType);
if (searchForValue) {
stream = xml.getAtomPropertyValue(stream, path.split("/"));
} else {
if (acceptType == null || acceptType == Accept.XML || acceptType == Accept.ATOM) {
// retrieve xml
stream = xml.getAtomProperty(stream, path.split("/"));
} else {
// retrieve Edm type from xml
final String edmType = xml.getEdmTypeFromXML(
FSManager.instance(getVersion()).readFile(basePath + ENTITY, Accept.XML),
path.split("/"));
// retrieve json property
stream = json.getJsonProperty(stream, path.split("/"), edmType);
}
if (utils.isMediaContent(entitySetName + "/" + path)) {
return navigateStreamedEntity(entitySetName, entityId, path);
} else {
Accept acceptType = null;
if (StringUtils.isNotBlank(format)) {
acceptType = Accept.valueOf(format.toUpperCase());
} else if (StringUtils.isNotBlank(accept)) {
acceptType = Accept.parse(accept, getVersion(), null);
}
if ((searchForValue && acceptType != null && acceptType != Accept.TEXT) || acceptType == Accept.ATOM) {
throw new UnsupportedMediaTypeException("Unsupported media type " + acceptType);
try {
return navigateEntity(acceptType, entitySetName, entityId, path);
} catch (NotFoundException e) {
// if the given path is not about any link then search for property
return navigateProperty(acceptType, entitySetName, entityId, path, false);
}
}
return xml.createResponse(stream, Commons.getETag(basePath, getVersion()), acceptType);
} catch (Exception e) {
return xml.createFaultResponse(accept, e);
return utils.createFaultResponse(accept, e);
}
}
private Response navigateStreamedEntity(
String entitySetName,
String entityId,
String path) throws Exception {
final AbstractUtilities utils = getUtilities(null);
final Map.Entry<String, InputStream> entityInfo = utils.readMediaEntity(entitySetName, entityId, path);
return utils.createResponse(entityInfo.getValue(), Commons.getETag(entityInfo.getKey(), getVersion()), null);
}
private Response navigateEntity(
final Accept acceptType,
String entitySetName,
String entityId,
String path) throws Exception {
final String basePath = Commons.getEntityBasePath(entitySetName, entityId);
final LinkInfo linkInfo = xml.readLinks(entitySetName, entityId, path, Accept.XML);
final Map.Entry<String, List<String>> links = xml.extractLinkURIs(linkInfo.getLinks());
InputStream stream;
switch (acceptType) {
case JSON:
case JSON_FULLMETA:
case JSON_NOMETA:
stream = json.readEntities(links.getValue(), path, links.getKey(), linkInfo.isFeed());
stream = json.wrapJsonEntities(stream);
break;
default:
stream = xml.readEntities(links.getValue(), path, links.getKey(), linkInfo.isFeed());
}
return xml.createResponse(stream, Commons.getETag(basePath, getVersion()), acceptType);
}
private Response navigateProperty(
final Accept acceptType,
final String entitySetName,
final String entityId,
final String path,
final boolean searchForValue) throws Exception {
if ((searchForValue && acceptType != null && acceptType != Accept.TEXT) || acceptType == Accept.ATOM) {
throw new UnsupportedMediaTypeException("Unsupported media type " + acceptType);
}
final String basePath = Commons.getEntityBasePath(entitySetName, entityId);
InputStream stream = FSManager.instance(getVersion()).readFile(
basePath + ENTITY, acceptType == null || acceptType == Accept.TEXT
? Accept.XML : acceptType);
final AbstractUtilities utils = getUtilities(acceptType);
final List<String> pathElements = Arrays.asList(path.split("\\/"));
if (searchForValue) {
stream = utils.getPropertyValue(stream, pathElements);
} else {
String edmType = xml.getEdmTypeFromAtom(entitySetName, entityId, pathElements);
stream = utils.getProperty(entitySetName, entityId, pathElements, edmType);
}
return xml.createResponse(stream, Commons.getETag(basePath, getVersion()), acceptType);
}
/**
* Retrieve links sample.
*
@ -670,9 +1058,9 @@ public abstract class AbstractServices {
final List<String> links;
if (content == Accept.XML || content == Accept.TEXT || content == Accept.ATOM) {
links = XMLUtilities.extractLinkURIs(IOUtils.toInputStream(link)).getValue();
links = xml.extractLinkURIs(IOUtils.toInputStream(link)).getValue();
} else {
links = JSONUtilities.extractLinkURIs(IOUtils.toInputStream(link)).getValue();
links = json.extractLinkURIs(IOUtils.toInputStream(link)).getValue();
}
utils.putLinksInMemory(
@ -747,9 +1135,9 @@ public abstract class AbstractServices {
final List<String> links;
if (content == Accept.XML || content == Accept.TEXT || content == Accept.ATOM) {
links = XMLUtilities.extractLinkURIs(IOUtils.toInputStream(link)).getValue();
links = xml.extractLinkURIs(IOUtils.toInputStream(link)).getValue();
} else {
links = JSONUtilities.extractLinkURIs(IOUtils.toInputStream(link)).getValue();
links = json.extractLinkURIs(IOUtils.toInputStream(link)).getValue();
}
utils.putLinksInMemory(
@ -788,10 +1176,10 @@ public abstract class AbstractServices {
final AbstractUtilities utils = getUtilities(acceptType);
final Map.Entry<String, List<String>> currents = JSONUtilities.extractLinkURIs(utils.readLinks(
final Map.Entry<String, List<String>> currents = json.extractLinkURIs(utils.readLinks(
entitySetName, entityId, linkName, Accept.JSON_FULLMETA).getLinks());
final Map.Entry<String, List<String>> toBeRemoved = JSONUtilities.extractLinkURIs(utils.readLinks(
final Map.Entry<String, List<String>> toBeRemoved = json.extractLinkURIs(utils.readLinks(
entitySetName, entityId, linkName + "(" + linkId + ")", Accept.JSON_FULLMETA).getLinks());
final List<String> remains = currents.getValue();

View File

@ -30,7 +30,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.ConcurrentModificationException;
import java.util.EnumSet;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
@ -39,9 +38,6 @@ import java.util.Set;
import java.util.regex.Pattern;
import javax.ws.rs.NotFoundException;
import javax.ws.rs.core.Response;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.events.StartElement;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.vfs2.FileObject;
@ -56,8 +52,6 @@ public abstract class AbstractUtilities {
*/
protected static final Logger LOG = LoggerFactory.getLogger(AbstractUtilities.class);
private static Set<ODataVersion> initialized = EnumSet.noneOf(ODataVersion.class);
protected final ODataVersion version;
protected final FSManager fsManager;
@ -67,101 +61,10 @@ public abstract class AbstractUtilities {
public AbstractUtilities(final ODataVersion version) throws Exception {
this.version = version;
this.fsManager = FSManager.instance(version);
initialize();
}
private void initialize() throws Exception {
if (!initialized.contains(version)) {
final MetadataLinkInfo metadataLinkInfo = new MetadataLinkInfo();
Commons.linkInfo.put(version, metadataLinkInfo);
final InputStream metadata = fsManager.readFile(Constants.METADATA, Accept.XML);
final XMLEventReader reader = XMLUtilities.getEventReader(metadata);
int initialDepth = 0;
try {
while (true) {
Map.Entry<Integer, XmlElement> entityType =
XMLUtilities.getAtomElement(reader, null, "EntityType", null, initialDepth, 4, 4, false);
initialDepth = entityType.getKey();
final String entitySetName =
entityType.getValue().getStart().getAttributeByName(new QName("Name")).getValue();
final XMLEventReader entityReader = XMLUtilities.getEventReader(entityType.getValue().toStream());
int size = 0;
try {
while (true) {
final XmlElement navProperty =
XMLUtilities.getAtomElement(entityReader, null, "NavigationProperty");
final String linkName =
navProperty.getStart().getAttributeByName(new QName("Name")).getValue();
final Map.Entry<String, Boolean> target = getTargetInfo(navProperty.getStart(), linkName);
metadataLinkInfo.addLink(
entitySetName,
linkName,
target.getKey(),
target.getValue());
size++;
}
} catch (Exception e) {
} finally {
entityReader.close();
}
if (size == 0) {
metadataLinkInfo.addEntitySet(entitySetName);
}
}
} catch (Exception e) {
} finally {
reader.close();
initialized.add(version);
}
}
}
private Map.Entry<String, Boolean> getTargetInfo(final StartElement element, final String linkName)
throws Exception {
final InputStream metadata = fsManager.readFile(Constants.METADATA, Accept.XML);
XMLEventReader reader = XMLUtilities.getEventReader(metadata);
final String associationName = element.getAttributeByName(new QName("Relationship")).getValue();
final Map.Entry<Integer, XmlElement> association = XMLUtilities.getAtomElement(
reader, null, "Association",
Collections.<Map.Entry<String, String>>singleton(new SimpleEntry<String, String>(
"Name", associationName.substring(associationName.lastIndexOf(".") + 1))),
0, 4, 4, false);
final InputStream associationContent = association.getValue().toStream();
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
IOUtils.copy(associationContent, bos);
IOUtils.closeQuietly(associationContent);
reader.close();
reader = XMLUtilities.getEventReader(new ByteArrayInputStream(bos.toByteArray()));
final Map.Entry<Integer, XmlElement> associationEnd = XMLUtilities.getAtomElement(
reader, null, "End",
Collections.<Map.Entry<String, String>>singleton(new SimpleEntry<String, String>("Role", linkName)),
0, -1, -1, false);
final String target = associationEnd.getValue().getStart().getAttributeByName(new QName("Type")).getValue();
final boolean feed = associationEnd.getValue().getStart().getAttributeByName(
new QName("Multiplicity")).getValue().equals("*");
return new SimpleEntry<String, Boolean>(target, feed);
}
public boolean isMediaContent(final String entityName) {
return Commons.mediaContent.contains(entityName);
return Commons.mediaContent.containsKey(entityName);
}
/**
@ -261,7 +164,7 @@ public abstract class AbstractUtilities {
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
IOUtils.copy(is, bos);
is.close();
IOUtils.closeQuietly(is);
// -----------------------------------------
// 0. Retrieve navigation links to be mantained
@ -275,8 +178,7 @@ public abstract class AbstractUtilities {
for (String availableLink : new HashSet<String>(linksToBeMantained)) {
try {
fsManager.resolve(
Commons.getLinksPath(version, entitySetName, key, availableLink, Accept.JSON_FULLMETA));
fsManager.resolve(Commons.getLinksPath(version, entitySetName, key, availableLink, Accept.JSON_FULLMETA));
} catch (Exception e) {
linksToBeMantained.remove(availableLink);
}
@ -293,7 +195,7 @@ public abstract class AbstractUtilities {
final String entityKey = key == null ? getDefaultEntryKey(
entitySetName, new ByteArrayInputStream(bos.toByteArray()), getDefaultFormat()) : key;
final String path = entitySetName + File.separatorChar + Commons.getEntityKey(entityKey) + File.separatorChar;
final String path = Commons.getEntityBasePath(entitySetName, entityKey);
// -----------------------------------------
// -----------------------------------------
@ -366,6 +268,72 @@ public abstract class AbstractUtilities {
return fo.getContent().getInputStream();
}
public InputStream addMediaEntity(
final String entitySetName,
final InputStream is) throws Exception {
// -----------------------------------------
// 0. Get default entry key and path (N.B. operation will consume/close the stream; use a copy instead)
// -----------------------------------------
final String entityKey = getDefaultEntryKey(entitySetName, null, getDefaultFormat());
final String path = Commons.getEntityBasePath(entitySetName, entityKey);
// -----------------------------------------
// -----------------------------------------
// 1. save the media entity value
// -----------------------------------------
fsManager.putInMemory(is, fsManager.getAbsolutePath(path + MEDIA_CONTENT_FILENAME, null));
IOUtils.closeQuietly(is);
// -----------------------------------------
// -----------------------------------------
// 2. save entity as atom
// -----------------------------------------
final String entityURI = Commons.getEntityURI(entitySetName, entityKey);
String entity = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "<entry xml:base=\"" + DEFAULT_SERVICE_URL + "\" "
+ "xmlns=\"http://www.w3.org/2005/Atom\" "
+ "xmlns:d=\"http://schemas.microsoft.com/ado/2007/08/dataservices\" "
+ "xmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\" "
+ "xmlns:georss=\"http://www.georss.org/georss\" "
+ "xmlns:gml=\"http://www.opengis.net/gml\">"
+ "<id>" + DEFAULT_SERVICE_URL + entityURI + "</id>"
+ "<category term=\"Microsoft.Test.OData.Services.AstoriaDefaultService." + entitySetName + "\" "
+ "scheme=\"http://schemas.microsoft.com/ado/2007/08/dataservices/scheme\" />"
+ "<link rel=\"edit\" title=\"Car\" href=\"" + entityURI + "\" />"
+ "<link rel=\"edit-media\" title=\"Car\" href=\"" + entityURI + "/$value\" />"
+ "<content type=\"*/*\" src=\"" + entityURI + "/$value\" />"
+ "<m:properties>"
+ "<d:" + Commons.mediaContent.get(entitySetName) + " m:type=\"Edm.Int32\">" + entityKey + "</d:VIN>"
+ "<d:Description m:null=\"true\" />"
+ "</m:properties>"
+ "</entry>";
fsManager.putInMemory(
IOUtils.toInputStream(entity), fsManager.getAbsolutePath(path + ENTITY, Accept.ATOM));
// -----------------------------------------
// -----------------------------------------
// 3. save entity as json
// -----------------------------------------
entity = "{"
+ "\"odata.metadata\": \"" + DEFAULT_SERVICE_URL + "/$metadata#" + entitySetName + "/@Element\","
+ "\"odata.type\": \"Microsoft.Test.OData.Services.AstoriaDefaultService." + entitySetName + "\","
+ "\"odata.id\": \"" + DEFAULT_SERVICE_URL + entityURI + "\","
+ "\"odata.editLink\": \"" + entityURI + "\","
+ "\"odata.mediaEditLink\": \"" + entityURI + "/$value\","
+ "\"odata.mediaReadLink\": \"" + entityURI + "/$value\","
+ "\"odata.mediaContentType\": \"*/*\","
+ "\"" + Commons.mediaContent.get(entitySetName) + "\": " + entityKey + ","
+ "\"Description\": null" + "}";
fsManager.putInMemory(
IOUtils.toInputStream(entity), fsManager.getAbsolutePath(path + ENTITY, Accept.JSON_FULLMETA));
// -----------------------------------------
return readEntity(entitySetName, entityKey, getDefaultFormat()).getValue();
}
public void putLinksInMemory(
final String basePath,
final String entitySetName,
@ -376,8 +344,7 @@ public abstract class AbstractUtilities {
if (Commons.linkInfo.get(version).isFeed(entitySetName, linkName)) {
try {
final Map.Entry<String, List<String>> currents = JSONUtilities.extractLinkURIs(
readLinks(entitySetName, entityKey, linkName, Accept.JSON_FULLMETA).getLinks());
final Map.Entry<String, List<String>> currents = extractLinkURIs(entitySetName, entityKey, linkName);
uris.addAll(currents.getValue());
} catch (Exception ignore) {
}
@ -418,25 +385,43 @@ public abstract class AbstractUtilities {
if (accept != null) {
builder.header("Content-Type", accept.toString());
} else {
builder.header("Content-Type", "*/*");
}
if (status != null) {
builder.status(status);
}
int contentLength = 0;
if (entity != null) {
if (accept != null && (Accept.JSON == accept || Accept.JSON_NOMETA == accept)) {
builder.entity(Commons.changeFormat(entity, accept));
} else {
builder.entity(entity);
try {
final InputStream toBeStreamedBack;
if (accept != null && (Accept.JSON == accept || Accept.JSON_NOMETA == accept)) {
toBeStreamedBack = Commons.changeFormat(entity, accept);
} else {
toBeStreamedBack = entity;
}
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
IOUtils.copy(toBeStreamedBack, bos);
IOUtils.closeQuietly(toBeStreamedBack);
contentLength = bos.size();
builder.entity(new ByteArrayInputStream(bos.toByteArray()));
} catch (IOException ioe) {
LOG.error("Error streaming response entity back", ioe);
}
}
builder.header("Content-Length", contentLength);
return builder.build();
}
public Response createFaultResponse(final String accept, final Exception e) {
e.printStackTrace();
LOG.debug("Create fault response about .... ", e);
final Response.ResponseBuilder builder = Response.serverError();
@ -490,8 +475,7 @@ public abstract class AbstractUtilities {
propertyNames.add("FromUsername");
final StringBuilder keyBuilder = new StringBuilder();
for (Map.Entry<String, InputStream> value
: getPropertyValues(entity, propertyNames, accept).entrySet()) {
for (Map.Entry<String, InputStream> value : getPropertyValues(entity, propertyNames).entrySet()) {
if (keyBuilder.length() > 0) {
keyBuilder.append(",");
@ -501,10 +485,10 @@ public abstract class AbstractUtilities {
}
res = keyBuilder.toString();
} catch (Exception e) {
int messageId = sequence.get(entitySetName) + 1;
final int messageId;
if (sequence.containsKey(entitySetName)) {
res = "MessageId=" + String.valueOf(messageId)
+ ",FromUsername=1";
messageId = sequence.get(entitySetName) + 1;
res = "MessageId=" + String.valueOf(messageId) + ",FromUsername=1";
} else {
throw new Exception(String.format("Unable to retrieve entity key value for %s", entitySetName));
}
@ -513,7 +497,7 @@ public abstract class AbstractUtilities {
} else if ("Order".equals(entitySetName)) {
try {
final Map<String, InputStream> value =
getPropertyValues(entity, Collections.<String>singletonList("OrderId"), accept);
getPropertyValues(entity, Collections.<String>singletonList("OrderId"));
res = value.isEmpty() ? null : IOUtils.toString(value.values().iterator().next());
} catch (Exception e) {
if (sequence.containsKey(entitySetName)) {
@ -526,7 +510,7 @@ public abstract class AbstractUtilities {
} else if ("Customer".equals(entitySetName)) {
try {
final Map<String, InputStream> value =
getPropertyValues(entity, Collections.<String>singletonList("CustomerId"), accept);
getPropertyValues(entity, Collections.<String>singletonList("CustomerId"));
res = value.isEmpty() ? null : IOUtils.toString(value.values().iterator().next());
} catch (Exception e) {
if (sequence.containsKey(entitySetName)) {
@ -539,7 +523,7 @@ public abstract class AbstractUtilities {
} else if ("ComputerDetail".equals(entitySetName)) {
try {
final Map<String, InputStream> value =
getPropertyValues(entity, Collections.<String>singletonList("ComputerDetailId"), accept);
getPropertyValues(entity, Collections.<String>singletonList("ComputerDetailId"));
res = value.isEmpty() ? null : IOUtils.toString(value.values().iterator().next());
} catch (Exception e) {
if (sequence.containsKey(entitySetName)) {
@ -552,7 +536,7 @@ public abstract class AbstractUtilities {
} else if ("AllGeoTypesSet".equals(entitySetName)) {
try {
final Map<String, InputStream> value =
getPropertyValues(entity, Collections.<String>singletonList("Id"), accept);
getPropertyValues(entity, Collections.<String>singletonList("Id"));
res = value.isEmpty() ? null : IOUtils.toString(value.values().iterator().next());
} catch (Exception e) {
if (sequence.containsKey(entitySetName)) {
@ -565,7 +549,20 @@ public abstract class AbstractUtilities {
} else if ("CustomerInfo".equals(entitySetName)) {
try {
final Map<String, InputStream> value =
getPropertyValues(entity, Collections.<String>singletonList("CustomerInfoId"), accept);
getPropertyValues(entity, Collections.<String>singletonList("CustomerInfoId"));
res = value.isEmpty() ? null : IOUtils.toString(value.values().iterator().next());
} catch (Exception e) {
if (sequence.containsKey(entitySetName)) {
res = String.valueOf(sequence.get(entitySetName) + 1);
} else {
throw new Exception(String.format("Unable to retrieve entity key value for %s", entitySetName));
}
}
sequence.put(entitySetName, Integer.valueOf(res));
} else if ("Car".equals(entitySetName)) {
try {
final Map<String, InputStream> value =
getPropertyValues(entity, Collections.<String>singletonList("VIN"));
res = value.isEmpty() ? null : IOUtils.toString(value.values().iterator().next());
} catch (Exception e) {
if (sequence.containsKey(entitySetName)) {
@ -587,35 +584,15 @@ public abstract class AbstractUtilities {
}
}
private static Map<String, InputStream> getPropertyValues(
final InputStream is, final List<String> propertyNames, final Accept accept)
private Map<String, InputStream> getPropertyValues(final InputStream is, final List<String> propertyNames)
throws Exception {
final Map<String, InputStream> res = new LinkedHashMap<String, InputStream>();
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
IOUtils.copy(is, bos);
IOUtils.closeQuietly(is);
for (String propertyName : propertyNames) {
final InputStream value;
switch (accept) {
case JSON:
case JSON_FULLMETA:
case JSON_NOMETA:
value = JSONUtilities.getJsonPropertyValue(
new ByteArrayInputStream(bos.toByteArray()),
propertyName);
break;
default:
value = XMLUtilities.getAtomPropertyValue(
new ByteArrayInputStream(bos.toByteArray()),
new String[] {propertyName, "$value"});
}
res.put(propertyName, value);
res.put(propertyName, getPropertyValue(is, Collections.<String>singletonList(propertyName)));
}
IOUtils.closeQuietly(bos);
IOUtils.closeQuietly(is);
return res;
}
@ -644,14 +621,39 @@ public abstract class AbstractUtilities {
return linkInfo;
}
public InputStream putMediaInMemory(
final String entitySetName, final String entityId, final InputStream value)
throws IOException {
return putMediaInMemory(entitySetName, entityId, null, value);
}
public InputStream putMediaInMemory(
final String entitySetName, final String entityId, final String name, final InputStream value)
throws IOException {
final FileObject fo = fsManager.putInMemory(value, fsManager.getAbsolutePath(
Commons.getEntityBasePath(entitySetName, entityId) + (name == null ? MEDIA_CONTENT_FILENAME : name), null));
return fo.getContent().getInputStream();
}
public Map.Entry<String, InputStream> readMediaEntity(final String entitySetName, final String entityId) {
return readMediaEntity(entitySetName, entityId, null);
}
public Map.Entry<String, InputStream> readMediaEntity(
final String entitySetName, final String entityId, final String name) {
final String basePath = Commons.getEntityBasePath(entitySetName, entityId);
return new SimpleEntry<String, InputStream>(basePath, fsManager.readFile(basePath
+ (name == null ? MEDIA_CONTENT_FILENAME : name)));
}
public Map.Entry<String, InputStream> readEntity(
final String entitySetName, final String entityId, final Accept accept) {
if (accept == Accept.XML || accept == Accept.TEXT) {
throw new UnsupportedMediaTypeException("Unsupported media type");
}
final String basePath =
entitySetName + File.separatorChar + Commons.getEntityKey(entityId) + File.separatorChar;
final String basePath = Commons.getEntityBasePath(entitySetName, entityId);
return new SimpleEntry<String, InputStream>(basePath, fsManager.readFile(basePath + ENTITY, accept));
}
@ -666,7 +668,7 @@ public abstract class AbstractUtilities {
// 0. Retrieve all 'linkName' navigation link uris (NotFoundException if missing)
// --------------------------------
final LinkInfo linkInfo = readLinks(entitySetName, entityId, linkName, Accept.XML);
final Map.Entry<String, List<String>> links = XMLUtilities.extractLinkURIs(linkInfo.getLinks());
final Map.Entry<String, List<String>> links = extractLinkURIs(entitySetName, entityId, linkName);
// --------------------------------
// --------------------------------
@ -704,6 +706,52 @@ public abstract class AbstractUtilities {
return addOrReplaceEntity(entityId, entitySetName, setChanges(entityInfo.getValue(), replacement));
}
public InputStream replaceProperty(
final String entitySetName,
final String entityId,
final InputStream changes,
final List<String> path,
final Accept accept,
final boolean justValue) throws Exception {
final String basePath = Commons.getEntityBasePath(entitySetName, entityId);
final Accept acceptType = accept == null || Accept.TEXT == accept
? Accept.XML : accept.getExtension().equals(Accept.JSON.getExtension()) ? Accept.JSON_FULLMETA : accept;
// read atom
InputStream stream = fsManager.readFile(basePath + ENTITY, acceptType);
// change atom
stream = replaceProperty(stream, changes, path, justValue);
// save atom
fsManager.putInMemory(stream, fsManager.getAbsolutePath(basePath + ENTITY, acceptType));
return fsManager.readFile(basePath + ENTITY, acceptType);
}
public InputStream deleteProperty(
final String entitySetName,
final String entityId,
final List<String> path,
final Accept accept) throws Exception {
final String basePath = Commons.getEntityBasePath(entitySetName, entityId);
final Accept acceptType = accept == null || Accept.TEXT == accept
? Accept.XML : accept.getExtension().equals(Accept.JSON.getExtension()) ? Accept.JSON_FULLMETA : accept;
// read atom
InputStream stream = fsManager.readFile(basePath + ENTITY, acceptType);
// change atom
stream = deleteProperty(stream, path);
// save atom
fsManager.putInMemory(stream, fsManager.getAbsolutePath(basePath + ENTITY, acceptType));
return fsManager.readFile(basePath + ENTITY, acceptType);
}
public abstract InputStream readEntities(
final List<String> links, final String linkName, final String next, final boolean forceFeed)
throws Exception;
@ -722,4 +770,22 @@ public abstract class AbstractUtilities {
public abstract InputStream addEditLink(
final InputStream content, final String title, final String href) throws Exception;
}
protected abstract InputStream replaceProperty(
final InputStream src, final InputStream replacement, final List<String> path, final boolean justValue)
throws Exception;
protected abstract InputStream deleteProperty(final InputStream src, final List<String> path) throws Exception;
public abstract InputStream getProperty(
final String entitySetName, final String entityId, final List<String> path, final String edmType)
throws Exception;
public abstract InputStream getPropertyValue(final InputStream is, final List<String> path)
throws Exception;
public abstract Map.Entry<String, List<String>> extractLinkURIs(final InputStream is) throws Exception;
public abstract Map.Entry<String, List<String>> extractLinkURIs(
final String entitySetName, final String entityId, final String linkName) throws Exception;
}

View File

@ -36,11 +36,9 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
@ -57,7 +55,7 @@ public abstract class Commons {
protected final static Map<String, Integer> sequence = new HashMap<String, Integer>();
protected final static Set<String> mediaContent = new HashSet<String>();
protected final static Map<String, String> mediaContent = new HashMap<String, String>();
protected final static Map<ODataVersion, MetadataLinkInfo> linkInfo =
new EnumMap<ODataVersion, MetadataLinkInfo>(ODataVersion.class);
@ -65,12 +63,15 @@ public abstract class Commons {
static {
sequence.put("Customer", 1000);
sequence.put("CustomerInfo", 1000);
sequence.put("Car", 1000);
sequence.put("Message", 1000);
sequence.put("Order", 1000);
sequence.put("ComputerDetail", 1000);
sequence.put("AllGeoTypesSet", 1000);
mediaContent.add("CustomerInfo");
mediaContent.put("CustomerInfo", "CustomerinfoId");
mediaContent.put("Car", "VIN");
mediaContent.put("Car/Photo", null);
}
public static String getEntityURI(final String entitySetName, final String entityKey) {

View File

@ -28,6 +28,8 @@ public class Constants {
public final static String ODATA_METADATA_PREFIX = DEFAULT_SERVICE_URL + "$metadata#";
public final static String ATOM_DEF_TYPE = "Edm.String";
public final static String ATOM_PROPERTY_PREFIX = "d:";
public final static String ATOM_METADATA_PREFIX = "m:";
@ -70,6 +72,8 @@ public class Constants {
public final static String ENTITY = "entity";
public final static String MEDIA_CONTENT_FILENAME = "$value.bin";
public final static String SKIP_TOKEN = "skiptoken";
public final static String FILTER = "filter";

View File

@ -70,6 +70,7 @@ public class FSManager {
}
public FileObject putInMemory(final InputStream is, final String path) throws IOException {
System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA scrivo "+path);
final FileObject memObject = fsManager.resolveFile(MEM_PREFIX + path);
if (memObject.exists()) {
@ -84,10 +85,17 @@ public class FSManager {
IOUtils.copy(is, os);
IOUtils.closeQuietly(is);
IOUtils.closeQuietly(os);
System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA inserito valore "+
IOUtils.toString(memObject.getContent().getInputStream()));
return memObject;
}
public InputStream readFile(final String relativePath) {
return readFile(relativePath, null);
}
public InputStream readFile(final String relativePath, final Accept accept) {
final String path = getAbsolutePath(relativePath, accept);
LOG.info("Read {}", path);

View File

@ -176,35 +176,41 @@ public class JSONUtilities extends AbstractUtilities {
return IOUtils.toInputStream(srcNode.toString());
}
protected static InputStream getJsonPropertyValue(final InputStream src, final String name)
@Override
public InputStream getPropertyValue(final InputStream src, final List<String> path)
throws Exception {
ObjectMapper mapper = new ObjectMapper();
final ObjectMapper mapper = new ObjectMapper();
final JsonNode srcNode = mapper.readTree(src);
JsonNode node = getJsonProperty(srcNode, new String[] {name}, 0);
JsonNode node = getProperty(srcNode, path, 0);
return IOUtils.toInputStream(node.asText());
}
public static InputStream getJsonProperty(final InputStream src, final String[] path, final String edmType)
@Override
public InputStream getProperty(
final String entitySetName, final String entityId, final List<String> path, final String edmType)
throws Exception {
final InputStream src =
fsManager.readFile(Commons.getEntityBasePath(entitySetName, entityId) + ENTITY, Accept.JSON_FULLMETA);
final ObjectMapper mapper = new ObjectMapper();
final JsonNode srcNode = mapper.readTree(src);
final ObjectNode property = new ObjectNode(JsonNodeFactory.instance);
final ObjectNode propertyNode = new ObjectNode(JsonNodeFactory.instance);
if (StringUtils.isNotBlank(edmType)) {
property.put(JSON_ODATAMETADATA_NAME, ODATA_METADATA_PREFIX + edmType);
propertyNode.put(JSON_ODATAMETADATA_NAME, ODATA_METADATA_PREFIX + edmType);
}
JsonNode jsonNode = getJsonProperty(srcNode, path, 0);
JsonNode jsonNode = getProperty(srcNode, path, 0);
if (jsonNode.isObject()) {
property.putAll((ObjectNode) jsonNode);
propertyNode.putAll((ObjectNode) jsonNode);
} else {
property.put("value", jsonNode.asText());
propertyNode.put("value", jsonNode.asText());
}
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
mapper.writeValue(bos, property);
mapper.writeValue(bos, propertyNode);
final InputStream res = new ByteArrayInputStream(bos.toByteArray());
IOUtils.closeQuietly(bos);
@ -212,16 +218,16 @@ public class JSONUtilities extends AbstractUtilities {
return res;
}
private static JsonNode getJsonProperty(final JsonNode node, final String[] path, final int index)
private JsonNode getProperty(final JsonNode node, final List<String> path, final int index)
throws NotFoundException {
final Iterator<Map.Entry<String, JsonNode>> iter = node.fields();
while (iter.hasNext()) {
final Map.Entry<String, JsonNode> entry = iter.next();
if (path[index].equals(entry.getKey())) {
if (path.length - 1 == index) {
if (path.get(index).equals(entry.getKey())) {
if (path.size() - 1 == index) {
return entry.getValue();
} else {
return getJsonProperty(entry.getValue(), path, index + 1);
return getProperty(entry.getValue(), path, index + 1);
}
}
}
@ -400,7 +406,16 @@ public class JSONUtilities extends AbstractUtilities {
return IOUtils.toInputStream(toBeChangedObject.toString());
}
public static Map.Entry<String, List<String>> extractLinkURIs(final InputStream is)
@Override
public Map.Entry<String, List<String>> extractLinkURIs(
final String entitySetName, final String entityId, final String linkName)
throws Exception {
final LinkInfo links = readLinks(entitySetName, entityId, linkName, Accept.JSON_FULLMETA);
return extractLinkURIs(links.getLinks());
}
@Override
public Map.Entry<String, List<String>> extractLinkURIs(final InputStream is)
throws Exception {
final ObjectMapper mapper = new ObjectMapper();
final ObjectNode srcNode = (ObjectNode) mapper.readTree(is);
@ -436,4 +451,52 @@ public class JSONUtilities extends AbstractUtilities {
srcNode.set(JSON_EDITLINK_NAME, new TextNode(href));
return IOUtils.toInputStream(srcNode.toString());
}
@Override
public InputStream replaceProperty(
final InputStream src, final InputStream replacement, final List<String> path, final boolean justValue)
throws Exception {
final ObjectMapper mapper = new ObjectMapper();
final ObjectNode srcNode = (ObjectNode) mapper.readTree(src);
IOUtils.closeQuietly(src);
final JsonNode replacementNode;
if (justValue) {
replacementNode = new TextNode(IOUtils.toString(replacement));
} else {
replacementNode = (ObjectNode) mapper.readTree(replacement);
}
IOUtils.closeQuietly(replacement);
JsonNode node = srcNode;
for (int i = 0; i < path.size() - 1; i++) {
node = node.get(path.get(i));
if (node == null) {
throw new NotFoundException();
}
}
((ObjectNode) node).set(path.get(path.size() - 1), replacementNode);
return IOUtils.toInputStream(srcNode.toString());
}
@Override
public InputStream deleteProperty(final InputStream src, final List<String> path) throws Exception {
final ObjectMapper mapper = new ObjectMapper();
final ObjectNode srcNode = (ObjectNode) mapper.readTree(src);
IOUtils.closeQuietly(src);
JsonNode node = srcNode;
for (int i = 0; i < path.size() - 1; i++) {
node = node.get(path.get(i));
if (node == null) {
throw new NotFoundException();
}
}
((ObjectNode) node).set(path.get(path.size() - 1), null);
return IOUtils.toInputStream(srcNode.toString());
}
}

View File

@ -47,30 +47,22 @@ public class XMLEventReaderWrapper implements XMLEventReader {
this.wrapped = factory.createXMLEventReader(
new ByteArrayInputStream(
(XMLEventReaderWrapper.CONTENT_STAG
+ IOUtils.toString(stream)
+ IOUtils.toString(stream).replaceAll("^<\\?xml.*\\?>", "")
+ XMLEventReaderWrapper.CONTENT_ETAG).getBytes()));
init(wrapped);
init();
}
public XMLEventReaderWrapper(final XMLEventReader wrapped) {
this.wrapped = wrapped;
init(wrapped);
}
private void init(final XMLEventReader wrapped) {
private void init() {
try {
this.nextGivenEvent = this.wrapped.nextEvent();
do {
if (this.nextGivenEvent.isStartDocument()) {
this.nextGivenEvent = this.wrapped.nextEvent(); // discard start document
}
this.nextGivenEvent = this.wrapped.nextEvent();
if (this.nextGivenEvent.isStartElement()
&& CONTENT.equals(this.nextGivenEvent.asStartElement().getName().getLocalPart())) {
this.nextGivenEvent = this.wrapped.nextEvent(); // discard content start tag
}
} while (this.nextGivenEvent.isStartDocument()
|| (this.nextGivenEvent.isStartElement()
&& CONTENT.equals(this.nextGivenEvent.asStartElement().getName().getLocalPart())));
} catch (Exception ignore) {
// ignore

View File

@ -0,0 +1,13 @@
{
"odata.metadata": "http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/$metadata#Car/@Element",
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Car",
"odata.id": "http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/Car(12)",
"odata.editLink": "Car(12)",
"odata.mediaEditLink": "Car(12)/$value",
"odata.mediaReadLink": "Car(12)/$value",
"odata.mediaContentType": "*/*",
"Photo@odata.mediaEditLink": "Car(12)/Photo",
"Video@odata.mediaEditLink": "Car(12)/Video",
"VIN": 12,
"Description": "lx"
}

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<entry xml:base="http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml">
<id>http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/Car(12)</id>
<category term="Microsoft.Test.OData.Services.AstoriaDefaultService.Car" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<link rel="edit" title="Car" href="Car(12)" />
<title />
<updated>2014-03-19T09:53:35Z</updated>
<author>
<name />
</author>
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/edit-media/Photo" title="Photo" href="Car(12)/Photo" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/edit-media/Video" title="Video" href="Car(12)/Video" />
<link rel="edit-media" title="Car" href="Car(12)/$value" />
<content type="*/*" src="Car(12)/$value" />
<m:properties>
<d:VIN m:type="Edm.Int32">12</d:VIN>
<d:Description>lx</d:Description>
</m:properties>
</entry>

View File

@ -0,0 +1,13 @@
{
"odata.metadata": "http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/$metadata#Car/@Element",
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Car",
"odata.id": "http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/Car(15)",
"odata.editLink": "Car(15)",
"odata.mediaEditLink": "Car(15)/$value",
"odata.mediaReadLink": "Car(15)/$value",
"odata.mediaContentType": "*/*",
"Photo@odata.mediaEditLink": "Car(15)/Photo",
"Video@odata.mediaEditLink": "Car(15)/Video",
"VIN": 15,
"Description": "kphszztczthjacvjnttrarxru"
}

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<entry xml:base="http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml">
<id>http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/Car(15)</id>
<category term="Microsoft.Test.OData.Services.AstoriaDefaultService.Car" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<link rel="edit" title="Car" href="Car(15)" />
<title />
<updated>2014-03-19T11:23:02Z</updated>
<author>
<name />
</author>
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/edit-media/Photo" title="Photo" href="Car(15)/Photo" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/edit-media/Video" title="Video" href="Car(15)/Video" />
<link rel="edit-media" title="Car" href="Car(15)/$value" />
<content type="*/*" src="Car(15)/$value" />
<m:properties>
<d:VIN m:type="Edm.Int32">15</d:VIN>
<d:Description>kphszztczthjacvjnttrarxru</d:Description>
</m:properties>
</entry>

View File

@ -0,0 +1,487 @@
{
"odata.metadata": "http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/$metadata#Customer/@Element",
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Customer",
"odata.id": "http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/Customer(-7)",
"odata.editLink": "Customer(-7)",
"Orders@odata.navigationLinkUrl": "Customer(-7)/Orders",
"Logins@odata.navigationLinkUrl": "Customer(-7)/Logins",
"Husband@odata.navigationLinkUrl": "Customer(-7)/Husband",
"Wife@odata.navigationLinkUrl": "Customer(-7)/Wife",
"Info@odata.navigationLinkUrl": "Customer(-7)/Info",
"Thumbnail@odata.mediaEditLink": "Customer(-7)/Thumbnail",
"Video@odata.mediaEditLink": "Customer(-7)/Video",
"CustomerId": -7,
"Name": "remotingdestructorprinterswitcheschannelssatellitelanguageresolve",
"PrimaryContactInfo":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"ソяソゾ珱ダぁぺミヲネひぴ弌弌ゾァクをぞネヲぁぁミを欲畚ダびび黑を畚グぞ亜ぽゼせポяz黑たバまz亜ク九んまマボゾネゼ亜チ",
"ltevfhqrezbjyaoxoaviujvpncxuflugkghoisylipqgecqkulplvikixhcilkgmovz",
"",
"gßntmp",
"gxyfljyfcrmyaqducbdizxsdkmizhjxymiunrvhntd",
"bfgdndhikllopuzfyytupgxjrkhtrgpemgcurptohsamqhazhctfzdcvhymivnhoxjncntpfuqjvfgtfjjhkndec",
"uerdvhyrbvujpqkufyhmeudrjbssnqjhouaxdmjqlkspmrexxoothuztqvßxqkfavkrcnubrzdyign"
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"lqzgcfbjlmzeoqteatdexkuivugeeajcgvlojfzcmsogc",
"匚ポンチあёタё欲縷ソソzたグタぜミマまひボボマ歹ёゾたァゾ珱ぁ縷マをゼЯ縷ぴをんゾァチ歹タまゼゼボぼタぞボタぞёを九яチグマァяゼチぽ",
"ぺタゼヲマんぁ歹ん亜ぁ亜ミほんaほひびクマぞひ九z匚ンダゼネяハゼそяンミマ歹暦ンソソぽタバンせマゾん",
"vihrazgmjgtkgpbgbnfhhcsycgvzxssrzzvfssqirsslleimedhyhfuvfcnhlk"
]
},
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "xmnfdsozhyybqhuejakrzoqntnorssxevpjsmsipruxjjghuodqthbvutzantnlssnvi",
"Extension": "クをソ弌ゾあマぺぴグ匚яゼんそマバ亜ボネボマチ畚ぜマ裹畚チま九チソバぽゼzゼァミёポ暦びzダせボソぞソ畚チマяポ九チマ匚ひ欲ポ黑ボ"
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ぴゼ黑zz畚ゼaチボぽソソ暦縷ン九ハハポゼミダダべя裹ダミネをハ九ゼまソポ亜あ弌ァボぞひ裹ゼぴそミぺ欲ぴソяァソ縷グミaネ歹べハんポマぁタソァンタ暦",
"Extension": "qxxvvluootexndauvmjmxcsupdzvrqspyltziba"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "マ裹あネクン暦ァあダゼぞマぴタハァソゾяゾヲあタそぁボゾマぜボマ九た裹グ欲歹んポ縷ぺ弌zァ匚ゼンゾそそ亜ёaタミ歹タ珱んクんポネ裹マグタをた匚ゾぞ歹たぼびそぴァボボЯチネ縷ポ暦ボひダをンЯをチチ欲ぁボ",
"Extension": "ァボボぴ弌ぽチミァタポミをあンЯёチ黑ぞバソゾぞダチポァぁチz亜a"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "agnuykfmdluenuzmrvokpbnbqtmxtpupsmmmmtlatzdulayi",
"Extension": "ぺ匚歹暦亜グひひ裹ゼ亜ポポぴんёまゼяzァそマポaゼマポ歹ソぞソポゾゼヲ"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "gigbplfrxugfzaoeuvfqlfjdfzutffmpvfzzfkdygyxpsiqkdxmvkkieqivqf",
"Extension": "ulreousnjfnjxncfsmkuruhczgcpr"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "znajuovfeompumpfnaxvpnihotlixtkyi",
"Extension": "dhfygicsdlsßfßxsksjmpfhqujdrp"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ァボバヲま",
"Extension": "を珱ぞバ暦ボぽボ匚ぞぞマンЯマぞa欲チそマぞポネぼポぴせゾゼ裹ポ縷ゼぁ亜ボ弌ソёん黑チ畚畚クァボ黑歹ァマまバひひびひクたソびひクほソ暦チzaタたクタ弌弌チ暦そ裹んダびポあぺク"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "kfpoubqjnvsßfbfuvhphelxzamfaimfegesessregutgmy",
"Extension": "バゾ縷まほゼネソマぞほaボをёゾボポぽタぽ暦たァぼぴんぞァё暦びゼそゾёゼ匚ぜボミハぽタ弌ゼチゼをёほタあァボ暦ァチёёそ歹ぞポんあゾゾ暦ンあ歹チボ匚ポタボタ欲ボ縷歹ま弌ぽぜあゾマ"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "xjpbryendyhzjmycrabhbavvezhaodbikixbxhuxmdlfgdqllhau",
"Extension": "nsuslekasfkfqsgdbfuyklksfxkrdgmuuapucehltlneufutespbughidhjnntsgsplqouaoyduzyhyziqplrfaj"
}
]
},
"BackupContactInfo@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)",
"BackupContactInfo":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
"ssaubfuvosytmfmbkuykllzubrjqeepfumohubtouußßtvceldbhajugaynnymuiippßuuecjusfmssjj",
"vycfthvgfrucdjyy",
"vdcyycrvuijookgzbvdupgus",
"jxpecuulvmxdaalzcukesxjqavhpkkkgqsdzbabzyzkhdncuihnx",
"ljyegtmagelndrmsbnlithaghpmlexndkzslczvuhyogsayimqgdmozohnprbaykkcifyalcrfqudq",
"kssjmftgßqirgusshßqymzqumuonbluytßdauenssbmugfssxznhdxrvilefkcjtmyvu",
"ぞぴァゼポマ",
"vnfbauudbyxtzkpdmkzxmmnouju",
"iigukxzusssmnhvfutsoocactfßbhnrcycyvjbeujhudbeßbfnfkcfxyeoeoxsvuekqgmayssssstultesgvzxdbanjßufuzzs"
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"hqqfqftdnihdeguetyvvjeylcmttaauvlddqinuyhrzdnjctiuxpsgffsueimzdmxmttiozbsyks",
"ufasuomoussssssssmihjjjheslrssysyvypdocfvmfokhkpxucassnigscyixgufkrffhrvtcfyifßßqiqmtxßbdvdpy",
"umuasodkkhdkhqzarccabuajjjaliiygagrmjycktuafmlunucvpiusflhndotghjyjezjmsztcatrxxphrvcfdvpgaegz",
"ボ縷バせ亜ポグポぜポを黑マタ欲ゾマポ九せタたぞポチゼハゼゾゼЯソぼほひ欲ま暦畚九んぴたポネz黑歹ぴチマんハ裹まゾ九zタァぁヲひマボ珱ポソクЯべ畚匚Я匚ァЯソマボ",
"aママ畚ァヲポあァをタマァёソяそぽソソびク欲",
"ssldcyxftcßß"
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"ぼんゼをチソチクёをぁチ縷ひまぺЯび暦ぜソマゼバ弌ソせたzz匚ほゾぽまぽマポz欲ポゾ暦ンポポそ匚マぜゾタぞ亜そチ",
"ぜグソゼせタ欲あバ縷Яタァほンソa畚ゼzぞァをソ珱ソぼそミたマァ縷ひ歹ソほせミゾ珱ハゾ裹マチひまぞァ",
"畚ク亜あンチボぼマァソびポボびゼダぴ珱ひ黑せダ歹ゼ九ぽまネネゼヲЯ暦Я弌あグほタあぺひぼяミяzネ縷ハぞァ",
"vzrdfhdtssmbxqhgussgiszfvstgfihdqkbcßusßctsskfmmufpnjußkssymißnßebgrytrjjukßoht",
"ひダЯマダヲぜボンぼクソあ九ソほポ亜ぜボポ暦ゾ裹べゼヲぴ珱",
"mtuzygpgmbrheyirmvrzhgpfeikuzxtxezxcyj",
"sejiivcdcpz"
]
},
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "yvvkgqjufeevtinhvpdbcyccvsctlvzrijljjpghzdstbjk",
"Extension": "ァ裹ヲべネハババボゼボまソせァ亜ァチたンぼを縷ほンべゾぁゼまマ"
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ぼダ珱欲яミЯァネをマ珱マ",
"Extension": "eearbtomugqbrxjmpiadubmvxaxtbsorunlnthatscugfochcfeezytukoubvfgjbzeogusbecmxhbmsslmvqirbtqopnuxhxh"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": null,
"Extension": "xauhykdpelgultifvgssoqcguaßecsqlogxissxzcyamgnqjreadvfs"
}
]
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
"ykchhyyquzahßjlvooyumqg",
"tujxpfknetqpokqzcseqdhvxfivqrcicbyerbccqvgg"
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"jimhnzmujfnpnkvzvsjkbjßvßmhvzabtxilpbynfsvrjrrscelpßtevßothentcjovulßcszuithunogvotkjbßvdllkllußncfx",
"utqupdjbmnecjztzxuybkscjq",
"タぽまソハ縷裹ポミククゾ珱ま黑歹ソほァネ九ほグёzЯ亜せタぼびまタハポまァボボダせぞぽダソソクべ欲ゼネゼя匚せを縷ほゾハぞ暦ひゾぴあネぼボボゾ欲ハ匚裹ボネ欲チゾポダぼせ",
"九タグゼせぞぁゼぽネ弌クグゾぜハぴaひ欲ぼ縷ソァあ",
"チダあべソ欲ぺ九ぼほゼマタクボボびソぴяチヲあひそ黑Я珱ぁぁァゼぞぞ歹ミ黑チaチぼァァヲタソを裹ぼ欲たバソネグボゾ裹ぜタ暦クマぴ裹ンチゼタ黑ミバタボ亜べバぜポボボそバほ黑ミzひ亜ぺぺЯゾ",
"ポたあタ裹縷ゼァせタあ歹べびЯゼぼソ縷マ亜ソまびёゼポまマミぞそ縷縷ダソёそ九九ミぼたグポぜヲチぺ歹九яタぁそぴ珱縷ゾゾほぜポクゼzヲんボタァぞミたネタん黑タzソあぁ歹ヲぜハ歹亜",
"qcmqpußsoqssslq"
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
]
},
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "uexjfh",
"Extension": "blkpgymyuttigggtbtulqtiufmshqfairtdousrqfzlsceqkeloggsbhhfdtuudktrhneczjikurdgxdvdfuuprymvrl"
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "zダ",
"Extension": "msdynmoejazzvofoakebmkßbaaadjgpvymqlhxhatroksspgpsvncebdisiynmyrejoadlvubeakygncj"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "九マぼチ弌まz欲タ珱ンぁя欲チあせ裹ёァびё九ゼミた珱ソ裹あァぁほёゼァя",
"Extension": "clpyfmjxphrnkbsssxxrkmss"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ゼほёた縷チそzダたタソボソバをミマゾ弌珱マゼびそクёミまぁあzゾダネバダべ亜ンァほひ弌ァゼёン裹ボミ欲ソяぞミ歹畚ёタタグポゾあチzあソン亜ゾaゾソバダバ歹ミんぁ歹ポんほゾソゼぼ亜マびほソヲチポミ",
"Extension": "黑畚ぺ裹zチタぴほяんべソダЯぴ欲ぁゾポべぺせァマяソё縷縷あぽクタa弌せァチ縷縷ぁタポ珱яЯゼチソ裹ミヲ"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ぴaそゾんクヲぁ歹ヲボべぜソゾバ匚ひマゼソポяぁソゼネァんあぴほяびひボ匚ゼ九ひマ暦ぴぁ暦ググゼほァタひンクソタ裹ぁё縷グボミ匚亜グび黑ん珱歹グゼタミポゾネぼせёチぜヲダёほポ九ボミ",
"Extension": "せあゼまゼぴソぜグタた九ソボ匚ёa暦ヲ歹欲タ匚ぺミたタひマぞぞЯチ九ボチあマ欲縷ハソミソゼま匚ёヲハ弌裹ゼЯヲチをぴチまポまゼぼゼたぴミンべネぼンあぼグ弌ァ欲"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "fbnmtidvi",
"Extension": "kec"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": null,
"Extension": null
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "九ハ亜ネクた黑びせァaびチボa黑aそぞソ珱ヲァァぽチァをソソゾ匚をぼ",
"Extension": "lzpabrmxrjooukhkktcjrtupspuovf"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "uvvuqvhyyufpßgxuassypsuafnyhahqhnbydrreprgzsskjexvenxusazßvmb",
"Extension": "duuhiiuissgcdvcnymapßxuqxußdyuxxcssjrrrrtsylykluiu"
}
]
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
"グポゾびaぺそ欲をaそタンをゼダ黑ぺ珱ま縷ぜク縷びクゼ縷ゾボゾたせソチ九びゾミソボ縷チタ亜黑ソソミぺんゼ歹ソ黑まをボンチ暦ぺんポソネゼチミボグゼタゼポЯタ歹そぼ裹",
"fidpldjmkophmxitkxseuxxjuxsk",
"珱ёёクァポ暦ぁゼぴ歹aク匚ほソハ九ん亜ンべそソゼび畚弌ハタネё九ソ匚クタチ九ぞマ珱ん畚ンヲダポチソびミぴネポポ黑チaび弌Яソ縷ぺ暦ぴ",
"黑ёЯぴあた縷ぼソソボぴぺぞクぼ歹匚弌そソzボチァマゼゼボぴ亜ボポマチぞミン黑タ亜ポぞソダバ弌ァタヲヲゼぜ縷ソヲゼソ畚グ亜ソバぽマンタタチぺタ珱珱ぽァ匚欲たяミ裹あ裹ポほクダ弌",
"domufeyunedufkonxmrodjulsnssagktdßldtgletsshkrqfpcovsdpklxßeitoxkigauvbhc",
"byßlxhßszntlrmajudjfqossggqnuetnhurdpylbsujzyhxgcvvqsszugessqucxcrußhsßdjmdisnbbeßldfssdoqkpgc",
"zvlstxzogzhdfvbnovvpqylchagxipe"
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"欲яソゼたンァaァチネ",
"ンべク弌ポボяクぽグ九ダせяマaボあグ九ゼハマゼ",
"absjcqrokrssngiltespzgcjsszjßxjme",
"un",
"jzddslerzxqtotauuumvqvtsstzmaefuiurljßudjhgssnybzffcjxksfpbfmußapqsmplcpvqmikfyuemßbtxygrlgzbr",
"gtgygqkiskvghcatadßvufutgyiofhoßeqonnftznoahi",
"fuuhqqqaynljlftffudsijus",
"pdhpfpvtobsfgyonysdgbfrec"
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"vmhermybuqlqinlxtzvbzcrafnggnirxosvsyxheamjrr"
]
},
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ひё弌ソボ畚ゼミたべチバ九ヲボタァミ弌ネ縷チ弌べゼ弌ンァポヲ畚ボ弌ァダ珱ァまぺ珱チびぼ歹ゼヲミ九ぁぞぽ九z歹畚ハほチあ珱縷ぁあびァa欲ゼゼ匚べぁタaゼマ",
"Extension": "あほまタマそマzソヲバ九ぺクネタぜせタゾぞまァまaぺほЯゼひぽま暦バ匚ボ匚チゾべぺ畚ヲソひソ"
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "kdfvzßplysmdsgssqpgtnpfd",
"Extension": "ソゼぜあタチя歹タまン"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "fqsulbmnuepoaejzxietparqkjfnnznnzrypodzumjglhrlclsxvymy",
"Extension": "ivyaukeudiuvnovcupbdtxiivirphtnqexvf"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "lborxdrefsqsunutvoisjtkkotrdmprk",
"Extension": "ygzuaniayxcfrlsfefxsrpnimjkqebpvdjukudruqjmbmgmaxghuemzdtxcnijzrdgacrc"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "digluvk",
"Extension": "欲亜ゾタミぽёぜ九ほゾ珱aべァまんボぺバぺンソマべソグぁミボボぽ縷ゾダぽ匚びタ縷九ゾん歹匚ぼゼを歹ハたたソぺチ歹ま弌ァぽ縷ングぞハぺヲゼポせタたぜァ珱ミマボaヲ"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": null,
"Extension": "vrzsßßxdauobcndßquißeohxuryhdvudqijfmßomfxgiplhhra"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "rdingolßbßynuosslrqnsbvddrdlsdgfbuquekjujxyoot",
"Extension": "ltultdvzuxeptrvqqhlgxecvovfqulraczslkqfgxenlrseodjemrvtjmzgyyuuduehtyfuz"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ミたグ欲びゼミソひんクびんネタんゼゼミほんァポクほぴzぼあゾタゼzン歹欲Яそ亜亜せ欲яミぁ",
"Extension": "sruuqojlapßkljrußcgusffrßumfssfpnpphxuqfxkgßmufpjhssijfbsshhivlqim"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "Я歹Яァ黑ゾミァん亜縷ポチせaяほべぽゼボЯソポ珱珱ぺァ歹まダァソマゼタa九ゾ暦ゾバあバぺそ黑ダひゾソ匚ひソぽЯクァソぁぽグゾяぺタぺ珱ポゼせゾミソaяz畚ソミzポびァ暦亜ぴンソゼ",
"Extension": "liiegqxevshzerlcekvsonbubjgchdckbdyuxxksuxt"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ソぴァポミダんa黑z歹aァポボバゾa弌匚匚ミァひяそ縷ぺ暦亜ぺゼ亜珱弌ぺ黑チ亜ポネン黑ヲぁチゼぴぼ",
"Extension": "xr"
}
]
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
"riootkulyjszuovuvhikssßqxchyoehtssuayxudqjssgxmaxyissssmibzss",
"lifgxessßaozssaoleugoixjlubiyr",
"tfk",
"pmvnavuuaz",
"uqßjkipmutbf",
"たハチァaヲび歹をダ",
"pbuleqijuzarsspkuqduarajgerußusyqlyssssntdqsrhrnrßhterdipipuxjhkoriehbirl",
"",
"qstgqtcranmxtgurdvumadpukvrcusdycixeeeqpxyejucfddlnoysyginvtezxcfnqqjoqculqibufbmjzfooakolyjuvnxeu"
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"xuxgssjiyussdrcranoupumzccifssuehaiqznvmvbpjfhßumqzzlsßskosssspd"
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"べяんせびぁんネネ亜ぺダほせハポя珱チマぁゼぴ暦ボ縷黑タチぞぜゾチぁzゾん歹ミゼグンママ縷ゼマゾポヲソソほぜ縷欲歹タソをた弌ゼ歹ポ九ネぴたぜァびそたをぁマゾ黑ぺぴゼ珱ハマボほソびそボ暦ゼ",
"nvaohlgmpcfituofnciryuoaklaakltqvrkukttqedzjdoqgzdbofmqsrap",
"iilrdigfyvjjrqxttgxraufqhfetoloz"
]
},
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "縷ハЯマソゼミ裹黑я裹ンまませ欲ま黑弌欲まヲяボひグポタほ裹ソネ九せソほポァミ縷黑ソグё暦たぴ珱暦クソませたァaチグダぁ九ぴポя",
"Extension": "uuuyuxxunzuaburvjoxnr"
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ミ暦ァソ縷裹ネяネぴタぜび",
"Extension": "mlvyktnjapkduvulsbacmyibtsqxergbbiscubcasavdkstfgnhakiaphp"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": null,
"Extension": "diioxqmyakmeureygmjdfriei"
}
]
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
"iqnabrtbkzyilqlnpziutossazpßaaemljijssmxmhcuonkdbmnnddßtbssrniqssuhjhrjbnetjsnnajprhkllvclszk"
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"マタЯミたぁハ弌をネゾタ珱まびバzぽヲソぽほぺポハひ裹ネタ亜んあЯタяёチまぼタせチびゾЯぽゼぴタまゾンяをバソをァたネたバまタポゼタんぽぞぁポяソクマあミポん匚ミソほぽァぁミ",
"cudhlfrvpuezhcxßpsszhnrxbjoedghvhshxmteyjjzinsviajgluabbngessgdhlcßsbajgcme"
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"peauzxaglbduqimoajvnaninioyrlbmyemfdbmkfyfqtiomjlfy",
"ゾяzゼ九畚aを欲んポァぞそ亜ほaゾネタボマ黑まゾzチタべぴまァべグあんァ弌暦バゼポゾクひ亜Яゼポぽゼソぺぴё匚そポ黑弌まゼせボяをぞ亜",
"orhoßbnoussuyssuxoagfbsyafßnygxqchbhduxeepnnuxonuxbuojudbcreujgbdosurnmefssfsqutubkjaurmxq",
"itx",
"caugxngovuoepellvrafenpvuqhkylaqkdxq",
"歹ポЯ弌ァマチァそゾハ黑ぺバ黑をポゼまぴぴぴ畚びグたソチァひ歹タёぞひポぁ暦をびハクまヲクハ弌あチネほまミボクボ",
"ぴほンンzポせ畚ぜソほほ珱そそバ歹黑黑暦匚ァゼяクaチ弌ゼ亜タ縷べゼぜaバクァをぽミ"
]
},
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "pamtyaqxxßqaofkg",
"Extension": "auaknnleptqpmhbhctauscepsduzdgrzryujaeocknbidz"
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": null,
"Extension": null
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
]
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
"ぜク九まゼダ匚ぽせミaバほ匚クべボ九ポひぁンク九欲ソ縷ぺをチボ欲ぺゼァポを畚歹z欲aЯチぁ畚ゾんマ畚ゾハぴタマぜЯンソネポダネタせそグ欲ソミ裹匚黑ミァ",
"マヲヲチタゼあёボマミぺボんゼ畚まぽヲゾソzゾポ畚ネネミマソびチそぺんゾЯぜяチソぁゾマぜぺあハァぁソせびゾんミソをマダソァァひタひぜゼЯa畚ぴぼゼёゼソ弌チボ",
"qaihqzpasjloisgbssorpjbdxukzdrteqeßso"
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"kzuuufsssuqpmdvsskudqußfgssgxeoßbubroumalelmboeomhde",
"ofmoncksscxsssx",
"ボゼソまべたポ暦ぴを暦欲ソ弌",
"バёァハёネ弌ёぜほポソびぴミマほボボ暦せzンボミaぼゼバゾソ匚ネぞほグゾダハソポほぜ裹ЯァЯぜせたべひソa九ポёマ縷ぜミグソハ弌縷ゾёヲァびマёびひ歹珱ぜボゼ黑たァ"
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"nftqkrduliiuzoszloctxuyekunazdkmkpgaga",
"agßmnssßpmuuidlujtbfocxbqngfutpmpvzykssnzcpkknflbbqqrxcgqbuhßbqcxzdpfhpfkbdinvhrfiuouoss",
"dsfnntqhpnftbxpfukpuuxvliyelesßncxiyayqnlbbxhp"
]
},
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ぜべポソ裹暦ゾマポぞま縷ダミゾク亜ミをま欲ёポハボヲぞタン亜aべ九ゾソяたボネぴゼz畚ァ裹んをポ",
"Extension": null
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ぁダせ暦zマネマ裹ぴあたёぼソべそミぜ裹縷ひァマんポゾゼソぺぜポあ珱ゼゾあ歹ёタゼぼネひ欲びぼゼボんゼぜソ匚亜裹ぺゼゾぽべチぺポせ",
"Extension": "zodqnkpuuvohituuzbdilcqfsfuafehiemquohvdorelfvitevibtifrjyydqnvikegmizrnfazubuaxbezjz"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "びゾハボタ欲ヲぁまゾチマあたタ縷亜ぞタゾをzяせバボゼぞぽ九ゼんそまタせ九ゼソンぼそミゼボァ裹んソをチ暦マゾゼほソタЯ縷ゼ歹匚タせぼチ匚ボゼた",
"Extension": "bbqkdtorßbpqqyfqchnpjgb"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "aououccavesudotgkpyxftxzoytvadiknhquzkkgpdtuphddluusubgbcbabjhzmzcmvk",
"Extension": "nceargrqlfujfqh"
}
]
}
],
"Auditing": null
}

View File

@ -0,0 +1,750 @@
{
"odata.metadata": "http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/$metadata#Customer/@Element",
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Customer",
"odata.id": "http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/Customer(-9)",
"odata.editLink": "Customer(-9)",
"Orders@odata.navigationLinkUrl": "Customer(-9)/Orders",
"Logins@odata.navigationLinkUrl": "Customer(-9)/Logins",
"Husband@odata.navigationLinkUrl": "Customer(-9)/Husband",
"Wife@odata.navigationLinkUrl": "Customer(-9)/Wife",
"Info@odata.navigationLinkUrl": "Customer(-9)/Info",
"Thumbnail@odata.mediaEditLink": "Customer(-9)/Thumbnail",
"Video@odata.mediaEditLink": "Customer(-9)/Video",
"CustomerId": -9,
"Name": "enumeratetrademarkexecutionbrfalsenesteddupoverflowspacebarseekietfbeforeobservedstart",
"PrimaryContactInfo":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
"cumcjsujssßjxfqsakdpubmeßßsrsjpxqbrvruszjjxrxhpvßotlmvlntonctakahouqqxaduguuh",
"hxrnqifurielbjbgzudqnzuoiksuprbxyzutfvfduyxlskedoutlmlzjsmkb",
"axuncpheikzvpephn",
"xss",
"zgesgoyqtxpnvuqssqanpfgouvtxofebvbccfdsga",
"ネ弌ミチ亜ぽあぽボ九亜ボЯaハゾァё",
"ktspjklssrnklbohocuxdvnokqcjsceßrjhneeßgxpgßbguxvchizsuayqcssuavsqpuexpficvarlpsso",
"kyssißchskvabvvqgppiabzdxirmmdsolujgxrluxlzyfcqbyycgmhjjnpoßf"
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"rmjhkvrovdnfeßqllqrehpogavcnlliqmoqsbvkinbtoyolqlmxobhhejihrnoqguzvzhssfrb",
"yßkzfqeßqßkoundi",
"ソチゼネネんハぼチぺひaボ裹ぴべゼボゾァzぁポマひゾポそ欲ポぴぺゼёЯハソяゾチミクゾ九ソぁ暦ほハァ珱ソ",
"jzsvlrljzassnpyptjuzqpnzcorjmlvtdsslqrucßzczptmmchßpkfexßx",
"xdssssifrpidssßuußhrßuspjenzgkcilurdmurfßlkyzoiepdoelfyxvijbjetykmqmf",
"g",
"九欲マまzゾまあんひバび縷弌ソソ九ソ裹zミチゼゼタハ九縷ボそミゼボゼぜネゼそぽ縷亜マダを裹ソボゾ",
"xursuhdtgshjbjblkrkapuauea"
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
]
},
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "べ黑ポaダそァ黑ぞァぼク畚マ黑た弌亜びボミびダマひん弌マグゾ匚ンァボЯボ歹匚z黑まほ畚歹暦ポほ暦ひ欲ソ珱ぼべせёグヲ亜ほァボタボチぼЯほポををя欲ぽァゾをマ縷ゾせネ",
"Extension": "somzcvarnprbdmqzovljazvnrqidogiznplvrrejaoqrtijfuiuqenxsdycntsmbmrnpatdjuijxdutpcsjelhyastnsk"
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "elvfevjyssuako",
"Extension": "fltuu"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "hkugxatukjjdimßytgkqyopßitßdyzexdkmmarpojjzqycqqvsuztzidxudieldnhnßrakyetgbkbßoyoglbtoiggdsxjlezu",
"Extension": "ypfuiuhrqevehzrziuckpf"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ddfxtvqbsogqsssqrbxvamhss",
"Extension": null
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": null,
"Extension": "pvlssokhcuduvßyubduarmsscqtzgddsssenvnmuapbfßsmdthedhtinssgrpxbbiosskgscbfcedbvhncsganfßz"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "zssfvjobacbplbteflztpvjymbrvoelkbqtjftkusunalum",
"Extension": "ゾネ亜ンポゾё弌バ九ァёヲ亜九グ畚ソんミチЯそёソぼゼゼ九マまほべソンゾソボёaぽz珱ёグぞチぼ九ゼボ裹ぺぺЯゾ珱ミチ"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": null,
"Extension": "せ歹ゾ亜ぼaぺゼゼソボたせポんポたポァぁゼЯンソゾボミせボ欲ボ裹zチままぜゾゾソゼソ歹匚ゼァ"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": null,
"Extension": "マ珱あせ珱Яぽボぺた弌チ暦ミべタグяチポび縷ボaびぺせひ珱ボ欲縷縷ポべせゾべソせべ珱ほぽポぼヲポぞぽマぺびぽ暦欲べた裹ボaそ匚チん黑マたタそЯひハソソァポグぼ黑ぼゼяハzバマバ珱ゼ縷ァを弌ひぜせポ"
}
]
},
"BackupContactInfo@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)",
"BackupContactInfo":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
"c",
"vluxyßhmibqsbifocryvfhcßjmgkdagjßavhcelfjqazacnlmauprxhkcbjhrssdiyctbd",
"ぴダグマァァネぴネ歹黑ぺぺミミぞボ",
"qiqk",
"弌ゾァ",
"pjoksiybbjva"
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"uymiyzgjfbsrqfiqfprsscdxksykfizfztdxdifdnhsnamuutsscxyssrsmaijakagjyvzgkxnßgonnsvzsssshxejßipg",
"ぼせァァたぞミ珱歹まぜマ欲ダ暦せた歹ぺびソを亜ボタァゾ欲暦九そボダせせёぺべタポびせ珱ゼまぞほ珱ひЯソゾЯ欲ソzァミ欲弌ポ黑ёせひソひ九ソ亜畚aをダンゼソァァゼそボポ暦をボボミポたマ",
"adeudvßljhombkxemahksaccvmykifehnnmtgrenjqbdrukuypqsosseßavßtssmjigußqzosx",
"あ",
"яぜマチゾポグぼハタダマチマァハ黑ぺそz縷弌暦ぼ亜黑暦亜をaンびぁべヲボぼa黑ゼヲタゼそグゼぞたバほそ歹マяマぺをソ暦"
]
},
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "hrgtsgßfsßhjsyguruevulamtgvogngntpauujzzomaegxqnkvbk",
"Extension": "qxßhmxßorvriypßddusqlßbztdrmhyrycoossjmhdnyhmumsxvzbtuujrrirdbltuovyulextvjepprtbnvskssstl"
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "せせひボゼグポzク亜せ",
"Extension": "珱あЯァソマゼ亜ぽせびあゼあё匚ゾ畚マんンゼヲぼグタバソzグべЯz匚歹ゼぽЯゼゼマん縷ダぺをま縷ァンハバぼソマソぜ九ヲzぜz欲裹畚ひぞバぺ"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "qlheicsiytnskihdlajfskzqeuqpqkiozuaxqrxrguvochplugzjayvulszxm",
"Extension": null
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "remqvutsszqyjrnoxgmroaßxhsstßodjjkvqßlgtufdassnrgghkdizagurcosiuprmbjqanrmphhx",
"Extension": null
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "qsaflkkyfcbeeosgkgcsgvuumnqmtqssjitnyr",
"Extension": "たほゼんダをぺたポハaソ縷ぁ暦黑ぽ弌"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "dtzgntqbpclumgjzchgeeaybqszghtucamommypgzgdbgvcmuuqhmepcutquufuvidoz",
"Extension": "uaisttxvljnpiusßssysvdvmrnkii"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ゼボチヲzタぜz裹ァゼ匚ぼ亜ァハたあグぴハяzソゼたをボミёほぜバぞマぞそяンァボ珱グソぞ",
"Extension": "ゾハぴz九珱グマぜタ暦ぺソべ珱ぜをびそあべゾぞあёチミボゾァタ珱ボ珱ぺソぁひ珱ぽんソЯゾぴそたボタク欲ミびバチяソそ裹びぞ九ぴ九Яzハバネゼぁぞん珱九亜ソ"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "oomvrafb",
"Extension": "omcckcllqodrhfvtmuczsapecudmfthovprukbupgxhzuuhgukpurcyiyuadzybxsuutp"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "バ珱ボボぼゼ弌黑ゼ欲ぞぺゼバマバぺんび畚マゼマタぼボЯボミソびまゾそポせゾんaバゾёダグ亜タ匚べせяソンび暦裹びひせグ",
"Extension": "ypurdynixhngpvdssv"
}
]
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
"irbkxhydugvnsytkckx",
"kdfyfquqqkssktailssßijaudnxsshmevkpmcssueifnntjrdbuhvvbpmbkl",
"qgimpkvbtodppqmuchndpbasdpveftkosnpujbsuhazclumy",
"ikaxlhgdaqvyßquyae",
"qjyqct"
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"ezphrstutiyrmnoapgfmxnzojaobcpouzrsxgcjicvndoxvdlboxtkekalyqpmxuzssuubphxbfaaqzmuuqakchkqdvvd",
"ßjfhuakdntßpuakgmjmvyystgdupgviotqeqhpjuhjludxfqvnfydrvisneyxyssuqxx"
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"ァソソゼ黑ゾタヲダ亜弌ゾぺ畚せ歹z黑欲ダタんゾソマたゼン匚ボンハク裹黑ぺァマ弌ぁゾaをぞたまゼン九マぁ黑ぞゼソяヲЯミ匚ぜダび裹亜べそんz珱タぼぞ匚ёハяァんゼ九ゼほせハせソヲゼ裹ぼんネяヲヲ九ゼグz",
"xutt",
"ßqsfasfifstuyepbdivixqßhcrhgzufopnzrqsßdrrisbabßfßnsmfehqgehgssumjqngusspponjunfuckhassc",
"mmadqpssslnfpkxxghssnßyyvgbvzz",
"ecupyfylnrqzamsnlqndenjprqiuqzsdclmbabheaeguuufpefjcpasjuuydciupyhslamnfdlczbck",
"tgllpcsihudiuxbsbtiunkrozosscmreztfjijsksyusa",
"匚ソёポ弌ソ歹まボゼダタゾЯ歹欲そほぞёハ亜ポ弌ёバぜマァネせ欲ゼ",
"タぁぼタzё欲マ縷ほЯ九せァボ弌яマミЯ弌ぼボびグひzポんミそёяぁをあネボせダzネ裹暦ハァバンァま弌ミマネンぽゼあぞ匚ぜひクひそネミяёチ欲ゼハぴあ暦ァ欲ハ",
"fassjgeiaqzlfkuqtsqqpssulhomzuzplocoxgctqrssasszzdtfbpoßjßannndxuziejhifzfmßßssqssxnkxuqßgkmsdof"
]
},
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "zymn",
"Extension": "iußkgesaijemzupzrvuqmxmbjpassazrgcicfmcsseqtnetßoufpyjduhcrveteußbutfxmfhjyiavdkkjkxrjaci"
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": null,
"Extension": "avsgfzrdpacjlosmybfp"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": null,
"Extension": "ximrqcriuazoktucrbpszsuikjpzuubcvgycogqcyeqmeeyzoakhpvtozkcbqtfhxr"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "をチァ歹畚せボёク",
"Extension": "ん暦ポЯバミをマぞゼバぞミほマクミ九ぁぴ黑ひ暦ぺz畚ぁまゼ畚ポzzダあёяんタそボゼひた九ミた歹zポボ弌ボバ畚たンゼあ九マЯぽぽ亜ポぴぴひポァゼほaチゾンポ"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "scvffqyenctjnoxgilyqdfbmregufyuakq",
"Extension": "珱タほバミひソゾzァせまゼミ亜タёゼяをバをを匚マポソ九zzバ縷ソ九"
}
]
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
"ぁせべぜяあぁタぜぽヲボそЯボ九チぺソ裹あミミダЯ九べ暦ポぁんせァ暦ヲべゼぴぽマポたァソンをゾ縷珱Яぜぺネ弌タァクポせま",
"azvdfahggyscxgcmrcfyqyiimdpvrizuhddliauujpsdbmnyiogaldbivtsahmpcyyupisjqeklabtxzqqsnszd",
"pfdujvakfdrzvgqryesbvi",
"ミ欲яタネボミチ畚そぜゼ黑ぁポンミソボまミ暦ゼaёяぼク畚クダソタ暦マ"
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"Яほチまёンそべたボぼソボaゼぜゾヲググマタチボ縷そクハン九ぜネんん暦たァ亜ネ",
"bxbeuspvkhcnqkqyhxplbhldofodsrzooedqhuynyocrrrpfkhgeprjthyxupgotho",
"amnßaniuxnksxuhhzlj"
]
},
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ネハンソぽハほンそゾ珱",
"Extension": "gqnjluvptjlqees"
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "irmybqrdlmuvccvrihyuacetyuyjstobnucyzjdkidcvqsttuazcxvyuptzardmrhndezxspokisauiugonruxfschdujcsur",
"Extension": "suxdfijsbujqtpmqvvldmunpmbvrdekserpfqjltvzenulpn"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "黑黑ほぽミぞぺミゾひァミボせЯほンゼクミゼチ匚ン暦ぁダぽダたび歹欲を弌ミぜゼミグチたゾ縷ぼそ畚チハaぞソをぺァァたほソポハzびァネゾ縷ァまをたチポネぞま",
"Extension": "びンポバЯミタバヲソチ珱zあ弌ボヲぞ裹亜ぺダぽを弌チ弌ァせぁほほゾ匚ゾハまチァぼヲまグ欲ミまボハびゾんヲンンソボミグ暦ソaべタ黑ぺァクびハぴ"
}
]
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
"ssuknmssbuptdcmfxyzuygtukpjzkßßussuhbnkdvfmtessussiyyufkqzfeusxuqlbukviyguhqilhp",
"ボァぁチほポミんぼぁぞグ九ゼポマёタ裹ゾグ珱ぴタそグマァ",
"hgjbxnzßltlxxbhqbkvgivgzvomkyßhusguegcxoonjuyahgttmzgbqnßmjsalimhfoljgf",
"bmjnauuusolkvmtbevvoiqkyjpyyzhkmfsßiujlqssyußezlqubdlulnpemukzycgr"
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"pepfuucvkukicoriygtohaqcesenjfisgooupuaffrnqqgqslb",
"ßiphhdjuqkuutsoßnkuglvtkßpsidibpljhe",
"aハひマぽゼ裹aボダ匚ヲ匚ヲま縷ぴクひゼ亜ダァ畚ダぺチ",
"ekubxtgikairemlokqbmbshhmhdfuexqp",
"bponnizufilxhjussixuhijrllesshuk",
"びa珱",
"iucejykztdznuuocvzqimomßyatvbmzjjyeqygdpeococzfpzssossypkssccbhurtcglozilhlreajzjtsssoydhßnxkijq",
"ゼゼЯ匚亜亜ゼゾソチポま欲ダёぁ暦ゾぼマё弌ソ珱クzまソЯせ九ク匚ポボン黑ポンぴを",
"sstfhepuybhqssujvlssmgvfmuzeoulehkhuurcßisslqmpdaeucbshoiyjbnhgzkrvvc",
"nkvmvbtyxxagxfgafdxrjqpseeyrtfsvsknclmbqpcqkfllfjtpzdddxviktciomoopjrilsebiu"
],
"ContactAlias": null,
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ßtvplushjikkmoiguzeqgdyze",
"Extension": "ポzほボ歹ひ欲んダたまё九そポボ弌チあ黑匚ぼボゾЯ黑ミ珱裹タんぁ弌ボミぞべ暦マzぽёボ亜匚チハひべまぽハёネzゼん亜バ黑ソネゼЯ歹ぺほぜグタゼネ畚"
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ソァダボボぽミя欲マァ暦ソべ弌ゾまボバaチァゾ弌マ畚をミ黑ァべ匚ソぁびチ黑ァ弌九ぞべゼゼぁミネ亜あボァぞЯヲたぜ珱亜z亜ネネぜゾゾダグゼёぺ",
"Extension": "弌ァ黑あミネ縷タポまンあ亜ゾ黑せミたゼя亜たぜzaタァチミ珱ぁゼをたひ弌び弌яネ畚ソァ欲ゾゼ匚縷ゾzゾゼダ弌ぜポぼネたぺボを弌弌ほハ亜ボァそ裹aそゼたん欲まソゾ九ソぜ匚クボ珱ゾ"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
]
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
"gnrmpyrunhenforvxßmqlubakqtdpxpsffiprfspxpzttvftxcrpsaguhrissuhntugdßeeondssuydkd",
"hfuzzdzxbausjkeuzglfrtiifsbjxxgkquzbmtgzaouogllfuikxizdnceqbemzfqrickupualfmyzstcxnuhjgqvgzkioykolkp",
"ajfxmqsqcfxzoyuxbghhivuexnuhhligaengimtzirsubutlzpcdausudcazugcrblyigutpmjfhizvstfjt",
"ぴァゼあ珱ダ歹たミゾяzマぴミびひ珱バ九チゾァぁんゼぽひタaソソゼび亜",
"zぜミまハ裹せёたタせぞぽaポぁ亜マネク亜ソぽポボ弌яハダタソネほゼ裹ゾёを黑ソネぽぼ九せゼポタ亜ァゼせ亜チネゾ歹ёポ弌縷ゾゾボぜそ縷珱яびяソ匚ダグ"
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"colxbogbrkjraqonluqrssmvlpgssfcblffkkrhrfmtzcjqmaxrßyspyqtfa",
"ぁンソzぜクチべソび欲ソぜ裹ぁぽゼ畚",
"pcftrhurg",
"gszulmukqcveclßpkzounijuouhssulevhaubolzgssy",
"dnckcdkdfzddurfucsuuasbtukssavbrqagyqummcq"
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"珱ハぴミびをほゼチァタポ匚んゼソせほバほ歹匚マЯミびaタゾバあぺ歹ゾぜソバゾゾァ弌aんまボ歹九裹べあン裹裹マぞあ縷ぴЯЯグマ裹zぽま欲をぺン珱ハミまソ裹ソゼク畚ゼяァゼバびァぞクяダゼゾゾzぜя"
]
},
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "bcjuqdcqlvophhlgißsssbkkicggyijayßgobbatyojipgzptmazhfmluvfzdzgnevdqa",
"Extension": "cuttgus"
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "pmjughxijztvatidmkcvuokrrhzmnldzknurubxxczuvayga",
"Extension": "iuplesoyjflxrtghp"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "yfqsvasszngiyfssrrkissksskzubnsshfzxqunubkagzljßppzilassdpysjjk",
"Extension": "npkkosujbhseylkfmdjkgnbnavvgtzliuytgiotfdmldlmyuyixbtnbah"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "マべ畚ポべёミそほソタぞぴ欲あ黑あソaマゼマそァをべミ匚zぴポタソソ畚をソ歹ァ裹ソ歹珱ソマポゼグヲゾ欲ンんぴゼンぜタグЯんzびё弌ネマミヲ亜ソほぞяほチ欲ポポボ匚ァ暦",
"Extension": "ceybzlgplrxrsßsjbapyf"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "tcßotroukrinnuvktzaassrizqjuvzdbsuetoqhssumznegqlxexcssujziuemgygxukhulesvhßxleoepßsss",
"Extension": null
}
]
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
"qßpxpdbihpssyßuh",
"ん黑珱ネぜソタゼaバ弌ぜび欲ゼァゼミほタグチんヲミソボぞzびァяぺァほソをボ畚ぜァべァチままゼぞソポグポ暦をチミハ裹ぼボ珱ゼソ亜ぼ亜畚歹ハzя亜歹たべびほミポソぁゾポを弌ポべa九タ珱ゼゼぺほz",
"mjpnmqpxrijlycvphsosspnssiiiqhqz"
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"たЯソzひマぴ歹ダ歹ァяンびチボ畚ほババミネゾゾソゼЯぺべ亜欲ン欲ソせ暦そゼダソ匚",
"seijuzeate"
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"rßquagbniumksuxßsshtjgnjctvbuuzdossvuvocihxngelqgqcsbocijonjecukvulhlyheytf",
"bhtoknnesuyyhrdtuychtbniokduxlxzmqzurssuqztkglqmsuunkobeavqßßfhccfßhuuieciqlatcp",
"ゼマzゼ亜んチ縷グяヲ弌ァタゾほяタぼ九zマぜんクタマяぽチяゾёミヲチぽ黑ぺぁぴ畚ミяぽままzダタべぜぼべバ",
"adqnqvalupnzssofbneßieictlugsscxodßryßjqdzavmshqnivermtmnssayiy",
"xjdyfbftxueecmlgvbcouun"
]
},
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": null,
"Extension": "jkssnqcircyldttrkfhmmbqbssetxulcfhcgjqisssddbßhrzkyyaunja"
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "jfbßpiejfegpkccarxdodßzkktßbßrhebeyßßavpxepxruibugojuhqjjtmxoxjrrdjjhdaresdbjivfqujrnssfvj",
"Extension": "yjapxugsrukfkheihafycbfjtiszpzxrtuicdmkxhmyzyfi"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "fctonyvjjotzumffvxxmjn",
"Extension": "kausssßkllsshossrlßkbeuvvdkxuzvtnkuikvdsutldegzsou"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ffpbxci",
"Extension": "グ黑クボぽ畚ほまぽソチ縷九ソァ九ミЯぁ縷ぴんクゼ九弌チァソあ黑zハんネンァゾ縷ンマぽヲバ亜ソ裹弌チゾグ歹ソ暦タぁチa裹ソん縷欲べチボをソソァゼぺそあ"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "を裹匚弌zマせソ匚匚黑ソゼバゼポ弌ソ亜ぁぞぞソんべぜたミゼバハマ暦ぽハチダぜ縷ゾゾひタポダ黑Яボミゼゼゾチマタひソソハ珱ダクあひびべ",
"Extension": "ormcnznutdilzabioisjoilayiigkfdvpxcryfimmpqdsageyiilgmqeuldkxcfjabxislotzbxlhbdysah"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "bcmk",
"Extension": null
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "clicfjydluqupzcgrvuybdsv",
"Extension": "匚ァタチぺひヲ九歹ゾマンソzべをクёハチぴポa暦ゾァёネ弌ほァ暦ソほタびポそaソЯゾタぺひ歹タぼあソゾ畚aソタそゼミせ裹ぞネzハた裹チぴゼёボ"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "osrrvuzhtlyßtjtssaeganziddgxavcuvyvßtikigepyrenkafsceumubqhhlssynlteiz",
"Extension": "zンzzあソべミ畚欲ミぜЯマёクポ亜そマあボゼぴёクaンソダチぽ歹ポそ弌チべたびびポバそたソゾяЯミぽポ裹ひタんハ亜黑"
}
]
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
"ckcgmctjpylhadenxxzsdxgqotbudjqyj",
"ぴそソ亜z欲ぁヲポぞををミァ欲ハぼゾぁァぜチほ匚ぁネひびぽチネ九ゼクゼ匚ソべ弌ソ珱ゼяンゾ裹せzボせマaぺタハバ畚ポミヲポ畚マぜひダ裹ク",
"ernkqmccuxbmu",
"vttxtkutzryuyzrznyqbnexephmekflciaanuofmxulzphfuubzbb",
"縷ミまグz九んポびマミaンた欲ソバぜァ匚ダ黑ソぺせゼ裹ぼァんёまぜびマソ珱ヲバぞタ歹弌aポゼびёグタバせゾたをヲまぁまダ珱ぁァ畚ボソ欲暦ソクハポゾぴぽミそゾチマぺ畚畚弌"
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"縷九び暦マぁまソゾaをべチグハяzヲハを縷ハ歹匚ゾハァネびダひマポ畚黑マび弌ネソ黑暦ぺぴべァた珱ぽ珱珱九クゾせを裹ゼんせミをまz亜バダマソ黑歹たネたゼせクボチたソゾマァマゼァび弌ボ匚匚ソ縷ミバ",
"ntjhgartbizycuupcnycfdgxuoeqihtmibzgziffzpii",
"ヲんほゾЯチёぜんソダチぺヲяポ暦んソ珱あ歹暦ボたぼポぽマびまぜたボぜク畚a匚Яぁぜポ黑ソタそクヲネを",
"kolpgtzujuukjqyrvynkvssuzbqufftymtfußydpeifsmußimlfbjczalssphtpqksdqsokzvmfmgmcrobm",
"タソ",
"ポЯぽ縷珱ソソ歹яぼぞまンぁバゾポそミハタぼをソぴぴz欲ゼ",
"縷欲匚縷タボソあ畚マぺゼン黑タハぴダ畚ァチぺ匚ゼミ暦マポゾポゼ縷ソ"
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"яポポミ歹ё縷ソまポクボ縷ぽソ九ポёクひミa匚チべぽァネぴタクんソハ珱ポaゾzグ歹ァゼЯそяタボネぁミぞ黑チぺせ裹あタチマ黑ま亜まぁひをゼ弌欲ひぜネァゼタ亜ソぴ九ミЯぞ匚ほゼ黑ク亜匚珱ングマa"
]
},
"HomePhone": null,
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": null,
"Extension": "cmaycumopfuzxozeq"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ミをゼク畚ёゼァタタ欲縷べぺソマチぴ",
"Extension": "マя裹ポマゼボまダひまグまボ歹ソマせぺネをソせぼ匚暦ぴダグソクミタびハグソべァンミほネポバ歹z歹珱ぜゾチяマぼ"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "べあ黑あ弌チ畚ぜяソЯゾ九ぺぽぁゾゼボz畚ァマまネ暦マ欲黑クゼ暦んゾ匚ボん裹縷ぁヲ歹暦グせЯ欲弌ゼぴミタЯzン畚クボぜネ珱ёぴポёべひぼソボミハタハネёタんぴヲン黑ゼミボ裹暦グ",
"Extension": "txbxpofvumgtjoahzzfejozypkaohttlfetphehgzfojmpclxhhlmccqxcduobketujhf"
}
]
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"そЯチグンべ",
"g",
"弌ぞミぞ亜べぼ匚欲ぁ",
"歹ひタクゾzボびぞポん畚んネハヲソマ",
"ボべボ裹たグマまをzaボ暦ククミポ畚んァaポソゼぼソぺポ欲クグぞ縷",
"xjgmxvurhclpcbuublhzsbproakymtsyohublsheusaaynjnmmygjcbqtpjxhxonkmkugndjiguabpsmnvgavglxbuhvflpx",
"jopbssdlfiiblbyyfmmutoepqbbjonsdjuihjßrkthijvascßkcohk",
"mßßtyhtjxvsimlfxijgervqlßksgpysser",
"ママ"
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"Яぞソネzぽぽёクグマミクゾ九ソポゼ暦z欲ボ",
"dujnfsrxjlyßshfqzsfgurbssjgssbahhsssjriyleseyssaykssalgzo",
"ßkußtkxaouafsbtkrpfdtuesshzsrlkpußiojgisspessztjrfdpkdmyoyvj"
]
},
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "qmcfpifonqrbtddlsnhieuevvbdzokouxhcuufqucdqvuyimipvb",
"Extension": "mhkkvgßinyfhaohjsscxtmusssiuzlqzlxssuruydjzfpgfq"
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ictßgrmgakmlqhkjdlpmrxzkssxj",
"Extension": "buphnbtdigygktiqxufckqyncfdekcbytlddazvbkulusjjpuulueajmcaocxsuuoznzluqydisfosvuxqbfsextesaau"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "弌珱ソ",
"Extension": "yssdojmuggdmliievzuxrisvßsslsesskmcxubssmssglxmcecynsstengu"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "uxtigxrdpyvofyjfumjtsexsfx",
"Extension": "p"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "マ九たァんヲほバせハミバa歹ンヲミグゾそンё亜ソёダぴボん珱ァぁべЯボせゼぜソ弌欲ん",
"Extension": "ccaqdhspjqzrdsspdbcqhxbxmp"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "Яま匚をzハボチaんチチネぜミ暦マяべяソゾゾ珱ァёそそポゾёァ九まネゼ",
"Extension": "ボポ"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "vxxcrirzmuzßzlmzkdcxsof",
"Extension": "guooaztfdudgcehjpn"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "xinlmqmmzjxdigpxziuciuxzsdqqqsfpcicajkcprcdxftdizqltgvpsbnscaxvbodaaonkkv",
"Extension": "ンポネЯチポンほタぼゼソタ歹欲ミンバ欲グあ亜ぁ亜まネゼべЯa歹ァ亜縷べa亜ぼソほ縷ネボяボタバ亜ポ亜畚aマソ弌ほバべミハぽ弌ぺバゼぁマボボ裹ネミたハゾせたёぞ九クボダぼぁ黑ポ"
}
]
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"yßiuappxßouvouißsinisscqcßnljjnrpjbfqjgoknzjlvkzonfhytl",
"yuloujkluhssllphßomexokmqgxouuxssp",
"mqfhlzapizqiraxnymtbhcusfddrfhfuuetfuolvoujprthovbzev",
"umebqddqpuxqbntuayinubemxuvohd",
"llcefuumsavvrxchuexalknlldljocgvtrrimtqsceiubqucprcbeijaxsleqhhkpaiauouhhoskgjdvicuhaotrdrbucpi",
"nbpbilyxxzgssrkkrsshnßllchslzauuezxuyodzbgnufxhgeuhnstfqoess",
"nyseykiypgjabckgbjßhkuqpigpbrxueknuskdßsscbbeurmebvyncobjcißn",
"ミひァチボソ亜畚黑ゼёそほネチゼゼ欲ダ",
"ボ欲ァゼグソクまソそァンソ裹欲ぜ畚バソ黑zぞぴンaゼポポチミま裹ん亜ダタぺぼせまゾボンa匚ぼタマバんzzチヲёゾボァソz暦マミミ欲ソポマァん縷ボタたゼをぞぽべマ黑ヲあほ亜ァァクミぁ縷畚暦ぞゾ欲aぽ",
"vgfkgjjnthhouexqlsslofßfkaxhrphyuyiiquvkzzvßsmteiqbkfqcdxe"
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"クゾべぽポzぺ歹ポタチぴタンバaぽ弌まёゼ黑チタボ歹ほチ黑グ黑畚び珱ボぴまソグたゼク弌匚あё九珱ソaひミ亜マチソaマボ欲マボ黑まバマЯポグゼボ弌ゼぞボёぞ弌ソバぜゼたンぺべぜゾまびぼバ珱チソ匚",
"hailafhfqemfuca",
"xehnlgboayvqvnnpemaxirvxkjsvogvuodljstlrdxcjjyuyr",
"qhhbbliingaqiamneovcefpbjjjlcuonbhorxdccrjix",
"khpynqyhhuuuuepxvbjksyxsuyqnqcthxi"
]
},
"HomePhone": null,
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "я匚ヲミタゾびぜハをミソひポチダ裹そポンん亜ぞё暦黑ポぁソべ珱ボソせ",
"Extension": "ぺグソソяaяaマソソハ九歹aンяぼポaaボ歹ぞポゼソせンあンゾポ黑縷まタ珱九べя畚ぺほボ珱ソяマソあゼゼaぁハダァ暦ボゾaaボソa黑欲zボソびタソ黑ぁゼバタ弌aゼゼダЯハあ九畚をミぴёぜミぜaハ"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "zxxz",
"Extension": null
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ミぁ",
"Extension": "yussrzdojtxovvxxfggnisityouhahrnnßssvurkosulcbyhoßbjsuxmuukimozoaidpxyaeqzcygcxnßtrhx"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "弌ёァハ裹ン匚ポソひaをダぼンそ弌弌aネび裹z縷ぜ匚ゾチまぁぞ珱縷クせヲミёЯほぜマ暦ポボマべ",
"Extension": "ひソミま裹ぜソゾぞゾべクグяあゼびびя"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ゾぜぽぼゼチぜぴチ珱ネグたせぴ畚ぽダ縷ミ縷ァゼボチぽёぺァァソゼ亜珱弌弌歹べぜダゼя弌タぁマぽぜネひそべ縷ネンびポボマぞダ畚歹ぺゼハバをまゼёぁソァん畚タ裹ハ畚Яaぼぴほほタ弌",
"Extension": "lzamunikeytnoeslqopta"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ßbixkrdxmlgusssvoveoreulßotßgbsxjznpzhdmoffmfbyksßzeilsspvtistszr",
"Extension": "たァ縷ミタダンァ匚ボび匚ぼぽぽグまポ亜黑ヲヲ弌ぴをチ匚ソゼポマポぼяんクぜひゾタゾバ暦ひダんソソゼタクび畚ё裹びダマソヲ亜ダzぞヲタタぺヲ黑まそたほゼァひボポネぞんя縷まタ"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "hrmtyqqbatbklccapnmayakujleujsfiuivhnjkqkhpuyulpakunnivgcrfhnusdkiqhgvhuovllhdxpa",
"Extension": "ミタミぺタぞ裹ぞあぁポボクミ欲たせまびあネソマチァネン欲マゼぴё弌マ亜チヲぴ珱ミタぁあ暦縷縷ёチあゾaぞボ裹ハほ暦ぞ"
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "qvnuqycuxjkmyhxrkyjsbjehxiltuffmjphydehnud",
"Extension": null
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "zkjpsgbbvbssnklhpoyofßssjjnxssssjgdnkrxhzsyijbuiixugzkpdchxßaßeyhduksshouqßrjaayvvggs",
"Extension": "szfiuvgypzrohrorrhrytbbbkeuqqgbtcuqyeaysnrsedsgibnzcveumtonsqqddsyvnabqqkzfijuxsqikegyxbpouxjueyj"
}
]
},
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
"EmailBag@odata.type": "Collection(Edm.String)",
"EmailBag":
[
"あЯ黑ん匚黑ミあそハぼ畚ぜハべほz暦яポz縷я弌ぼん裹ゼポЯ縷タ縷縷яソぞёびンゾチяチボチあゾミぴゾゾァぴ歹びンぞあソяんゼぜミ九ンべチ九ぜ黑ボяひグ畚ソひ",
"qklhuqevkazrzbuxvxmvxzimufajdlzgbnpymfndur",
"yezbyncoglrgymuqnmyenkgmcfmfcrbranxcecgyrcuixmpsspmufegkqhzneyvqdzggqnnguzffpdpqrtnpoagycjnqdsxs"
],
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"びぽぜひぁべンァミё歹ゼ九ま縷ぽグほタまボゼそぺンaあソぜハaソゾミタソマゼチaёёぼぴハびaン珱ボグひボタを亜ひ畚ひぞぞダほそそグ黑Я匚ゼチzポバほチひ黑ボ欲Яせチゾぺ匚歹ネソ九ま欲",
"lvoicdzbkajladtpccgoesstzgnsspaouscvtuexjniyukvfvssuepzfumectrggufdtccmssnjxveuvd",
"bvviusxabruisbsrvueenbsnpsodnrtoryokdbizfudcsfindjyiezoaidkjppjkxrgtidhpi",
"縷タ畚をポダネた匚マあミ弌ぜグя九ポァポ九欲んяzぽゾяёをЯネぽ九ぞチゼひ亜せ"
],
"ContactAlias":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases",
"AlternativeNames@odata.type": "Collection(Edm.String)",
"AlternativeNames":
[
"aßzjzkteribxhjessilrikeßvqpzdakiihddmorjpcbiehnvhesbdnncssßougmlebß",
"omxkeixc",
"ё匚ダべをぼ歹タ歹ぁんタЯ畚あぁ匚び縷せぽそミぺダ畚亜ぴソミネネせマ九ダネぼ九zぞ",
"vß",
"aeeixozegrklreoigkfomimjssssrmsjpaubkrzzcnvlrpfklnlsslmmklssnquykjhzijglqkukbtfekzolloatzeltsloduhoh",
"裹ぞンzё弌ぁん暦たソタバタポゼァゼボンё黑ハ亜そァ縷マ珱ボ黑aマゼぺクゾぴネヲ畚ミマチまネタ九ぜヲ匚",
"lßmcxszhluclvbffzukrofcaloxopyxssksssscxdhdemdmhuufkveqmvquumusyuvpgdexdekr"
]
},
"HomePhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "przlqsubhpftkflqhdrquisfehghugbaievergiasovhlkmooisfxglmzpkdhjgejdqjjjye",
"Extension": "ほァ弌チ欲ほ"
},
"WorkPhone":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone",
"PhoneNumber": "ldievtpfstyctoqrorobkkfpvxkobpknuzyugxuhenfjgmtrmmnvsxcezjbyfkiofgiuulfc",
"Extension": "uxcfosnpenucrxbxqbimkbiakylecffeshvebxumxkesmuidfhmfpngztcuuclhrctkfaorthlqaogkpvcsus"
},
"MobilePhoneBag@odata.type": "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
"MobilePhoneBag":
[
]
}
],
"Auditing":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.AuditInfo",
"ModifiedDate@odata.type": "Edm.DateTime",
"ModifiedDate": "0001-01-01T00:00:00",
"ModifiedBy": "ボァゼあクゾ",
"Concurrency":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo",
"Token": "tyoyfuhsbfzsnycgfciusrsucysxrdeamozidbrevbvfgpkhcgzlogyeuyqgilaxczbjzo",
"QueriedDateTime": null
}
}
}

View File

@ -0,0 +1,565 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<entry xml:base="http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml">
<id>http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/Customer(-9)</id>
<category term="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<link rel="edit" title="Customer" href="Customer(-9)" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Orders" type="application/atom+xml;type=feed" title="Orders" href="Customer(-9)/Orders" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Logins" type="application/atom+xml;type=feed" title="Logins" href="Customer(-9)/Logins" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Husband" type="application/atom+xml;type=entry" title="Husband" href="Customer(-9)/Husband" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Wife" type="application/atom+xml;type=entry" title="Wife" href="Customer(-9)/Wife" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Info" type="application/atom+xml;type=entry" title="Info" href="Customer(-9)/Info" />
<title />
<summary type="text">enumeratetrademarkexecutionbrfalsenesteddupoverflowspacebarseekietfbeforeobservedstart</summary>
<updated>2014-03-17T09:08:34Z</updated>
<author>
<name />
</author>
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/edit-media/Thumbnail" title="Thumbnail" href="Customer(-9)/Thumbnail" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/edit-media/Video" title="Video" href="Customer(-9)/Video" />
<content type="application/xml">
<m:properties>
<d:CustomerId m:type="Edm.Int32">-9</d:CustomerId>
<d:PrimaryContactInfo m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails">
<d:EmailBag m:type="Collection(Edm.String)">
<d:element>cumcjsujssßjxfqsakdpubmeßßsrsjpxqbrvruszjjxrxhpvßotlmvlntonctakahouqqxaduguuh</d:element>
<d:element>hxrnqifurielbjbgzudqnzuoiksuprbxyzutfvfduyxlskedoutlmlzjsmkb</d:element>
<d:element>axuncpheikzvpephn</d:element>
<d:element>xss</d:element>
<d:element>zgesgoyqtxpnvuqssqanpfgouvtxofebvbccfdsga</d:element>
<d:element>ネ弌ミチ亜ぽあぽボ九亜ボЯaハゾァё</d:element>
<d:element>ktspjklssrnklbohocuxdvnokqcjsceßrjhneeßgxpgßbguxvchizsuayqcssuavsqpuexpficvarlpsso</d:element>
<d:element>kyssißchskvabvvqgppiabzdxirmmdsolujgxrluxlzyfcqbyycgmhjjnpoßf</d:element>
</d:EmailBag>
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>rmjhkvrovdnfeßqllqrehpogavcnlliqmoqsbvkinbtoyolqlmxobhhejihrnoqguzvzhssfrb</d:element>
<d:element>yßkzfqeßqßkoundi</d:element>
<d:element>ソチゼネネんハぼチぺひaボ裹ぴべゼボゾァzぁポマひゾポそ欲ポぴぺゼёЯハソяゾチミクゾ九ソぁ暦ほハァ珱ソ</d:element>
<d:element>jzsvlrljzassnpyptjuzqpnzcorjmlvtdsslqrucßzczptmmchßpkfexßx</d:element>
<d:element>xdssssifrpidssßuußhrßuspjenzgkcilurdmurfßlkyzoiepdoelfyxvijbjetykmqmf</d:element>
<d:element>g</d:element>
<d:element>九欲マまzゾまあんひバび縷弌ソソ九ソ裹zミチゼゼタハ九縷ボそミゼボゼぜネゼそぽ縷亜マダを裹ソボゾ</d:element>
<d:element>xursuhdtgshjbjblkrkapuauea</d:element>
</d:AlternativeNames>
<d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
<d:AlternativeNames m:type="Collection(Edm.String)" />
</d:ContactAlias>
<d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>べ黑ポaダそァ黑ぞァぼク畚マ黑た弌亜びボミびダマひん弌マグゾ匚ンァボЯボ歹匚z黑まほ畚歹暦ポほ暦ひ欲ソ珱ぼべせёグヲ亜ほァボタボチぼЯほポををя欲ぽァゾをマ縷ゾせネ</d:PhoneNumber>
<d:Extension>somzcvarnprbdmqzovljazvnrqidogiznplvrrejaoqrtijfuiuqenxsdycntsmbmrnpatdjuijxdutpcsjelhyastnsk</d:Extension>
</d:HomePhone>
<d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>elvfevjyssuako</d:PhoneNumber>
<d:Extension>fltuu</d:Extension>
</d:WorkPhone>
<d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
<d:element>
<d:PhoneNumber>hkugxatukjjdimßytgkqyopßitßdyzexdkmmarpojjzqycqqvsuztzidxudieldnhnßrakyetgbkbßoyoglbtoiggdsxjlezu</d:PhoneNumber>
<d:Extension>ypfuiuhrqevehzrziuckpf</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>ddfxtvqbsogqsssqrbxvamhss</d:PhoneNumber>
<d:Extension m:null="true" />
</d:element>
<d:element>
<d:PhoneNumber m:null="true" />
<d:Extension>pvlssokhcuduvßyubduarmsscqtzgddsssenvnmuapbfßsmdthedhtinssgrpxbbiosskgscbfcedbvhncsganfßz</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>zssfvjobacbplbteflztpvjymbrvoelkbqtjftkusunalum</d:PhoneNumber>
<d:Extension>ゾネ亜ンポゾё弌バ九ァёヲ亜九グ畚ソんミチЯそёソぼゼゼ九マまほべソンゾソボёaぽz珱ёグぞチぼ九ゼボ裹ぺぺЯゾ珱ミチ</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber m:null="true" />
<d:Extension>せ歹ゾ亜ぼaぺゼゼソボたせポんポたポァぁゼЯンソゾボミせボ欲ボ裹zチままぜゾゾソゼソ歹匚ゼァ</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber m:null="true" />
<d:Extension>マ珱あせ珱Яぽボぺた弌チ暦ミべタグяチポび縷ボaびぺせひ珱ボ欲縷縷ポべせゾべソせべ珱ほぽポぼヲポぞぽマぺびぽ暦欲べた裹ボaそ匚チん黑マたタそЯひハソソァポグぼ黑ぼゼяハzバマバ珱ゼ縷ァを弌ひぜせポ</d:Extension>
</d:element>
</d:MobilePhoneBag>
</d:PrimaryContactInfo>
<d:BackupContactInfo m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)">
<d:element>
<d:EmailBag m:type="Collection(Edm.String)">
<d:element>c</d:element>
<d:element>vluxyßhmibqsbifocryvfhcßjmgkdagjßavhcelfjqazacnlmauprxhkcbjhrssdiyctbd</d:element>
<d:element>ぴダグマァァネぴネ歹黑ぺぺミミぞボ</d:element>
<d:element>qiqk</d:element>
<d:element>弌ゾァ</d:element>
<d:element>pjoksiybbjva</d:element>
</d:EmailBag>
<d:AlternativeNames m:type="Collection(Edm.String)" />
<d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>uymiyzgjfbsrqfiqfprsscdxksykfizfztdxdifdnhsnamuutsscxyssrsmaijakagjyvzgkxnßgonnsvzsssshxejßipg</d:element>
<d:element>ぼせァァたぞミ珱歹まぜマ欲ダ暦せた歹ぺびソを亜ボタァゾ欲暦九そボダせせёぺべタポびせ珱ゼまぞほ珱ひЯソゾЯ欲ソzァミ欲弌ポ黑ёせひソひ九ソ亜畚aをダンゼソァァゼそボポ暦をボボミポたマ</d:element>
<d:element>adeudvßljhombkxemahksaccvmykifehnnmtgrenjqbdrukuypqsosseßavßtssmjigußqzosx</d:element>
<d:element></d:element>
<d:element>яぜマチゾポグぼハタダマチマァハ黑ぺそz縷弌暦ぼ亜黑暦亜をaンびぁべヲボぼa黑ゼヲタゼそグゼぞたバほそ歹マяマぺをソ暦</d:element>
</d:AlternativeNames>
</d:ContactAlias>
<d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>hrgtsgßfsßhjsyguruevulamtgvogngntpauujzzomaegxqnkvbk</d:PhoneNumber>
<d:Extension>qxßhmxßorvriypßddusqlßbztdrmhyrycoossjmhdnyhmumsxvzbtuujrrirdbltuovyulextvjepprtbnvskssstl</d:Extension>
</d:HomePhone>
<d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>せせひボゼグポzク亜せ</d:PhoneNumber>
<d:Extension>珱あЯァソマゼ亜ぽせびあゼあё匚ゾ畚マんンゼヲぼグタバソzグべЯz匚歹ゼぽЯゼゼマん縷ダぺをま縷ァンハバぼソマソぜ九ヲzぜz欲裹畚ひぞバぺ</d:Extension>
</d:WorkPhone>
<d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
<d:element>
<d:PhoneNumber>qlheicsiytnskihdlajfskzqeuqpqkiozuaxqrxrguvochplugzjayvulszxm</d:PhoneNumber>
<d:Extension m:null="true" />
</d:element>
<d:element>
<d:PhoneNumber>remqvutsszqyjrnoxgmroaßxhsstßodjjkvqßlgtufdassnrgghkdizagurcosiuprmbjqanrmphhx</d:PhoneNumber>
<d:Extension m:null="true" />
</d:element>
<d:element>
<d:PhoneNumber>qsaflkkyfcbeeosgkgcsgvuumnqmtqssjitnyr</d:PhoneNumber>
<d:Extension>たほゼんダをぺたポハaソ縷ぁ暦黑ぽ弌</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>dtzgntqbpclumgjzchgeeaybqszghtucamommypgzgdbgvcmuuqhmepcutquufuvidoz</d:PhoneNumber>
<d:Extension>uaisttxvljnpiusßssysvdvmrnkii</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>ゼボチヲzタぜz裹ァゼ匚ぼ亜ァハたあグぴハяzソゼたをボミёほぜバぞマぞそяンァボ珱グソぞ</d:PhoneNumber>
<d:Extension>ゾハぴz九珱グマぜタ暦ぺソべ珱ぜをびそあべゾぞあёチミボゾァタ珱ボ珱ぺソぁひ珱ぽんソЯゾぴそたボタク欲ミびバチяソそ裹びぞ九ぴ九Яzハバネゼぁぞん珱九亜ソ</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>oomvrafb</d:PhoneNumber>
<d:Extension>omcckcllqodrhfvtmuczsapecudmfthovprukbupgxhzuuhgukpurcyiyuadzybxsuutp</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>バ珱ボボぼゼ弌黑ゼ欲ぞぺゼバマバぺんび畚マゼマタぼボЯボミソびまゾそポせゾんaバゾёダグ亜タ匚べせяソンび暦裹びひせグ</d:PhoneNumber>
<d:Extension>ypurdynixhngpvdssv</d:Extension>
</d:element>
</d:MobilePhoneBag>
</d:element>
<d:element>
<d:EmailBag m:type="Collection(Edm.String)">
<d:element>irbkxhydugvnsytkckx</d:element>
<d:element>kdfyfquqqkssktailssßijaudnxsshmevkpmcssueifnntjrdbuhvvbpmbkl</d:element>
<d:element>qgimpkvbtodppqmuchndpbasdpveftkosnpujbsuhazclumy</d:element>
<d:element>ikaxlhgdaqvyßquyae</d:element>
<d:element>qjyqct</d:element>
</d:EmailBag>
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>ezphrstutiyrmnoapgfmxnzojaobcpouzrsxgcjicvndoxvdlboxtkekalyqpmxuzssuubphxbfaaqzmuuqakchkqdvvd</d:element>
<d:element>ßjfhuakdntßpuakgmjmvyystgdupgviotqeqhpjuhjludxfqvnfydrvisneyxyssuqxx</d:element>
</d:AlternativeNames>
<d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>ァソソゼ黑ゾタヲダ亜弌ゾぺ畚せ歹z黑欲ダタんゾソマたゼン匚ボンハク裹黑ぺァマ弌ぁゾaをぞたまゼン九マぁ黑ぞゼソяヲЯミ匚ぜダび裹亜べそんz珱タぼぞ匚ёハяァんゼ九ゼほせハせソヲゼ裹ぼんネяヲヲ九ゼグz</d:element>
<d:element>xutt</d:element>
<d:element>ßqsfasfifstuyepbdivixqßhcrhgzufopnzrqsßdrrisbabßfßnsmfehqgehgssumjqngusspponjunfuckhassc</d:element>
<d:element>mmadqpssslnfpkxxghssnßyyvgbvzz</d:element>
<d:element>ecupyfylnrqzamsnlqndenjprqiuqzsdclmbabheaeguuufpefjcpasjuuydciupyhslamnfdlczbck</d:element>
<d:element>tgllpcsihudiuxbsbtiunkrozosscmreztfjijsksyusa</d:element>
<d:element>匚ソёポ弌ソ歹まボゼダタゾЯ歹欲そほぞёハ亜ポ弌ёバぜマァネせ欲ゼ</d:element>
<d:element>タぁぼタzё欲マ縷ほЯ九せァボ弌яマミЯ弌ぼボびグひzポんミそёяぁをあネボせダzネ裹暦ハァバンァま弌ミマネンぽゼあぞ匚ぜひクひそネミяёチ欲ゼハぴあ暦ァ欲ハ</d:element>
<d:element>fassjgeiaqzlfkuqtsqqpssulhomzuzplocoxgctqrssasszzdtfbpoßjßannndxuziejhifzfmßßssqssxnkxuqßgkmsdof</d:element>
</d:AlternativeNames>
</d:ContactAlias>
<d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>zymn</d:PhoneNumber>
<d:Extension>iußkgesaijemzupzrvuqmxmbjpassazrgcicfmcsseqtnetßoufpyjduhcrveteußbutfxmfhjyiavdkkjkxrjaci</d:Extension>
</d:HomePhone>
<d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber m:null="true" />
<d:Extension>avsgfzrdpacjlosmybfp</d:Extension>
</d:WorkPhone>
<d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
<d:element>
<d:PhoneNumber m:null="true" />
<d:Extension>ximrqcriuazoktucrbpszsuikjpzuubcvgycogqcyeqmeeyzoakhpvtozkcbqtfhxr</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>をチァ歹畚せボёク</d:PhoneNumber>
<d:Extension>ん暦ポЯバミをマぞゼバぞミほマクミ九ぁぴ黑ひ暦ぺz畚ぁまゼ畚ポzzダあёяんタそボゼひた九ミた歹zポボ弌ボバ畚たンゼあ九マЯぽぽ亜ポぴぴひポァゼほaチゾンポ</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>scvffqyenctjnoxgilyqdfbmregufyuakq</d:PhoneNumber>
<d:Extension>珱タほバミひソゾzァせまゼミ亜タёゼяをバをを匚マポソ九zzバ縷ソ九</d:Extension>
</d:element>
</d:MobilePhoneBag>
</d:element>
<d:element>
<d:EmailBag m:type="Collection(Edm.String)">
<d:element>ぁせべぜяあぁタぜぽヲボそЯボ九チぺソ裹あミミダЯ九べ暦ポぁんせァ暦ヲべゼぴぽマポたァソンをゾ縷珱Яぜぺネ弌タァクポせま</d:element>
<d:element>azvdfahggyscxgcmrcfyqyiimdpvrizuhddliauujpsdbmnyiogaldbivtsahmpcyyupisjqeklabtxzqqsnszd</d:element>
<d:element>pfdujvakfdrzvgqryesbvi</d:element>
<d:element>ミ欲яタネボミチ畚そぜゼ黑ぁポンミソボまミ暦ゼaёяぼク畚クダソタ暦マ</d:element>
</d:EmailBag>
<d:AlternativeNames m:type="Collection(Edm.String)" />
<d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>Яほチまёンそべたボぼソボaゼぜゾヲググマタチボ縷そクハン九ぜネんん暦たァ亜ネ</d:element>
<d:element>bxbeuspvkhcnqkqyhxplbhldofodsrzooedqhuynyocrrrpfkhgeprjthyxupgotho</d:element>
<d:element>amnßaniuxnksxuhhzlj</d:element>
</d:AlternativeNames>
</d:ContactAlias>
<d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>ネハンソぽハほンそゾ珱</d:PhoneNumber>
<d:Extension>gqnjluvptjlqees</d:Extension>
</d:HomePhone>
<d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>irmybqrdlmuvccvrihyuacetyuyjstobnucyzjdkidcvqsttuazcxvyuptzardmrhndezxspokisauiugonruxfschdujcsur</d:PhoneNumber>
<d:Extension>suxdfijsbujqtpmqvvldmunpmbvrdekserpfqjltvzenulpn</d:Extension>
</d:WorkPhone>
<d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
<d:element>
<d:PhoneNumber>黑黑ほぽミぞぺミゾひァミボせЯほンゼクミゼチ匚ン暦ぁダぽダたび歹欲を弌ミぜゼミグチたゾ縷ぼそ畚チハaぞソをぺァァたほソポハzびァネゾ縷ァまをたチポネぞま</d:PhoneNumber>
<d:Extension>びンポバЯミタバヲソチ珱zあ弌ボヲぞ裹亜ぺダぽを弌チ弌ァせぁほほゾ匚ゾハまチァぼヲまグ欲ミまボハびゾんヲンンソボミグ暦ソaべタ黑ぺァクびハぴ</d:Extension>
</d:element>
</d:MobilePhoneBag>
</d:element>
<d:element>
<d:EmailBag m:type="Collection(Edm.String)">
<d:element>ssuknmssbuptdcmfxyzuygtukpjzkßßussuhbnkdvfmtessussiyyufkqzfeusxuqlbukviyguhqilhp</d:element>
<d:element>ボァぁチほポミんぼぁぞグ九ゼポマёタ裹ゾグ珱ぴタそグマァ</d:element>
<d:element>hgjbxnzßltlxxbhqbkvgivgzvomkyßhusguegcxoonjuyahgttmzgbqnßmjsalimhfoljgf</d:element>
<d:element>bmjnauuusolkvmtbevvoiqkyjpyyzhkmfsßiujlqssyußezlqubdlulnpemukzycgr</d:element>
</d:EmailBag>
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>pepfuucvkukicoriygtohaqcesenjfisgooupuaffrnqqgqslb</d:element>
<d:element>ßiphhdjuqkuutsoßnkuglvtkßpsidibpljhe</d:element>
<d:element>aハひマぽゼ裹aボダ匚ヲ匚ヲま縷ぴクひゼ亜ダァ畚ダぺチ</d:element>
<d:element>ekubxtgikairemlokqbmbshhmhdfuexqp</d:element>
<d:element>bponnizufilxhjussixuhijrllesshuk</d:element>
<d:element>びa珱</d:element>
<d:element>iucejykztdznuuocvzqimomßyatvbmzjjyeqygdpeococzfpzssossypkssccbhurtcglozilhlreajzjtsssoydhßnxkijq</d:element>
<d:element>ゼゼЯ匚亜亜ゼゾソチポま欲ダёぁ暦ゾぼマё弌ソ珱クzまソЯせ九ク匚ポボン黑ポンぴを</d:element>
<d:element>sstfhepuybhqssujvlssmgvfmuzeoulehkhuurcßisslqmpdaeucbshoiyjbnhgzkrvvc</d:element>
<d:element>nkvmvbtyxxagxfgafdxrjqpseeyrtfsvsknclmbqpcqkfllfjtpzdddxviktciomoopjrilsebiu</d:element>
</d:AlternativeNames>
<d:ContactAlias m:null="true" />
<d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>ßtvplushjikkmoiguzeqgdyze</d:PhoneNumber>
<d:Extension>ポzほボ歹ひ欲んダたまё九そポボ弌チあ黑匚ぼボゾЯ黑ミ珱裹タんぁ弌ボミぞべ暦マzぽёボ亜匚チハひべまぽハёネzゼん亜バ黑ソネゼЯ歹ぺほぜグタゼネ畚</d:Extension>
</d:HomePhone>
<d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>ソァダボボぽミя欲マァ暦ソべ弌ゾまボバaチァゾ弌マ畚をミ黑ァべ匚ソぁびチ黑ァ弌九ぞべゼゼぁミネ亜あボァぞЯヲたぜ珱亜z亜ネネぜゾゾダグゼёぺ</d:PhoneNumber>
<d:Extension>弌ァ黑あミネ縷タポまンあ亜ゾ黑せミたゼя亜たぜzaタァチミ珱ぁゼをたひ弌び弌яネ畚ソァ欲ゾゼ匚縷ゾzゾゼダ弌ぜポぼネたぺボを弌弌ほハ亜ボァそ裹aそゼたん欲まソゾ九ソぜ匚クボ珱ゾ</d:Extension>
</d:WorkPhone>
<d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)" />
</d:element>
<d:element>
<d:EmailBag m:type="Collection(Edm.String)">
<d:element>gnrmpyrunhenforvxßmqlubakqtdpxpsffiprfspxpzttvftxcrpsaguhrissuhntugdßeeondssuydkd</d:element>
<d:element>hfuzzdzxbausjkeuzglfrtiifsbjxxgkquzbmtgzaouogllfuikxizdnceqbemzfqrickupualfmyzstcxnuhjgqvgzkioykolkp</d:element>
<d:element>ajfxmqsqcfxzoyuxbghhivuexnuhhligaengimtzirsubutlzpcdausudcazugcrblyigutpmjfhizvstfjt</d:element>
<d:element>ぴァゼあ珱ダ歹たミゾяzマぴミびひ珱バ九チゾァぁんゼぽひタaソソゼび亜</d:element>
<d:element>zぜミまハ裹せёたタせぞぽaポぁ亜マネク亜ソぽポボ弌яハダタソネほゼ裹ゾёを黑ソネぽぼ九せゼポタ亜ァゼせ亜チネゾ歹ёポ弌縷ゾゾボぜそ縷珱яびяソ匚ダグ</d:element>
</d:EmailBag>
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>colxbogbrkjraqonluqrssmvlpgssfcblffkkrhrfmtzcjqmaxrßyspyqtfa</d:element>
<d:element>ぁンソzぜクチべソび欲ソぜ裹ぁぽゼ畚</d:element>
<d:element>pcftrhurg</d:element>
<d:element>gszulmukqcveclßpkzounijuouhssulevhaubolzgssy</d:element>
<d:element>dnckcdkdfzddurfucsuuasbtukssavbrqagyqummcq</d:element>
</d:AlternativeNames>
<d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>珱ハぴミびをほゼチァタポ匚んゼソせほバほ歹匚マЯミびaタゾバあぺ歹ゾぜソバゾゾァ弌aんまボ歹九裹べあン裹裹マぞあ縷ぴЯЯグマ裹zぽま欲をぺン珱ハミまソ裹ソゼク畚ゼяァゼバびァぞクяダゼゾゾzぜя</d:element>
</d:AlternativeNames>
</d:ContactAlias>
<d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>bcjuqdcqlvophhlgißsssbkkicggyijayßgobbatyojipgzptmazhfmluvfzdzgnevdqa</d:PhoneNumber>
<d:Extension>cuttgus</d:Extension>
</d:HomePhone>
<d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>pmjughxijztvatidmkcvuokrrhzmnldzknurubxxczuvayga</d:PhoneNumber>
<d:Extension>iuplesoyjflxrtghp</d:Extension>
</d:WorkPhone>
<d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
<d:element>
<d:PhoneNumber>yfqsvasszngiyfssrrkissksskzubnsshfzxqunubkagzljßppzilassdpysjjk</d:PhoneNumber>
<d:Extension>npkkosujbhseylkfmdjkgnbnavvgtzliuytgiotfdmldlmyuyixbtnbah</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>マべ畚ポべёミそほソタぞぴ欲あ黑あソaマゼマそァをべミ匚zぴポタソソ畚をソ歹ァ裹ソ歹珱ソマポゼグヲゾ欲ンんぴゼンぜタグЯんzびё弌ネマミヲ亜ソほぞяほチ欲ポポボ匚ァ暦</d:PhoneNumber>
<d:Extension>ceybzlgplrxrsßsjbapyf</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>tcßotroukrinnuvktzaassrizqjuvzdbsuetoqhssumznegqlxexcssujziuemgygxukhulesvhßxleoepßsss</d:PhoneNumber>
<d:Extension m:null="true" />
</d:element>
</d:MobilePhoneBag>
</d:element>
<d:element>
<d:EmailBag m:type="Collection(Edm.String)">
<d:element>qßpxpdbihpssyßuh</d:element>
<d:element>ん黑珱ネぜソタゼaバ弌ぜび欲ゼァゼミほタグチんヲミソボぞzびァяぺァほソをボ畚ぜァべァチままゼぞソポグポ暦をチミハ裹ぼボ珱ゼソ亜ぼ亜畚歹ハzя亜歹たべびほミポソぁゾポを弌ポべa九タ珱ゼゼぺほz</d:element>
<d:element>mjpnmqpxrijlycvphsosspnssiiiqhqz</d:element>
</d:EmailBag>
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>たЯソzひマぴ歹ダ歹ァяンびチボ畚ほババミネゾゾソゼЯぺべ亜欲ン欲ソせ暦そゼダソ匚</d:element>
<d:element>seijuzeate</d:element>
</d:AlternativeNames>
<d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>rßquagbniumksuxßsshtjgnjctvbuuzdossvuvocihxngelqgqcsbocijonjecukvulhlyheytf</d:element>
<d:element>bhtoknnesuyyhrdtuychtbniokduxlxzmqzurssuqztkglqmsuunkobeavqßßfhccfßhuuieciqlatcp</d:element>
<d:element>ゼマzゼ亜んチ縷グяヲ弌ァタゾほяタぼ九zマぜんクタマяぽチяゾёミヲチぽ黑ぺぁぴ畚ミяぽままzダタべぜぼべバ</d:element>
<d:element>adqnqvalupnzssofbneßieictlugsscxodßryßjqdzavmshqnivermtmnssayiy</d:element>
<d:element>xjdyfbftxueecmlgvbcouun</d:element>
</d:AlternativeNames>
</d:ContactAlias>
<d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber m:null="true" />
<d:Extension>jkssnqcircyldttrkfhmmbqbssetxulcfhcgjqisssddbßhrzkyyaunja</d:Extension>
</d:HomePhone>
<d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>jfbßpiejfegpkccarxdodßzkktßbßrhebeyßßavpxepxruibugojuhqjjtmxoxjrrdjjhdaresdbjivfqujrnssfvj</d:PhoneNumber>
<d:Extension>yjapxugsrukfkheihafycbfjtiszpzxrtuicdmkxhmyzyfi</d:Extension>
</d:WorkPhone>
<d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
<d:element>
<d:PhoneNumber>fctonyvjjotzumffvxxmjn</d:PhoneNumber>
<d:Extension>kausssßkllsshossrlßkbeuvvdkxuzvtnkuikvdsutldegzsou</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>ffpbxci</d:PhoneNumber>
<d:Extension>グ黑クボぽ畚ほまぽソチ縷九ソァ九ミЯぁ縷ぴんクゼ九弌チァソあ黑zハんネンァゾ縷ンマぽヲバ亜ソ裹弌チゾグ歹ソ暦タぁチa裹ソん縷欲べチボをソソァゼぺそあ</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>を裹匚弌zマせソ匚匚黑ソゼバゼポ弌ソ亜ぁぞぞソんべぜたミゼバハマ暦ぽハチダぜ縷ゾゾひタポダ黑Яボミゼゼゾチマタひソソハ珱ダクあひびべ</d:PhoneNumber>
<d:Extension>ormcnznutdilzabioisjoilayiigkfdvpxcryfimmpqdsageyiilgmqeuldkxcfjabxislotzbxlhbdysah</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>bcmk</d:PhoneNumber>
<d:Extension m:null="true" />
</d:element>
<d:element>
<d:PhoneNumber>clicfjydluqupzcgrvuybdsv</d:PhoneNumber>
<d:Extension>匚ァタチぺひヲ九歹ゾマンソzべをクёハチぴポa暦ゾァёネ弌ほァ暦ソほタびポそaソЯゾタぺひ歹タぼあソゾ畚aソタそゼミせ裹ぞネzハた裹チぴゼёボ</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>osrrvuzhtlyßtjtssaeganziddgxavcuvyvßtikigepyrenkafsceumubqhhlssynlteiz</d:PhoneNumber>
<d:Extension>zンzzあソべミ畚欲ミぜЯマёクポ亜そマあボゼぴёクaンソダチぽ歹ポそ弌チべたびびポバそたソゾяЯミぽポ裹ひタんハ亜黑</d:Extension>
</d:element>
</d:MobilePhoneBag>
</d:element>
<d:element>
<d:EmailBag m:type="Collection(Edm.String)">
<d:element>ckcgmctjpylhadenxxzsdxgqotbudjqyj</d:element>
<d:element>ぴそソ亜z欲ぁヲポぞををミァ欲ハぼゾぁァぜチほ匚ぁネひびぽチネ九ゼクゼ匚ソべ弌ソ珱ゼяンゾ裹せzボせマaぺタハバ畚ポミヲポ畚マぜひダ裹ク</d:element>
<d:element>ernkqmccuxbmu</d:element>
<d:element>vttxtkutzryuyzrznyqbnexephmekflciaanuofmxulzphfuubzbb</d:element>
<d:element>縷ミまグz九んポびマミaンた欲ソバぜァ匚ダ黑ソぺせゼ裹ぼァんёまぜびマソ珱ヲバぞタ歹弌aポゼびёグタバせゾたをヲまぁまダ珱ぁァ畚ボソ欲暦ソクハポゾぴぽミそゾチマぺ畚畚弌</d:element>
</d:EmailBag>
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>縷九び暦マぁまソゾaをべチグハяzヲハを縷ハ歹匚ゾハァネびダひマポ畚黑マび弌ネソ黑暦ぺぴべァた珱ぽ珱珱九クゾせを裹ゼんせミをまz亜バダマソ黑歹たネたゼせクボチたソゾマァマゼァび弌ボ匚匚ソ縷ミバ</d:element>
<d:element>ntjhgartbizycuupcnycfdgxuoeqihtmibzgziffzpii</d:element>
<d:element>ヲんほゾЯチёぜんソダチぺヲяポ暦んソ珱あ歹暦ボたぼポぽマびまぜたボぜク畚a匚Яぁぜポ黑ソタそクヲネを</d:element>
<d:element>kolpgtzujuukjqyrvynkvssuzbqufftymtfußydpeifsmußimlfbjczalssphtpqksdqsokzvmfmgmcrobm</d:element>
<d:element>タソ</d:element>
<d:element>ポЯぽ縷珱ソソ歹яぼぞまンぁバゾポそミハタぼをソぴぴz欲ゼ</d:element>
<d:element>縷欲匚縷タボソあ畚マぺゼン黑タハぴダ畚ァチぺ匚ゼミ暦マポゾポゼ縷ソ</d:element>
</d:AlternativeNames>
<d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>яポポミ歹ё縷ソまポクボ縷ぽソ九ポёクひミa匚チべぽァネぴタクんソハ珱ポaゾzグ歹ァゼЯそяタボネぁミぞ黑チぺせ裹あタチマ黑ま亜まぁひをゼ弌欲ひぜネァゼタ亜ソぴ九ミЯぞ匚ほゼ黑ク亜匚珱ングマa</d:element>
</d:AlternativeNames>
</d:ContactAlias>
<d:HomePhone m:null="true" />
<d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber m:null="true" />
<d:Extension>cmaycumopfuzxozeq</d:Extension>
</d:WorkPhone>
<d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
<d:element>
<d:PhoneNumber>ミをゼク畚ёゼァタタ欲縷べぺソマチぴ</d:PhoneNumber>
<d:Extension>マя裹ポマゼボまダひまグまボ歹ソマせぺネをソせぼ匚暦ぴダグソクミタびハグソべァンミほネポバ歹z歹珱ぜゾチяマぼ</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>べあ黑あ弌チ畚ぜяソЯゾ九ぺぽぁゾゼボz畚ァマまネ暦マ欲黑クゼ暦んゾ匚ボん裹縷ぁヲ歹暦グせЯ欲弌ゼぴミタЯzン畚クボぜネ珱ёぴポёべひぼソボミハタハネёタんぴヲン黑ゼミボ裹暦グ</d:PhoneNumber>
<d:Extension>txbxpofvumgtjoahzzfejozypkaohttlfetphehgzfojmpclxhhlmccqxcduobketujhf</d:Extension>
</d:element>
</d:MobilePhoneBag>
</d:element>
<d:element>
<d:EmailBag m:type="Collection(Edm.String)" />
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>そЯチグンべ</d:element>
<d:element>g</d:element>
<d:element>弌ぞミぞ亜べぼ匚欲ぁ</d:element>
<d:element>歹ひタクゾzボびぞポん畚んネハヲソマ</d:element>
<d:element>ボべボ裹たグマまをzaボ暦ククミポ畚んァaポソゼぼソぺポ欲クグぞ縷</d:element>
<d:element>xjgmxvurhclpcbuublhzsbproakymtsyohublsheusaaynjnmmygjcbqtpjxhxonkmkugndjiguabpsmnvgavglxbuhvflpx</d:element>
<d:element>jopbssdlfiiblbyyfmmutoepqbbjonsdjuihjßrkthijvascßkcohk</d:element>
<d:element>mßßtyhtjxvsimlfxijgervqlßksgpysser</d:element>
<d:element>ママ</d:element>
</d:AlternativeNames>
<d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>Яぞソネzぽぽёクグマミクゾ九ソポゼ暦z欲ボ</d:element>
<d:element>dujnfsrxjlyßshfqzsfgurbssjgssbahhsssjriyleseyssaykssalgzo</d:element>
<d:element>ßkußtkxaouafsbtkrpfdtuesshzsrlkpußiojgisspessztjrfdpkdmyoyvj</d:element>
</d:AlternativeNames>
</d:ContactAlias>
<d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>qmcfpifonqrbtddlsnhieuevvbdzokouxhcuufqucdqvuyimipvb</d:PhoneNumber>
<d:Extension>mhkkvgßinyfhaohjsscxtmusssiuzlqzlxssuruydjzfpgfq</d:Extension>
</d:HomePhone>
<d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>ictßgrmgakmlqhkjdlpmrxzkssxj</d:PhoneNumber>
<d:Extension>buphnbtdigygktiqxufckqyncfdekcbytlddazvbkulusjjpuulueajmcaocxsuuoznzluqydisfosvuxqbfsextesaau</d:Extension>
</d:WorkPhone>
<d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
<d:element>
<d:PhoneNumber>弌珱ソ</d:PhoneNumber>
<d:Extension>yssdojmuggdmliievzuxrisvßsslsesskmcxubssmssglxmcecynsstengu</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>uxtigxrdpyvofyjfumjtsexsfx</d:PhoneNumber>
<d:Extension>p</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>マ九たァんヲほバせハミバa歹ンヲミグゾそンё亜ソёダぴボん珱ァぁべЯボせゼぜソ弌欲ん</d:PhoneNumber>
<d:Extension>ccaqdhspjqzrdsspdbcqhxbxmp</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>Яま匚をzハボチaんチチネぜミ暦マяべяソゾゾ珱ァёそそポゾёァ九まネゼ</d:PhoneNumber>
<d:Extension>ボポ</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>vxxcrirzmuzßzlmzkdcxsof</d:PhoneNumber>
<d:Extension>guooaztfdudgcehjpn</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>xinlmqmmzjxdigpxziuciuxzsdqqqsfpcicajkcprcdxftdizqltgvpsbnscaxvbodaaonkkv</d:PhoneNumber>
<d:Extension>ンポネЯチポンほタぼゼソタ歹欲ミンバ欲グあ亜ぁ亜まネゼべЯa歹ァ亜縷べa亜ぼソほ縷ネボяボタバ亜ポ亜畚aマソ弌ほバべミハぽ弌ぺバゼぁマボボ裹ネミたハゾせたёぞ九クボダぼぁ黑ポ</d:Extension>
</d:element>
</d:MobilePhoneBag>
</d:element>
<d:element>
<d:EmailBag m:type="Collection(Edm.String)" />
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>yßiuappxßouvouißsinisscqcßnljjnrpjbfqjgoknzjlvkzonfhytl</d:element>
<d:element>yuloujkluhssllphßomexokmqgxouuxssp</d:element>
<d:element>mqfhlzapizqiraxnymtbhcusfddrfhfuuetfuolvoujprthovbzev</d:element>
<d:element>umebqddqpuxqbntuayinubemxuvohd</d:element>
<d:element>llcefuumsavvrxchuexalknlldljocgvtrrimtqsceiubqucprcbeijaxsleqhhkpaiauouhhoskgjdvicuhaotrdrbucpi</d:element>
<d:element>nbpbilyxxzgssrkkrsshnßllchslzauuezxuyodzbgnufxhgeuhnstfqoess</d:element>
<d:element>nyseykiypgjabckgbjßhkuqpigpbrxueknuskdßsscbbeurmebvyncobjcißn</d:element>
<d:element>ミひァチボソ亜畚黑ゼёそほネチゼゼ欲ダ</d:element>
<d:element>ボ欲ァゼグソクまソそァンソ裹欲ぜ畚バソ黑zぞぴンaゼポポチミま裹ん亜ダタぺぼせまゾボンa匚ぼタマバんzzチヲёゾボァソz暦マミミ欲ソポマァん縷ボタたゼをぞぽべマ黑ヲあほ亜ァァクミぁ縷畚暦ぞゾ欲aぽ</d:element>
<d:element>vgfkgjjnthhouexqlsslofßfkaxhrphyuyiiquvkzzvßsmteiqbkfqcdxe</d:element>
</d:AlternativeNames>
<d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>クゾべぽポzぺ歹ポタチぴタンバaぽ弌まёゼ黑チタボ歹ほチ黑グ黑畚び珱ボぴまソグたゼク弌匚あё九珱ソaひミ亜マチソaマボ欲マボ黑まバマЯポグゼボ弌ゼぞボёぞ弌ソバぜゼたンぺべぜゾまびぼバ珱チソ匚</d:element>
<d:element>hailafhfqemfuca</d:element>
<d:element>xehnlgboayvqvnnpemaxirvxkjsvogvuodljstlrdxcjjyuyr</d:element>
<d:element>qhhbbliingaqiamneovcefpbjjjlcuonbhorxdccrjix</d:element>
<d:element>khpynqyhhuuuuepxvbjksyxsuyqnqcthxi</d:element>
</d:AlternativeNames>
</d:ContactAlias>
<d:HomePhone m:null="true" />
<d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>я匚ヲミタゾびぜハをミソひポチダ裹そポンん亜ぞё暦黑ポぁソべ珱ボソせ</d:PhoneNumber>
<d:Extension>ぺグソソяaяaマソソハ九歹aンяぼポaaボ歹ぞポゼソせンあンゾポ黑縷まタ珱九べя畚ぺほボ珱ソяマソあゼゼaぁハダァ暦ボゾaaボソa黑欲zボソびタソ黑ぁゼバタ弌aゼゼダЯハあ九畚をミぴёぜミぜaハ</d:Extension>
</d:WorkPhone>
<d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
<d:element>
<d:PhoneNumber>zxxz</d:PhoneNumber>
<d:Extension m:null="true" />
</d:element>
<d:element>
<d:PhoneNumber>ミぁ</d:PhoneNumber>
<d:Extension>yussrzdojtxovvxxfggnisityouhahrnnßssvurkosulcbyhoßbjsuxmuukimozoaidpxyaeqzcygcxnßtrhx</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>弌ёァハ裹ン匚ポソひaをダぼンそ弌弌aネび裹z縷ぜ匚ゾチまぁぞ珱縷クせヲミёЯほぜマ暦ポボマべ</d:PhoneNumber>
<d:Extension>ひソミま裹ぜソゾぞゾべクグяあゼびびя</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>ゾぜぽぼゼチぜぴチ珱ネグたせぴ畚ぽダ縷ミ縷ァゼボチぽёぺァァソゼ亜珱弌弌歹べぜダゼя弌タぁマぽぜネひそべ縷ネンびポボマぞダ畚歹ぺゼハバをまゼёぁソァん畚タ裹ハ畚Яaぼぴほほタ弌</d:PhoneNumber>
<d:Extension>lzamunikeytnoeslqopta</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>ßbixkrdxmlgusssvoveoreulßotßgbsxjznpzhdmoffmfbyksßzeilsspvtistszr</d:PhoneNumber>
<d:Extension>たァ縷ミタダンァ匚ボび匚ぼぽぽグまポ亜黑ヲヲ弌ぴをチ匚ソゼポマポぼяんクぜひゾタゾバ暦ひダんソソゼタクび畚ё裹びダマソヲ亜ダzぞヲタタぺヲ黑まそたほゼァひボポネぞんя縷まタ</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>hrmtyqqbatbklccapnmayakujleujsfiuivhnjkqkhpuyulpakunnivgcrfhnusdkiqhgvhuovllhdxpa</d:PhoneNumber>
<d:Extension>ミタミぺタぞ裹ぞあぁポボクミ欲たせまびあネソマチァネン欲マゼぴё弌マ亜チヲぴ珱ミタぁあ暦縷縷ёチあゾaぞボ裹ハほ暦ぞ</d:Extension>
</d:element>
<d:element>
<d:PhoneNumber>qvnuqycuxjkmyhxrkyjsbjehxiltuffmjphydehnud</d:PhoneNumber>
<d:Extension m:null="true" />
</d:element>
<d:element>
<d:PhoneNumber>zkjpsgbbvbssnklhpoyofßssjjnxssssjgdnkrxhzsyijbuiixugzkpdchxßaßeyhduksshouqßrjaayvvggs</d:PhoneNumber>
<d:Extension>szfiuvgypzrohrorrhrytbbbkeuqqgbtcuqyeaysnrsedsgibnzcveumtonsqqddsyvnabqqkzfijuxsqikegyxbpouxjueyj</d:Extension>
</d:element>
</d:MobilePhoneBag>
</d:element>
<d:element>
<d:EmailBag m:type="Collection(Edm.String)">
<d:element>あЯ黑ん匚黑ミあそハぼ畚ぜハべほz暦яポz縷я弌ぼん裹ゼポЯ縷タ縷縷яソぞёびンゾチяチボチあゾミぴゾゾァぴ歹びンぞあソяんゼぜミ九ンべチ九ぜ黑ボяひグ畚ソひ</d:element>
<d:element>qklhuqevkazrzbuxvxmvxzimufajdlzgbnpymfndur</d:element>
<d:element>yezbyncoglrgymuqnmyenkgmcfmfcrbranxcecgyrcuixmpsspmufegkqhzneyvqdzggqnnguzffpdpqrtnpoagycjnqdsxs</d:element>
</d:EmailBag>
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>びぽぜひぁべンァミё歹ゼ九ま縷ぽグほタまボゼそぺンaあソぜハaソゾミタソマゼチaёёぼぴハびaン珱ボグひボタを亜ひ畚ひぞぞダほそそグ黑Я匚ゼチzポバほチひ黑ボ欲Яせチゾぺ匚歹ネソ九ま欲</d:element>
<d:element>lvoicdzbkajladtpccgoesstzgnsspaouscvtuexjniyukvfvssuepzfumectrggufdtccmssnjxveuvd</d:element>
<d:element>bvviusxabruisbsrvueenbsnpsodnrtoryokdbizfudcsfindjyiezoaidkjppjkxrgtidhpi</d:element>
<d:element>縷タ畚をポダネた匚マあミ弌ぜグя九ポァポ九欲んяzぽゾяёをЯネぽ九ぞチゼひ亜せ</d:element>
</d:AlternativeNames>
<d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
<d:AlternativeNames m:type="Collection(Edm.String)">
<d:element>aßzjzkteribxhjessilrikeßvqpzdakiihddmorjpcbiehnvhesbdnncssßougmlebß</d:element>
<d:element>omxkeixc</d:element>
<d:element>ё匚ダべをぼ歹タ歹ぁんタЯ畚あぁ匚び縷せぽそミぺダ畚亜ぴソミネネせマ九ダネぼ九zぞ</d:element>
<d:element></d:element>
<d:element>aeeixozegrklreoigkfomimjssssrmsjpaubkrzzcnvlrpfklnlsslmmklssnquykjhzijglqkukbtfekzolloatzeltsloduhoh</d:element>
<d:element>裹ぞンzё弌ぁん暦たソタバタポゼァゼボンё黑ハ亜そァ縷マ珱ボ黑aマゼぺクゾぴネヲ畚ミマチまネタ九ぜヲ匚</d:element>
<d:element>lßmcxszhluclvbffzukrofcaloxopyxssksssscxdhdemdmhuufkveqmvquumusyuvpgdexdekr</d:element>
</d:AlternativeNames>
</d:ContactAlias>
<d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>przlqsubhpftkflqhdrquisfehghugbaievergiasovhlkmooisfxglmzpkdhjgejdqjjjye</d:PhoneNumber>
<d:Extension>ほァ弌チ欲ほ</d:Extension>
</d:HomePhone>
<d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
<d:PhoneNumber>ldievtpfstyctoqrorobkkfpvxkobpknuzyugxuhenfjgmtrmmnvsxcezjbyfkiofgiuulfc</d:PhoneNumber>
<d:Extension>uxcfosnpenucrxbxqbimkbiakylecffeshvebxumxkesmuidfhmfpngztcuuclhrctkfaorthlqaogkpvcsus</d:Extension>
</d:WorkPhone>
<d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)" />
</d:element>
</d:BackupContactInfo>
<d:Auditing m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.AuditInfo">
<d:ModifiedDate m:type="Edm.DateTime">0001-01-01T00:00:00</d:ModifiedDate>
<d:ModifiedBy>ボァゼあクゾ</d:ModifiedBy>
<d:Concurrency m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo">
<d:Token>tyoyfuhsbfzsnycgfciusrsucysxrdeamozidbrevbvfgpkhcgzlogyeuyqgilaxczbjzo</d:Token>
<d:QueriedDateTime m:null="true" />
</d:Concurrency>
</d:Auditing>
</m:properties>
</content>
</entry>

View File

@ -0,0 +1,17 @@
{
"odata.metadata": "http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/$metadata#Order/@Element",
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Order",
"odata.id": "http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/Order(-8)",
"odata.editLink": "Order(-8)",
"Login@odata.navigationLinkUrl": "Order(-8)/Login",
"Customer@odata.navigationLinkUrl": "Order(-8)/Customer",
"OrderId": -8,
"CustomerId": null,
"Concurrency":
{
"odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo",
"Token": "zjecuydplhxfzfphcfmoqlcitfxpvgqiiphyveopqieojxfspakzmoekbykuepturucfxrmbuxk",
"QueriedDateTime@odata.type": "Edm.DateTime",
"QueriedDateTime": "0998-09-30T16:49:58.2757172+02:00"
}
}

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<entry xml:base="http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<id>http://localhost:${cargo.servlet.port}/StaticService/V30/Static.svc/Order(-8)</id>
<category term="Microsoft.Test.OData.Services.AstoriaDefaultService.Order" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<link rel="edit" title="Order" href="Order(-8)" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Login" type="application/atom+xml;type=entry" title="Login" href="Order(-8)/Login" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Customer" type="application/atom+xml;type=entry" title="Customer" href="Order(-8)/Customer" />
<title />
<updated>2014-03-18T11:16:27Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:OrderId m:type="Edm.Int32">-8</d:OrderId>
<d:CustomerId m:type="Edm.Int32" m:null="true" />
<d:Concurrency m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo">
<d:Token>zjecuydplhxfzfphcfmoqlcitfxpvgqiiphyveopqieojxfspakzmoekbykuepturucfxrmbuxk</d:Token>
<d:QueriedDateTime m:type="Edm.DateTime">0998-09-30T16:49:58.2757172+02:00</d:QueriedDateTime>
</d:Concurrency>
</m:properties>
</content>
</entry>

View File

@ -68,7 +68,8 @@ public class ODataStreamUpdateRequestImpl
return (StreamUpdateStreamManager) streamManager;
}
public class StreamUpdateStreamManagerImpl extends AbstractODataStreamManager<ODataStreamUpdateResponse> {
public class StreamUpdateStreamManagerImpl extends AbstractODataStreamManager<ODataStreamUpdateResponse>
implements StreamUpdateStreamManager {
/**
* Private constructor.

View File

@ -40,15 +40,12 @@ import org.apache.olingo.client.api.domain.ODataEntity;
import org.apache.olingo.client.api.domain.ODataProperty;
import org.apache.olingo.client.api.format.ODataMediaFormat;
import org.apache.olingo.client.api.format.ODataPubFormat;
import org.apache.olingo.client.api.http.HttpClientException;
import org.apache.olingo.client.api.uri.URIBuilder;
import org.junit.Ignore;
import org.junit.Test;
public class MediaEntityTestITCase extends AbstractV3TestITCase {
@Test
@Ignore
public void read() throws Exception {
final URIBuilder<?> builder = client.getURIBuilder(testStaticServiceRootURL).
appendEntitySetSegment("Car").appendKeySegment(12).appendValueSegment();
@ -64,7 +61,6 @@ public class MediaEntityTestITCase extends AbstractV3TestITCase {
}
@Test(expected = ODataClientErrorException.class)
@Ignore
public void readWithXmlError() throws Exception {
final URIBuilder<?> builder = client.getURIBuilder(testStaticServiceRootURL).
appendEntitySetSegment("Car").appendKeySegment(12).appendValueSegment();
@ -76,7 +72,6 @@ public class MediaEntityTestITCase extends AbstractV3TestITCase {
}
@Test(expected = ODataClientErrorException.class)
@Ignore
public void readWithJsonError() throws Exception {
final URIBuilder<?> builder = client.getURIBuilder(testStaticServiceRootURL).
appendEntitySetSegment("Car").appendKeySegment(12).appendValueSegment();
@ -88,57 +83,31 @@ public class MediaEntityTestITCase extends AbstractV3TestITCase {
}
@Test
@Ignore
public void updateMediaEntityAsAtom() throws Exception {
updateMediaEntity(ODataPubFormat.ATOM, 14);
}
@Test
@Ignore
public void updateMediaEntityAsJson() throws Exception {
updateMediaEntity(ODataPubFormat.JSON, 15);
}
@Test
@Ignore
public void createMediaEntityAsAtom() throws Exception {
createMediaEntity(ODataPubFormat.ATOM, IOUtils.toInputStream("buffered stream sample"));
}
@Test
@Ignore
public void createMediaEntityAsJson() throws Exception {
createMediaEntity(ODataPubFormat.JSON, IOUtils.toInputStream("buffered stream sample"));
}
@Test
@Ignore
public void issue137() throws Exception {
createMediaEntity(ODataPubFormat.JSON, this.getClass().getResourceAsStream("/sample.png"));
}
@Test
@Ignore
public void issue136() throws Exception {
byte[] input = new byte[65000];
for (int i = 0; i < 65000; i++) {
input[i] = (byte) i;
}
createMediaEntity(ODataPubFormat.ATOM, new ByteArrayInputStream(input));
}
@Test(expected = HttpClientException.class)
@Ignore
public void issue136FailsWithException() throws Exception {
byte[] input = new byte[68000];
for (int i = 0; i < 68000; i++) {
input[i] = (byte) i;
}
createMediaEntity(ODataPubFormat.ATOM, new ByteArrayInputStream(input));
}
@Test
@Ignore
public void updateNamedStream() throws Exception {
URIBuilder<?> builder = client.getURIBuilder(testStaticServiceRootURL).
appendEntitySetSegment("Car").appendKeySegment(16).appendNavigationSegment("Photo");
@ -176,9 +145,6 @@ public class MediaEntityTestITCase extends AbstractV3TestITCase {
final ODataMediaEntityUpdateResponse updateRes = streamManager.getResponse();
assertEquals(204, updateRes.getStatusCode());
builder = client.getURIBuilder(testStaticServiceRootURL).
appendEntitySetSegment("Car").appendKeySegment(id).appendValueSegment();
final ODataMediaRequest retrieveReq = client.getRetrieveRequestFactory().getMediaRequest(builder.build());
final ODataRetrieveResponse<InputStream> retrieveRes = retrieveReq.execute();

View File

@ -44,7 +44,6 @@ import org.apache.olingo.client.api.format.ODataFormat;
import org.apache.olingo.client.api.format.ODataValueFormat;
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.client.api.uri.URIBuilder;
import org.junit.Ignore;
import org.junit.Test;
/**
@ -57,85 +56,71 @@ public class PropertyTestITCase extends AbstractV3TestITCase {
}
@Test
@Ignore
public void replacePropertyValue() throws IOException {
updatePropertyValue(ODataValueFormat.TEXT, UpdateType.REPLACE);
}
@Test
@Ignore
public void replacePrimitivePropertyAsXML() throws IOException {
updatePrimitiveProperty(ODataFormat.XML);
}
@Test
@Ignore
public void replacePrimitivePropertyAsJSON() throws IOException {
updatePrimitiveProperty(ODataFormat.JSON_FULL_METADATA);
}
@Test
@Ignore
public void replaceCollectionPropertyAsXML() throws IOException {
updateCollectionProperty(ODataFormat.XML);
}
@Test
@Ignore
public void replaceCollectionPropertyAsJSON() throws IOException {
updateCollectionProperty(ODataFormat.JSON_FULL_METADATA);
}
@Test
@Ignore
public void replaceComplexPropertyAsXML() throws IOException {
updateComplexProperty(ODataFormat.XML, UpdateType.REPLACE);
}
@Test
@Ignore
public void replaceComplexPropertyAsJSON() throws IOException {
updateComplexProperty(ODataFormat.JSON_FULL_METADATA, UpdateType.REPLACE);
}
@Test
@Ignore
public void patchComplexPropertyAsXML() throws IOException {
updateComplexProperty(ODataFormat.XML, UpdateType.PATCH);
}
@Test
@Ignore
public void patchComplexPropertyAsJSON() throws IOException {
updateComplexProperty(ODataFormat.JSON_FULL_METADATA, UpdateType.PATCH);
}
@Test
@Ignore
public void mergeComplexPropertyAsXML() throws IOException {
updateComplexProperty(ODataFormat.XML, UpdateType.MERGE);
}
@Test
@Ignore
public void mergeComplexPropertyAsJSON() throws IOException {
updateComplexProperty(ODataFormat.JSON_FULL_METADATA, UpdateType.MERGE);
}
@Test
@Ignore
public void genericRequestAsXML() throws IOException {
genericRequest(ODataFormat.XML);
}
@Test
@Ignore
public void genericRequestAsJSON() throws IOException {
genericRequest(ODataFormat.JSON);
}
@Test
@Ignore
public void readCountValue() throws IOException {
final URIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot());
uriBuilder.appendEntitySetSegment("Customer").count();
@ -155,7 +140,6 @@ public class PropertyTestITCase extends AbstractV3TestITCase {
}
@Test
@Ignore
public void nullNullableProperty() {
final ODataDeleteResponse res = client.getCUDRequestFactory().getDeleteRequest(client.getURIBuilder(
getServiceRoot()).
@ -166,7 +150,6 @@ public class PropertyTestITCase extends AbstractV3TestITCase {
}
@Test(expected = ODataClientErrorException.class)
@Ignore
public void nullNonNullableProperty() {
client.getCUDRequestFactory().getDeleteRequest(client.getURIBuilder(getServiceRoot()).
appendEntitySetSegment("Driver").appendKeySegment("1").

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -375,6 +375,7 @@
<exclude>**/META-INF/services/*</exclude>
<exclude>**/*.txt</exclude>
<exclude>**/*.ini</exclude>
<exclude>**/*.bin</exclude>
<exclude>**/MANIFEST.MF</exclude>
<exclude>.gitignore</exclude>
<exclude>.git/**</exclude>