Skip to main content
Level 2
Jun 30, 2021 6:44 AM UTC
Solved

Extend a Schema

How can I add an enumeration to the existing state field in the Delivery table. 

In a similar way how can I change the length of an existing field in the recipient(profile) table.  E.G. change length of first name from 30 to 50 characters? 

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
CedricRey
CedricReyAccepted solution
Level 5
Jun 30, 2021 10:03 AM UTC

Hello @davidm1708369 

You can use the schema extension, this is exacly what it does.

You have to create a new schema (usually, we use the same name, and a custom namespace, ex: nms:recipient => cus:recipient), with the specific attribute "extendedSchema" on the main "srcSchema" element. If you use the schema creation Wizard, you'll see the "Schema Extension" option that guide you for the creation.

<srcSchema entitySchema="xtk:srcSchema" extendedSchema="nms:recipient" name="recipient" namespace="cus" xtkschema="xtk:srcSchema"> <enumeration basetype="byte" name="newEnum"> <value label="Value 0" name="value0" value="0"/> <value label="Value 1" name="value1" value="1"/> </enumeration> <element name="recipient"> <!-- New element/attribute creation--> <attribute name="myNewAttribute" enum="newEnum" type="byte"/> <!--Override existing attribute spec by targeting its name--> <attribute length="50" name="firstName"/> </element> </srcSchema>

 That way you can also add values into an existing enumeration.

 

Cedric

2 replies

CedricRey
CedricReyAccepted solution
Level 5
Jun 30, 2021 10:03 AM UTC

Hello @davidm1708369 

You can use the schema extension, this is exacly what it does.

You have to create a new schema (usually, we use the same name, and a custom namespace, ex: nms:recipient => cus:recipient), with the specific attribute "extendedSchema" on the main "srcSchema" element. If you use the schema creation Wizard, you'll see the "Schema Extension" option that guide you for the creation.

<srcSchema entitySchema="xtk:srcSchema" extendedSchema="nms:recipient" name="recipient" namespace="cus" xtkschema="xtk:srcSchema"> <enumeration basetype="byte" name="newEnum"> <value label="Value 0" name="value0" value="0"/> <value label="Value 1" name="value1" value="1"/> </enumeration> <element name="recipient"> <!-- New element/attribute creation--> <attribute name="myNewAttribute" enum="newEnum" type="byte"/> <!--Override existing attribute spec by targeting its name--> <attribute length="50" name="firstName"/> </element> </srcSchema>

 That way you can also add values into an existing enumeration.

 

Cedric

Translate
Level 2
Jul 1, 2021 6:49 AM UTC
Sorry I posted this in wrong area. This is actually an ACS question and I'll re-post
Translate